Что можешь сказать про чистую архитектуру

 В чистой архитектуре выделяют 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