Что можешь сказать про чистую архитектуру
В чистой архитектуре выделяют 2 основных модуля core/app.
Core — это самый независимый модуль, он должен содержать минимум зависимостей от классов с андроидом. Это необходимо, чтобы в будущем можно было достаточно легко делать unit-тесты для этого модуля. Этот модуль содержит 3 основных слоя :
useCaselayer — в нём содержатся классы, которые должны выполнять только одну задачу для взаимодействия между presentation и data слоями.
DataLayer — в нём содержатся интерфейсы репозитория и источников данных. Domain слой который содержит модели и бизнес логику.
App — это модуль в котором происходит взаимодействие с андроид. Он состоит из 2 слоёв:
PresentationLayer — содержит в себе классы которые отображают данные Fragment/ ViewModel
FrameworkLayer — содержит имплементации data sourse и repository, а также свои модели.
Oct. 15, 2023, Источник
Чистая архитектура (Clean Architecture) — это концепция в программной инженерии, предложенная Робертом Мартином (Uncle Bob), направленная на создание программного обеспечения, которое является устойчивым к изменениям, легко тестируемым, и может быть развёрнуто на разных платформах. Она стремится минимизировать зависимости между различными частями приложения, чтобы облегчить поддержку и обновление кода.
Данная архитектура основывается на нескольких основных принципах:
1. Независимость от фреймворков: Архитектура не должна зависеть от библиотек или фреймворков, что позволяет использовать систему как набор инструментов, а не наоборот.
2. Тестируемость: Бизнес-логика приложения должна быть изолирована от UI, баз данных и других внешних элементов, что облегчает тестирование.
3. Независимость от UI: Интерфейс пользователя должен быть легко изменяем без внесения изменений в остальную систему.
4. Независимость от базы данных: Бизнес-логика не должна зависеть от конкретной базы данных.
5. Независимость от внешних агентов: Бизнес-правила не должны зависеть от внешних служб или систем.
Данная архитектура предлагает разделение системы на слои, где каждый слой имеет строго определенные обязанности и зависит только от слоёв, расположенных на более глубоком уровне:
- Entities (Сущности): Содержат бизнес-правила приложения. Это могут быть объекты предметной области или данные, которые не зависят от использования конкретных технологий.
- Use Cases (Сценарии использования): Содержат специфические бизнес-правила приложения и описывают, как и когда должны использоваться сущности.
- Interface Adapters (Адаптеры интерфейсов): Преобразуют данные в удобный для сценариев использования и сущностей формат и наоборот. Этот слой отвечает за взаимодействие с базами данных, веб-сервисами и пользовательским интерфейсом.
- Frameworks and Drivers (Фреймворки и драйверы): Внешний слой, который включает в себя все внешние компоненты, такие как базы данных, веб-фреймворки и библиотеки.
Основной целью чистой архитектуры является создание системы, которая:
- Гибкая к изменениям: Легко адаптируется к изменениям в бизнес-требованиях или технологиях.
- Легко тестируемая: Бизнес-логика отделена от внешних зависимостей.
- Простая в поддержке: Зависимости между слоями минимизированы, что облегчает обновления и исправления.
Чистая архитектура — это подход к разработке программного обеспечения, который стремится обеспечить разделение ответственности между компонентами системы, упростить тестирование и поддержку, а также сделать архитектуру устойчивой к изменениям во внешних зависимостях и технологиях.
April 10, 2024, easyoffer