COLA — это аббревиатура от Clean Object-Oriented and Layered Architecture, что означает "чистая объектно-ориентированная и слоеная архитектура". В настоящее время COLA достигла версии COLA v4.> - Чтобы узнать больше о COLA, пожалуйста, следите за нашим WeChat-аккаунтом:
- Чтобы узнать больше о истории COLA, пожалуйста, поддержите мое новое издание «Программистское дно». COLA分为两个部分, COLA架构和COLA组件. → COLA состоит из двух частей: архитектура COLA и компоненты COLA.# 1. Архитектура COLA
Архитектура означает структуру элементов:
Архитектура приложения означает:
Архитектура COLA создана для этих целей, её основная задача — определение хорошей структуры приложения и предоставление лучших практик для оптимальной архитектуры. С помощью постоянных исследований мы обнаружили, что хорошая структура уровней и определение пакетов помогают нам управлять хаотическими бизнес-приложениями.
После нескольких итераций мы определили стабильную и надежную архитектуру приложения: COLA v4
Хорошая архитектура приложения следует за некоторыми общими моделями, будь то шестигранная архитектура, луковица, чистая архитектура или COLA архитектура, все они пропагандируют центральную роль бизнеса, декомпозицию внешних зависимостей и разделение сложности бизнеса и технической сложности.
Основное отличие архитектуры COLA от этих архитектур заключается в том, что мы предоставляем не только идеи, но и практические инструменты и руководства по внедрению.
Чтобы быстро создавать приложения, соответствующие архитектуре COLA, мы предоставляем два архетипа
, расположенных в директории [cola-archetypes
]:
cola-archetype-service
: архетип для создания чистого серверного сервиса.cola-archetype-web
: архетип для создания адаптера
и серверного сервиса вместе в виде веб-приложения.Кроме того, мы предоставляем несколько полезных общих компонентов, которые помогают нам повысить эффективность разработки.Эти функциональные компоненты собраны в директории [cola-components
]. На данный момент мы имеем следующие компоненты:
Компонент | Функция | Зависимости |
---|---|---|
cola-component-dto |
Определяет формат DTO , включая пагинацию |
Нет |
cola-component-exception |
Определяет формат исключений, включая BizException и SysException
|
Нет |
cola-component-statemachine |
Компонент состояний | Нет |
cola-component-domain-starter |
Компонент доменного уровня, управляемый Spring
|
Нет |
cola-component-catchlog-starter |
Компонент обработки исключений и логирования | Компоненты exception и dto
|
cola-component-extension-starter |
Компонент расширений | Нет |
cola-component-test-container |
Компонент тестового контейнера | Нет |
Выполните следующую команду:
mvn archetype:generate \
-DgroupId=com.alibaba.cola.demo.web \
-DartifactId=demo-web \
-Dversion=1.0.0-SNAPSHOT \
-Dpackage=com.alibaba.demo \
-DarchetypeArtifactId=cola-framework-archetype-web \
-DarchetypeGroupId=com.alibaba.cola \
-DarchetypeVersion=4.3.1
Если команда выполнена успешно, вы увидите следующую структуру приложения:
проект
выполните mvn install
(если вы не хотите запускать тесты, добавьте параметр -DskipTests
).start
и выполните mvn spring-boot:run
.
Если запуск выполнен успешно, вы увидите интерфейс, показывающий успешное запуск SpringBoot
.REST
запрос, который можно протестировать, введя в браузере адрес http://localhost:8080/helloworld.Если вы хотите создать не web
проект, а service
проект, выполните следующую команду:
mvn archetype:generate \
-DgroupId=com.alibaba.cola.demo.service \
-DartifactId=demo-service \
-Dversion=1.0.0-SNAPSHOT \
-Dpackage=com.alibaba.demo \
-DarchetypeArtifactId=cola-framework-archetype-service \
-DarchetypeGroupId=com.alibaba.cola \
-DarchetypeVersion=4.3.1
https://blog.csdn.net/significantfrank/article/details/110934799
https://blog.csdn.net/significantfrank/article/details/1095293111. Дальнейшее упрощение cola-core
, оставление только расширяемых возможностей.
2. Перемещение exception
из cola-core
в cola-common
.
3. Переработка логики разбиения пакетов в archetype
на основе домена.
4. Переименование controller
в adapter
в cola-archetype-web
для соответствия названиям шестиугольной архитектуры.## Версия 3.0.0
https://blog.csdn.net/significantfrank/article/details/106976804
https://blog.csdn.net/significantfrank/article/details/100074716
https://blog.csdn.net/significantfrank/article/details/85785565
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )