#Архитектура для начинающих.

Архитектура — это системный дизайн, который разбивает компоненты на отдельные части. Инженеры легко достигают своих целей.

Цель чистой архитектуры — найти лучшее программное обеспечение, такое как удобное в сопровождении, тестируемое, простое в использовании, масштабируемое и многое другое — точное руководство для инженеров.

Цель чистой архитектуры состоит в том, чтобы получить более качественное программное обеспечение, такое как удобное в сопровождении, тестируемое, простое в использовании, масштабируемое и многое другое. Архитектура — правильный ориентир для инженеров. Если вы новичок, это поможет вам найти свою цель, и вы сможете получить основную идею.

Объяснение чистой архитектуры?

Эта иллюзия очень хорошо покрывает архитектуру, и давайте посмотрим на объяснение. Чистая архитектура была создана в 2012 году в блоге Роберта С. Мартина.

Очень центр здесь с нашими доменами и нашими сущностями. Это правило нашего бизнеса.

И это приложение, используемое во внешних случаях, и то, как оно называется сущностью.
Затем на следующем уровне, если вы делаете что-то вроде MVC, или шлюза, или презентера для пользовательского интерфейса, у нас есть контроллер. А на верхнем уровне, если вы создаете веб-приложение, то здесь и UI-фреймворк.

Правило зависимости

В этой архитектуре основным правилом является правило зависимостей. Одна вещь, которую вы можете видеть в этой иллюзии, это эти стрелки. Здесь эти стрелки указывают внутрь, и это означает, что внешние слои могут указывать на внутреннюю часть слоев, а внутренние слои не могут указывать на внешние слои. И внутренний слой ничего не знает о внешнем слое.

Как это работает?

Чистая архитектура ставит ядро ​​в центр. Это означает, что бизнес-логика и модели приложений находятся в центре вместе.

Но ядро ​​должно быть независимым от дополнительных данных, поэтому мы обращаем зависимости.
И это произошло путем добавления интерфейса ядра, а внешний слой применил его.

Зачем нужна чистая архитектура:

  • Независимость от фреймворка.
  • Независимость от базы данных.
  • Независимо от Уи.
  • Тестируемый.
  • Независимость от каких-либо внешних агентств.
  • Оптимальный результат

Пояснение к слою:

В основном ваше приложение будет трехслойным:

  • Уровень представления: ViewModel, реализация презентатора, адаптер.
  • Уровень предметной области: Варианты использования или обратный вызов и интерфейсы репозитория.
  • Уровень данных: база данных, пользовательский интерфейс, хранилище и сеть. Реализация репозитория сущностей и бизнес-логика.

Теперь позвольте мне обсудить три слоя.

Презентация:

Этот слой применяет пользовательский интерфейс без аргументов. Этот уровень применяет внутреннюю архитектуру и подключается ко всему.

Слой данных:

На уровне данных у нас есть комната репозитория сущностей для модернизации других бизнес-проектов.

Но я видел у некоторых людей, что сущность находится на уровне домена и создает его. Но не делайте этого из-за нашего MVVM, который может быть другим здесь позже в обратном порядке.

Поэтому всякий раз, когда вы реализуете свое хранилище или работаете с чем-то еще, вы создаете его.

Слой домена:

На этом уровне ваш бизнес имеет логику. Код верхнего уровня остается на уровне ядра. На этом уровне нет знаний о классах и объектах, поскольку они запускаются в приложении. Этот уровень соединяет уровень данных с уровнем представления.

Уровень домена будет обратными вызовами вариантов использования и интерфейсом репозиториев. Таким образом, мы можем назвать этот конкретный репозиторий.

Случаи использования:

Этот уровень содержит определенные бизнес-правила приложения. Этот слой реализует все виды использования. Этот слой не может влиять на слой объекта при его изменении, а внешний слой не может на него влиять. Но если этот вариант использования изменится, это повлияет на некоторый код в этом слое.

Еще две концепции чистой архитектуры:

Многие особенности чистой архитектуры в совокупности способствуют определению того, что такое чистая архитектура. Но здесь я собираюсь поделиться с вами двумя концепциями:

  • Тестируемость
  • Разделение интересов

Тестируемость - это тип проблемы в разделе разделения. Потому что, чтобы быть тестируемым, вы хотите разделить вещи.

Они используют проблему разделения, поэтому вы делаете это, чтобы сделать ее поддающейся проверке. Эти две вещи непреодолимо важнее всего.

Проблема разделения относится к разделению различных частей вашего приложения на самодостаточные элементы.

Основная идея здесь заключается в том, чтобы быть самодостаточным. Если мы посмотрим на архитектуру, это будет как легкий пример.

В вашем пользовательском интерфейсе есть часть вашей бизнес-логики перемещения информации из вашего репозитория в вашу активность или фрагмент, который является моделью представления. И затем у вас есть хранилище, которое ссылается на ваш удаленный источник данных.

Все они определены как разные компоненты приложения, и вы можете поменять их местами для разных целей. После замены вы просто запускаете все свои тесты, и все ваши тесты будут пройдены, даже если вы заменили один из этих компонентов.

Заключительные слова

Было бы неплохо увидеть Чистую архитектуру дяди Боба. Если вы заметите немного, вы получите базовые знания. Чистая архитектура — основа хорошего приложения. Если вы не знаете какой-либо архитектуры, у вас нет хорошего плана для вашего приложения.

Так что чистая архитектура дает четкое представление о реализации качественного приложения. Так что идите и проверьте это, если вы не знакомы с этим.

Спасибо за чтение.