Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
ru:rule:do_not_use_conditional_flows [2024-01-08 17:05] – Anatoly Belaychuk | ru:rule:do_not_use_conditional_flows [2024-08-22 20:22] (текущий) – [Не пользуйтесь "стрелками с ромбиками"] Anatoly Belaychuk |
---|
====== Не пользуйтесь условными потоками управления ====== | ====== Не используйте "стрелки с ромбиками" ====== |
| |
{{tag>gateway}} | {{tag>развилка поток_управления условный_поток}} |
| |
Тут описание правила | |
| |
| Не используйте условные потоки управления, выходящие из задачи или подпроцесса, используйте развилки. |
===== ✔ Как надо ===== | ===== ✔ Как надо ===== |
| |
<outgoing>Flow_1em6o86</outgoing> | <outgoing>Flow_1em6o86</outgoing> |
</task> | </task> |
<task id="Activity_0317o28" name="Do this"> | <task id="Activity_0317o28" name="Сделать это"> |
<incoming>Flow_04is4m4</incoming> | <incoming>Flow_04is4m4</incoming> |
</task> | </task> |
<sequenceFlow id="Flow_04is4m4" name="if this" sourceRef="Gateway_0gn9r9q" targetRef="Activity_0317o28" /> | <sequenceFlow id="Flow_04is4m4" name="если это" sourceRef="Gateway_0gn9r9q" targetRef="Activity_0317o28" /> |
<task id="Activity_0fkgdc1" name="Do that"> | <task id="Activity_0fkgdc1" name="Сделать то"> |
<incoming>Flow_02u49rt</incoming> | <incoming>Flow_02u49rt</incoming> |
</task> | </task> |
<sequenceFlow id="Flow_02u49rt" name="if that" sourceRef="Gateway_0gn9r9q" targetRef="Activity_0fkgdc1" /> | <sequenceFlow id="Flow_02u49rt" name="если то" sourceRef="Gateway_0gn9r9q" targetRef="Activity_0fkgdc1" /> |
<sequenceFlow id="Flow_1em6o86" sourceRef="Activity_0131ilb" targetRef="Gateway_0gn9r9q" /> | <sequenceFlow id="Flow_1em6o86" sourceRef="Activity_0131ilb" targetRef="Gateway_0gn9r9q" /> |
<inclusiveGateway id="Gateway_0gn9r9q"> | <inclusiveGateway id="Gateway_0gn9r9q"> |
<outgoing>Flow_02u49rt</outgoing> | <outgoing>Flow_02u49rt</outgoing> |
</task> | </task> |
<task id="Activity_0317o28" name="Do this"> | <task id="Activity_0317o28" name="Сделать это"> |
<incoming>Flow_04is4m4</incoming> | <incoming>Flow_04is4m4</incoming> |
</task> | </task> |
<sequenceFlow id="Flow_04is4m4" name="if this" sourceRef="Activity_0131ilb" targetRef="Activity_0317o28"> | <sequenceFlow id="Flow_04is4m4" name="если это" sourceRef="Activity_0131ilb" targetRef="Activity_0317o28"> |
<conditionExpression xsi:type="tFormalExpression" /> | <conditionExpression xsi:type="tFormalExpression" /> |
</sequenceFlow> | </sequenceFlow> |
<task id="Activity_0fkgdc1" name="Do that"> | <task id="Activity_0fkgdc1" name="Сделать то"> |
<incoming>Flow_02u49rt</incoming> | <incoming>Flow_02u49rt</incoming> |
</task> | </task> |
<sequenceFlow id="Flow_02u49rt" name="if that" sourceRef="Activity_0131ilb" targetRef="Activity_0fkgdc1"> | <sequenceFlow id="Flow_02u49rt" name="если то" sourceRef="Activity_0131ilb" targetRef="Activity_0fkgdc1"> |
<conditionExpression xsi:type="tFormalExpression" /> | <conditionExpression xsi:type="tFormalExpression" /> |
</sequenceFlow> | </sequenceFlow> |
</bpmndi:BPMNDiagram> | </bpmndi:BPMNDiagram> |
</definitions> | </definitions> |
</bpmnio>===== Примечания ===== | </bpmnio> |
| ===== Примечания ===== |
| |
- Some authors argue that conditional flows decreases the number of elements on the diagram which is good. It's doubtful argument because the gateway is a valuable element - it shows explicitly the points in the process where the process route may vary. Conditional flows makes the process logic less transparent. | * Некоторые авторы рекомендуют использовать стрелки, выходящие из действия, потому что это позволяет уменьшить количество элементов на диаграмме. Аргумент сомнительный: развилки полезны - они явно показывают, где процесс может пойти по разным маршрутам. Без них процессная логика становится менее прозрачной. |
- Conditional flows are idependent, hence the inclusive gateway in the "How to" diagram above. | * Условные потоки, выходящие из действия, независимы, поэтому они эквивалентны развилке "и-или". |
===== Связанные страницы ===== | ===== Смотри также ===== |
| |
* [[ru:rule:one_outgoing_control_flow]] | * [[ru:rule:explicit_parallel_split]] |
===== Автор(ы) ===== | ===== Автор(ы) ===== |
| |
--- //[[user:bell|Anatoly Belaychuk]] 2024-01-08 17:03// | --- //[[user:bell|Anatoly Belaychuk]] 2024-01-08 17:03// |
| |