====== Делайте распараллеливание явным ======
{{tag>параллельная_развилка поток_управления}}
Не изображайте несколько потоков управления, выходящих из действия или события.
===== ✔ Как надо =====
Flow_02mmgfl
Flow_1fsucrx
Flow_12ytfbn
Flow_1fsucrx
Flow_12ytfbn
Flow_02mmgfl
===== ✘ Как НЕ надо =====
Согласно [[https://www.omg.org/spec/BPMN/2.0.2/PDF | спецификации BPMN]], процесс на диаграмме ниже будет выполняться точно так же, как и процесс на диаграмме "как надо" выше: потоки будут исполняться параллельно. Разница только в том, что на диаграмме выше параллельность изображена явно, а на диаграмме ниже - неявно. Разумеется, логику процесса лучше изображать явно.
Flow_1fsucrx
Flow_12ytfbn
Flow_1fsucrx
Flow_12ytfbn
Поскольку на следующей диаграмме потоки управления надписаны ("если это", "если то"), у неискушенного пользователя может сложиться впечатление, что это взаимно-исключающие варианты. Нет, это по-прежнему неявное параллельное выполнение.
Flow_1fsucrx
Flow_12ytfbn
Flow_12ytfbn
Flow_1fsucrx
===== Примечания =====
* Хотя [[https://www.omg.org/spec/BPMN/2.0.2/PDF | спецификация BPMN]] не запрещает несколько потоков управления, выходящих из одной задачи или события, велика вероятность, что такая конструкция будет неверно истолкована пользователями и поэтому ее рекомендуется избегать.
* Некоторые авторы считают, что неявное распараллеливание позволяет сэкономить один элемент (параллельную развилку) и тем самым делает диаграмму проще. Этот аргумент представляется сомнительными, т.к. от развилки на диаграмме есть польза - она делает логику процесса более понятной.
===== Исключения =====
* В технике [[ru:rule:control_branch#Примечания | контрольного потока управления]] допускаются несколько потоков управления (рабочий и контрольный), выходящие из стартового события.
===== Смотри также =====
* [[explicit_parallel_merge]]
* [[do_not_use_conditional_flows]]
* [[do_not_save_on_gateways]]
===== Автор(ы) =====
--- //[[user:bell|Anatoly Belaychuk]] 2024-01-08 17:16//