Цель: Научиться вынимать требования из бизнеса и выбирать элементы системы на основе этих требований. Узнать первые два вида связности — по данным и по вызовам. Познакомиться с системой, которую будем разбирать во время курса.
Какую проблему решаем?
Когда мы только начинаем проектировать системы, обычно нет ни внятных требований, ни времени на проектирование. После урока будет понятно, что даже в таких условиях можно собрать что-то рабочее.
Так же в уроке разбиваем два антипаттерна — разбивание бизнес-логики по техническим шагам (нужен пример) или по сущностям (entity service)
Ключевые концепции и термины:
На выходе:
Спроектируем первую версию системы. Для этого рассмотрим две базовые модели: Event Storming и Модель данных. Благодаря этим моделям, в будущем, будем улучшать систему с каждой новой итерацией.
Цель: Проанализировать полученную в первом уроке систему и найти её слабые места. Разобраться в явных и неявных видах связанности, связать связанность и сложность системы. Посмотреть на проект глазами бизнеса, чтобы избавиться от лишней связанности между элементами. Определиться, какие характеристики важны для системы, найти их значения и выбрать один из базовых архитектурных стилей, основанных на найденных характеристиках.
Какую проблему решаем?
После первой итерации оказалось, что не были учтены неявные связи между найденными элементами, а сами элементы были найдены без понимания, какую проблему изначально решает бизнес. При этом выбранная структура из первого урока оказалась невалидной, ибо мы не учли важные характеристики проекта. Поэтому научимся искать характеристики и выбирать архитектурные стили, основываясь на полученных данных.
Ключевые концепции и термины: