# natty-wow **Repository Path**: qambi/natty-wow ## Basic Information - **Project Name**: natty-wow - **Description**: kotlin+ddd - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-24 - **Last Updated**: 2025-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 Wow 框架的 DDD 项目模版 style [![codecov](https://codecov.io/gh/Ahoo-Wang/wow-project-template/graph/badge.svg?token=lvvGMBqmMh)](https://codecov.io/gh/Ahoo-Wang/wow-project-template) 用于快速构建基于 [Wow 框架](https://github.com/Ahoo-Wang/Wow) 的 DDD 项目模板。 ## 模块介绍 | 模块 | 说明 | |-------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| | [api](./api) | **API 层**,定义聚合命令(Command)、领域事件(Domain Event)以及查询视图模型(Query View Model)。充当各个模块之间通信的“发布语言”,同时提供详细的 API 文档,助力开发者理解和使用接口。 | | [domain](./domain) | **领域层**,包含聚合根和业务约束的实现。聚合根充当领域模型的入口点,负责协调领域对象的操作,确保业务规则的正确执行。业务约束包括领域对象的验证规则、领域事件的处理等。模块内附有详细的领域模型文档,助力团队深入了解业务逻辑。 | | [server](./server) | **宿主服务**,应用程序的启动点。负责整合其他模块,并提供应用程序的入口。涉及配置依赖项、连接数据库、启动 API 服务等任务。此外,server 模块提供了容器化部署的支持,包括 Docker 构建镜像和 Kubernetes 部署文件,简化了部署过程。 | | [code-coverage-report](./code-coverage-report) | **测试覆盖率**,用于生成详细的测试覆盖率报告,以及验证覆盖率是否符合要求。帮助开发团队了解项目测试的全面性和质量。 | | [dependencies](./dependencies) | **依赖项管理**,这个模块负责管理项目的依赖关系,确保各个模块能够正确地引用和使用所需的外部库和工具。 | | [bom](./bom) | **项目的 BOM(Bill of Materials)** | | [libs.versions.toml](gradle/libs.versions.toml) | **依赖版本配置文件**,明确了项目中各个库的版本,方便团队协作和保持版本的一致性。 | | [deploy](./deploy) | **Kubernetes 部署文件**,提供了在 Kubernetes 上部署应用程序所需的配置文件,简化了部署过程。 | | [Dockerfile](server/Dockerfile) | **server Docker 构建镜像**,通过 Dockerfile 文件定义了应用程序的容器化构建步骤,方便部署和扩展。 | | [document](document) | **项目文档**,包括 UML 图和上下文映射图,为团队成员提供了对整个项目结构和业务逻辑的清晰理解。 | ## 启动服务

启动服务

> 访问:[http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html)

Swagger-UI

## 验证测试覆盖率 ```shell ./gradlew domain:jacocoTestCoverageVerification ``` > 查看测试覆盖率报告:`domain/build/reports/jacoco/test/html/index.html`

Wow-CI-Flow

## CI/CD 流水线

Wow-CI-Flow

### 测试阶段 > 代码风格检查(Check CodeStyle) ```shell ./gradlew detekt ``` > 领域模型单元测试 (Check Domain) ```shell ./gradlew domain:check ``` > 测试覆盖率验证(Check CodeCoverage) ```shell ./gradlew domain:jacocoTestCoverageVerification ``` ### 构建阶段 > 生成部署包 (Build Server) ```shell ./gradlew server:installDist ``` > 发布 Docker 镜像 (Push Image) [Dockerfile](server/Dockerfile) ```shell docker login --username= --password=<******> docker build -t /: server docker push /: ``` ### 部署阶段 > 部署到 Kubernetes (Deploy Kubernetes) [deploy](./deploy) ```shell [部署到 Kubernetes (Deploy Kubernetes)] kubectl apply -f deploy ``` ## 设计文档 ### 用例图

Wow-UseCase