Рубрики
Без рубрики

Понимание архитектуры программного обеспечения

Это мой первый пост в этой платформе, так что это рода бета-тест. В то же время я хочу … Помечено Django, Python, WebDev, архитектуру.

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

Одной из моих первых трудностей в понимании веб-разработки было выяснить его, как планировать и организовать мои сценарии. Оттуда я начал искать метод MVC или для случая Django MVT. Я наступил на метод, описываемый чистой архитектурой, который немного очистил вещи, и это то, что я хочу объяснить в этом посте.

Что такое чистая архитектура?

« Чистая архитектура – это философия проектирования программного обеспечения, которая разделяет элементы дизайна в уровни кольца . Важной целью чистой архитектуры является предоставление разработчикам способом организовать код таким образом, что он инкапсулирует бизнес-логику, но сохраняет его отдельно от механизма доставки ».

Основное правило чистой архитектуры заключается в том, что кодовые зависимости могут двигаться только с внешних уровней внутрь. Код на внутренних слоях не может иметь знания о функциях на внешних слоях. Переменные, функции и классы (любые объекты), которые существуют во внешних слоях, не могут быть упомянуты в более внутренних уровнях. Рекомендуется, чтобы форматы данных также оставались отдельными между уровнями.

Итак, мы должны расследовать, каковы эти слои, которые происходит зависимость.

Орден, поэтому мы можем понять немного лучше, идет так, снаружи к внутреннему кругу чистой архитектуры:

Рамки и драйверы -> интерфейсные адаптеры -> ПРИМЕНЕНИЕ БИЗНЕСНЫЕ Правил -> Предприятие Бизнес правил

Давайте начнем с понимания правил бизнеса предприятия:

Сущности и классы – первый и второй слои

Предприятия являются обычными классами для нескольких систем в проекте. Давайте возьмем систему университетских курсов. Мы должны предположить, что этот университет будет иметь дело с академической средой (учениками, преподавателями, сотрудниками), финансовой организацией, расширениями с сообществом за пределами университета и т. Д. Все тезисные системы каким-то образом занимаются друг с другом, например, студенты будут заниматься финансовой стороны университета и так далее. Помимо учетных данных каждого пользователя этой системы, приложена к ней логика. Учителя должны быть в отделе, например, поскольку для студентов должны быть зачислены в курсы.

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

Адаптеры – третий слой

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

Предположим, например, система, которая использует API для связи с его клиентами. Классы адаптеров будут, ответственны за реализацию конечных точек отдыха API. Это означает, что классы получат запросы и отправляют их в их корреспондент.

Эти классы также должны наоборот: они получат результаты, возвращаемые делами использования, и преобразовать документы в JSON, которые будут отправлены клиентам.

Если система реализована MVC Framework, все компоненты этого архитектурного шаблона – вид, контроллер и модель – будет принадлежать этому слою. (В случае Джанго это будет модель, вид и шаблон)

Внешние рамки

В самом внешнем слое всего, четвертый слой, у нас есть классы из внешних библиотек и внешних каркасов, которые могут быть реагированы на хранение (или постоянство) базы данных. В этом случае он будет нести ответственность для построения интерфейса с пользователями, отправив электронные письма, интегрируя систему друг с другом, общение с определенным аппаратным обеспечением и т. Д.

Например, Университет, о котором мы думали, могут иметь систему управления расширенными курсами, она может принимать платежи с кредитными картами. Для этого система должна использовать услуги третьих сторон (Банк), который предлагает некоторые классы для платежных процессов. Таким образом, классы диссертаций должны оставаться во внешнем слое чистой архитектуры.

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

Вывод

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

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

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

Оригинал: “https://dev.to/dansal/understanding-django-phn”