Название задания: Чистая архитектура проекта Цель: Применить полученные знания на практике, выявить и устранить пробелы в понимании правила зависимостей и принципов компоновки. Описание задания: Ваш проект развивается, от простейшего приложения вы прошли путь к расширяемой системе, применили шаблоны проектирования. Теперь вам предстоит собрать классы в компонент и построить между ними связи. Инструменты, которые пригодятся для выполнения: Рекомендовано использовать https://app.diagrams.net/ для создания диаграмм, а для проверки выгрузить в pdf. Критерии, по которым будет оцениваться задание: Качество разбиения системы на компоненты, соответствие правилу зависимостей и модели чистой архитектуры. Задание: Ваше приложение представляет собой полноценную модульную систему. Выполните все этапы задания: Подумайте, всего ли хватает в вашей диаграмме классов для полноценной работы системы? Есть ли все условия для взаимодействия с пользователем и для преобразования / сохранения данных. Если вы найдёте недостающие части, вам следует добавить классы, покрывающие эту функциональность. Посмотрите внимательно на ваши классы, соответствуют ли они принципам чистой архитектуры? Не смешаны ли детали с политиками? Бизнес-правила не зависят от низкоуровневых модулей? Когда все классы готовы, приходит время распределить их по компонентам. Учитывайте принципы компоновки, low coupling / high cohesion, модель чистой архитектуры. Постройте диаграмму компонентов. Укажите, где проходят архитектурные границы. В местах, где потоки данных пересекают архитектурные границы, укажите используемые форматы данных В итоге должно получиться: Диаграмма компонентов Описание распределения классов по компонентам (в виде диаграммы или перечня) Описание форматов данных