Capstone FTS: исполнение заказа от модели до React и Node.js
Финальный проект соединяет поверхности, но сохраняет одну бизнес-модель.
1. Модель
категория «Исполнение заказа»
объект Заказ
номер является строкой
«готов к отгрузке» является состоянием «Готов к отгрузке»
объект Покупка
сумма является деньгами
«постоянный клиент» является признаком
утилита «Рассчитать скидку»
принимает Покупка
возвращает деньги
начинает с 0
правило «Большой заказ»
если сумма не меньше 10000
то добавить 10 процентов от поля сумма
свойство «Скидка ограничена»
результат не больше 20 процентов от поля сумма
пример «Заказ на двадцать тысяч»
дано сумма равна 20000
дано «постоянный клиент» равен нет
ожидается результат равен 2000
морфизм «Готовый заказ можно отгрузить»
если «Готов к отгрузке»
то «Отгрузить заказ разрешено»
теорема «Заказ ЗК-7781 можно отгрузить»
дано Заказ имеет «готов к отгрузке» равное да
в данных заказы найти где номер равен «ЗК-7781»
по морфизму «Готовый заказ можно отгрузить»
следовательно «Отгрузить заказ разрешено»
2. Архитектура
3. Definition of done
fts checkуспешен;- все examples проходят;
- property защищает верхний предел;
- React читает структуру через browser entrypoint;
- Node загружает модель один раз;
- command guard требует verified certificate;
- внешний shipping effect не находится внутри FTS;
- CI проверяет generated drift;
- benchmark сравнивает build before/after;
- README явно перечисляет assumptions морфизма.
4. Задание для ролей
Junior добавляет поле и component descriptor. Middle строит Node endpoint и
обработку diagnostics. Senior проектирует snapshot и транзакционную границу.
Lead проверяет ubiquitous language и версионирование. Агент предлагает новый
пример, но обязан пройти fts_check, fts_test и fts_verify.
5. Критерий зрелости
Проект готов не тогда, когда .fts выглядит красиво, а когда удалено реальное
дублирование: одна модель управляет вычислением и тестом, а адаптеры используют
canonical JSON. При этом эффекты, UX и инфраструктура остаются в своих слоях.
Вернитесь к каталогу из 232 прикладных кейсов, выберите ближайший к своей работе и повторите capstone на собственном bounded context.