Иерархический дизайн кода

Архитектура
Иерархический дизайн кода

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

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

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


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

«Плот Медузы» Жерико имеет пять метров в высоту и семь метров в ширину. Особенно на его изображении две пирамидальные геометрические фигуры образованы дюжиной людей. Это признаки классицизма.


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

мы знакомы сMVC(Model-View-Controller,分别是模型层、视图层、控制层)Трехуровневая архитектура является очень типичным шаблоном многоуровневой архитектуры.

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

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

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

доменная модель

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

DO

DO (Data Object) соответствует структуре таблицы базы данных один к одному, а объект источника данных передается вверх через уровень DAO.

DTO

DTO (объект передачи данных) — это объект удаленного вызова, представляющий собой модель предметной области, предоставляемую службой RPC.

Следует отметить, что для DTO он должен быть сериализован, реализовывать интерфейс Serializable и предоставлять serialVersionUID, иначе, если serialVersionUID будет изменен во время десериализации, десериализация завершится ошибкой.

BO

BO (Business Object) — это объект, который инкапсулирует бизнес-логику на уровне бизнес-логики.В общем, это составной объект, объединяющий несколько источников данных.

VO

VO (View Object) — это обычно объект, передаваемый уровнем обработки запроса, после преобразования фреймворком Spring он часто представляет собой объект JSON.


наслоение кода

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

代码分层

Роль каждого слоя подробно описана ниже.

Интерфейсный слой

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

уровень обработки запросов

Роль уровня обработки запросов включает отрисовку страниц с помощью механизмов шаблонов (FreeMarket, Velocity и т. д.), интерфейсов HTTP, которые инкапсулируют RESTful API, а также различные типы интерфейсов, открытые для внешних вызовов.

слой бизнес-логики

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

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

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

уровень сохраняемости данных

Уровень сохраняемости данных обеспечивает возможность хранения данных и доступа к ним. В том числе возможность доступа к базам данных через DAO и возможность доступа к внешним интерфейсам данных через DAP.


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

代码分层文字版