Які переваги відокремити "результат" від "статус"


11

Скажімо, у вас є деякі автоматизовані процеси, які, як правило, проходять через наступні стани; запланований - ініційований - перевірка - виконання - завершена

Крім того, ці процеси можуть передчасно закінчитися через помилку або явне скасування користувача.

Перший мій імпульс - просто додати помилку та скасувати до списку можливих значень статусу, але мені було цікаво (концептуальні) переваги відмежування результату від статусу (хоча мені здається, що можна стверджувати, що помилка та скасування також є просто інші стани, ніж закінчений стан).

Відповіді:


12

Стан, який ви призначаєте своїм процесам, повинен відображати те, що ваша програма (або користувачі, якщо ви просто візуалізуєте стани), робитиме з цією інформацією. Тож чи є у вас вимога оцінювати / показувати стан своїх процесів до тих пір, поки вони працюють і не показують помилок? Потім відокремте результат від статусу . Якщо вам просто потрібен статус, коли процес закінчився, тоді не розлучайтесь.

Не варто нічого моделювати лише заради моделювання. Краще перевірте свої вимоги. А якщо ви не впевнені, що вам може знадобитися пізніше, виберіть найменше, найпростіше рішення для вимог, які ви точно знаєте. Якщо ви просто «здогадуєтесь», у 90% всіх випадків ви здогадаєтесь неправильно, тож вам доведеться пізніше все-таки змінити модель.


1

але мені було цікаво (концептуальні) переваги відмежування результату від статусу (хоча мені здається, що можна стверджувати, що помилка та скасування є також просто іншими станами, ніж завершений стан).

Є велика перевага в деталізації деталізації прогресу та визначенні точок відмови (у розумних межах), як у вашому випадку. Я думаю, що плутанина випливає з термінів "статус" і "стан" - ми повинні кваліфікувати ці терміни. Так, наприклад, "Статус завдання", навіть це не дуже точно, тому ми можемо захотіти використовувати "Стан виконання завдання", однак це неправильно, оскільки у вас вже є крок виконання. Ми можемо використовувати назву "Статус обробки завдання", а значення: "ініційоване - перевірка - виконання - завершено" мають ідеальний сенс. Дійсно, ми могли б додати "Скасовано" до списку. Однак "Помилка" не відповідає на запитання на кшталт: Який стан обробки задачі дуже добре. Схоже, що "Помилка" є підпунктом " Завершено" . То що ми робимо? Ми могли б перейменовувати Завершено бутиЗавершено ОК, і тоді ми можемо додати список довершених помилок до списку. Таким чином, остаточний перелік значень Статус обробки завдання :

  • Початкова,

  • Підтверджено,

  • Виконання,

  • Скасовано,

  • Завершено ОК,

  • Завершено з помилкою

Редагувати: тепер вищевказаний список все ще потребує певної роботи. У перших чотирьох елементах немає слова "ОК". Тож якщо краще буде там, щоб відповідати стану "Завершено ОК". Інша справа, що перші 4 пункти не мають "з помилкою" - Що це означає? Що відбувається, коли "Виконання" закінчується ненормально - Це вимагає нового стану "Виконано з помилкою"? У цей момент може знадобитися більше введення та аналізу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.