====== Делайте распараллеливание явным ====== {{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//