Как стать автором
Обновить

Выбор технологий для корпоративных приложений

Время на прочтение 24 мин
Количество просмотров 6.2K
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 9

Комментарии 9

Подходит любая технология с приставкой Enterprise. Некоторые корпорации даже VisualBasic не брезгуют (я имею ввиду Dassault Systemes и её флагманский продукт Catia). Я удивляюсь, как ещё не выпустили Node.js Enterprise Edition сжирающий 500GB ОЗУ и ежемесячно требующий вагон денег для обслуживания. Как мы знаем, любой hello world можно превратить в Enterprise с помощью большого количества костылей https://github.com/Hello-World-EE/Java-Hello-World-Enterprise-Edition.

Хороший лонгрид. Ваши выводы согласуются с моим опытом. Хоть мой стек с десяток лет в .нет, но обоснования для того или иного выбора технологий и архитектуры всё те же. Идеально сочетать разные варианты в одном решении. Очевидный пример - реляционая база данных для операций, а история/архтив в nosql.

Более 5 лет пишу на Kotlin в Enterprise в реактивном стеке Webflux: ERP, CRM, СЭД - псевдофункциональный язык в 100 крат читабельнее Java, да и код в купе с реактивным стеком в 5 раз меньше становится. При этом, все сущности в БД хранятся только как NoSQL в JSON-формате со всеми внешними связями между собой без проблем. В Hibernate невозможно отключить или очистить кэш 1-го уровня со странным поведением - это реальная угроза для серьёзного Enterprise. Keycloak имеет ограничение при работе с моделью SaaS, когда производительность обрушивается до нуля - проблема выявлена в 2016 году и не решена до сих пор. Тесты позволяют выявить не более 30% от всех ошибок и используются для фиксации реализованного функционала.

  • Написание своих компонентов - часто слишком трудоемкий и тупиковый путь

абсолютно неверно! в каждом проекте всегда придумываю и внедряю новые технологии, что позволяет уменьшить сроки сдачи проекта в несколько раз, но причина такого подхода в другом - зрелые и проверенные годами технологии, а также именитые от Oracle при высоких нагрузках и инфраструктурных стесс-тестах показывают слишком много проблем. И только такой подход позволяет повысить производительность, стабильность, безопасность, обойти ограничения, нивелировать неуправляемость и неоднозначность поведения ширпотребных технологий - и уже как бонус получить ускорение реализации проекта. Описание технологий в статье слишком поверхностная.

>> Enterprise в реактивном стеке Webflux: ERP, CRM, СЭД - псевдофункциональный язык в 100 крат читабельнее Java, да и код в купе с реактивным стеком в 5 раз меньше становится

А не могли бы вы выложить любой кусок такого кода? (самому нравится Kotlin, очень нравятся некоторые его конструкции и для Domain подхода он очень хорош; я также работал с RxJava... Но всё-таки тяжело представить хороший (хорошо читабельный) реактивный код лучше хорошего нереактивного кода, я уже молчу про отладку)

Пожалуйста, вот пример реактивного Webflux на Kotlin: https://github.com/SevenParadigms/webflux-dsl-abac-example исходный код очень лаконичен как раз в силу объединения Kotlin и Project Reactor (кстати более продвинутой чем RxJava)

Нуууууууу... Там из бизнес логики один zip оператор :-))) (все остальное - делегирование).

Я прекрасно понииаю, что простая логика будет выглядеть одинаково, что императивно, что java stream-ми, что на Reactor/RxJava/etc... Хотелось увидеть что-то реально достаточно сложное (и при этом все еще красивое), чтобы понять свои изьяны (и увидеть правильные реактивные подходы, позволяющие оставаться коду все еще читаемым. Например в RxJava - это "кастомные/полу-кастомные" операторы).

Примитивные сервисы, типа взял отсюда, немножко отфильтровал, поправил - не в счет.

Ну хорошо, вот проект, который реализует простую логику, но со сложным синтаксисом Reactor https://github.com/SevenParadigms/spring-cloud-websocket-gateway =)

Кода кот наплакал, но функционал фантастический.

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре , чтобы оставить комментарий