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

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

Если бы вы взяли готовый BPM Engine и сконцентрировались на создании интерфейсов для пользователей, необходимых интеграций и автоматизации отдельных шагов процесса (где требуется) - разве вы бы не получили бы результат быстрее, легче и более гибкий?
Задача автоматизации бизнес процессов достаточно типовая и написаны миллионы строк готового кода, её автоматизующего. Причем довольно гибко.

map.get("gid")

Параметры в какую-нибудь модельку завернуть не думали?

Почему бы вот эту и подобную трешатину

StringUtils.hasText(gid) ? UerSpec.equalGid(gid) : null

внутри соответствующих методов UerSpec не делать?

root.get("projectCode")

Ну, есть же нормальные инструменты, зачем ломаться в рантайме, если можно при компиляции?

MessageFormat.format("%{0}%", expression)

Вот это зачем? Тут нет никакого форматирования параметров. Конкатенации вполне достаточно.

работает на санкционно-независимых компонентах

С чего это? Liberica JDK продукт иностранной компании BellSoft. @olegchir не даст соврать.

C java есть интеграция у той же opensource bpm Camunda, к примеру. Изобретать свой велосипед конечно лучше, но долго и затратно. Я тоже создаю иногда велосипеды бизнес процессов, ибо компания где работаю автоматизирована слабо, разработчиков мало, а хочется быть как люди. Правда web не нужен, так как корпоративный vpn все покрывает локалкой. Да и задачи в основном связаны с "железом" интеллектуальных приборов и web разработка в данном контексте нужна как козе баян. К примеру на автоматизацию процесса ремонта приборов ушло примерно 6 месяцев и один разработчик и это при наличии не очень чёткого тз с интеграцией с 1с, с мониторингом пользователей, логов и разработки внутрипрограммного мессенджера на 60 плльзователей.

А зачем в сервисе request Param и валидация?

Куча шаблонного кода, который можно сгенерировать в LLM...
Лучше найти какую-нибудь одну особенность системы и рассказать про нее - может кому-то будет интересно.
Ещё форматировать весь код в примерах в едином стиле, разные отступы выглядят как минутные стрелки с отличными углами на стене с часами по таймзонам городов...
И имя публичного класса Helper намекает на проблемы с неймингом...
Ещё образ собирается с тегом latest.. Если уж пишите сами пайплайны, то попросите девопсов сделать ревью перед публикацией

Так как все бизнес-команды наследуются от BusinessCommand, то в BusinessCommandFactory мапу можно объявить так:

private final Map<String, BusinessCommand> map;

И вручную ее можно не заполнять, спринг сам заполнит ее бинами наследниками BusinessCommand

Получится в итоге так

@Component
@RequiredArgsConstructor
public class BusinessCommandFactory {
	private final Map<String, BusinessCommand> map;

	public BusinessCommand buildProcessor(String status) {
		return map.get(status);
	}
}

Спасибо! Внес правки в код.

Привет! Liberica JDK - это не отечественный дистрибутив Java. Начиная с весны прошлого года, Либерику делает американская компания BELLSOFT, и без VPN даже нельзя открыть экран загрузки.

Отечественный дистрибутив называется Axiom JDK. Часть разработчиков Аксиомы — это те же люди, что когда-то делали Либерику.

Шаблоны писем в коде - не очень смотрятся. Не знаю, конечно, сколько их у вас всего разных. Возможно - только приведённые два.

Spring работает с шаблонизаторами (Thymeleaf, наверное, проще всего, затем - FreeMaker) - ими можно письма форматировать по шаблонам.

Их действительно пока что только два, но думаю будут появляться еще, попробую применить шаблонизатор, спасибо.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий