Skip to content

Commit

Permalink
up
Browse files Browse the repository at this point in the history
  • Loading branch information
oldme-git committed Nov 7, 2024
1 parent 7169869 commit b1597bd
Showing 1 changed file with 22 additions and 22 deletions.
44 changes: 22 additions & 22 deletions docs/docs/框架设计/工程开发设计/工程目录设计.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,28 +36,28 @@ hide_title: true
:::info
**[🔥](https://wiki.goframe.org/pages/viewpage.action?pageId=1114409) 重要提示 [🔥](https://wiki.goframe.org/pages/viewpage.action?pageId=1114409)**:框架的工程目录采用了 **通用化的设计**,以满足不同复杂程度业务项目的需求,但实际项目中可以根据项目需要 **适当增减默认的目录**。例如,没有 `i18n/template/protobuf` 需求的场景, **直接删除对应目录即可**。又例如,非常简单的业务项目(如验证/演示项目),不考虑使用严谨的 `dao/logic/model` 目录及特性,那么 **直接删除对应目录即可**,可以在 `controller` 中直接实现业务逻辑。 **一切都可以由开发者灵活选择组装**
:::
| 目录/文件名称 | 说明 | 描述 |
|------------------------------------------------------------|------|----------------------------------------------------------------|
| `api` | 对外接口 | 对外提供服务的输入/输出数据结构定义。考虑到版本管理需要,往往以 `api/xxx/v1...` 存在。 |
| `hack` | 工具脚本 | 存放项目开发工具、脚本等内容。例如, `CLI` 工具的配置,各种 `shell/bat` 脚本等文件。 |
| `internal` | 内部逻辑 | 业务逻辑存放目录。通过 `Golang internal` 特性对外部隐藏可见性。 |
|     `- cmd` | 入口指令 | 命令行管理目录。可以管理维护多个命令行。 |
|     `- consts` | 常量定义 | 项目所有常量定义。 |
|     `- controller` | 接口处理 | 接收/解析用户输入参数的入口/接口层。 |
|     `- dao` | 数据访问 | 数据访问对象,这是一层抽象对象,用于和底层数据库交互,仅包含最基础的 `CURD` 方法 |
|     `- logic` | 业务封装 | 业务逻辑封装管理,特定的业务逻辑实现和封装。往往是项目中最复杂的部分。 |
|     `- model` | 结构模型 | 数据结构管理模块,管理数据实体对象,以及输入与输出数据结构定义。 |
|         `- do` | 领域对象 | 用于 `dao` 数据操作中业务模型与实例模型转换,由工具维护,用户不能修改。 |
|         `- entity` | 数据模型 | 数据模型是模型与数据集合的一对一关系,由工具维护,用户不能修改。 |
|     `- service` | 业务接口 | 用于业务模块解耦的接口定义层。具体的接口实现在 `logic` 中进行注入。 |
| `manifest` | 交付清单 | 包含程序编译、部署、运行、配置的文件。常见内容如下: |
|     `- config` | 配置管理 | 配置文件存放目录。 |
|     `- docker` | 镜像文件 | `Docker` 镜像相关依赖文件,脚本文件等等。 |
|     `- deploy` | 部署文件 | 部署相关的文件。默认提供了 `Kubernetes` 集群化部署的 `Yaml` 模板,通过 `kustomize` 管理。 |
|     `- protobuf` | 协议文件 | `GRPC` 协议时使用的 `protobuf` 协议定义文件,协议文件编译后生成 `go` 文件到 `api` 目录。 |
| `resource` | 静态资源 | 静态资源文件。这些文件往往可以通过 资源打包/镜像编译 的形式注入到发布文件中。 |
| `go.mod` | 依赖管理 | 使用 `Go Module` 包管理的依赖描述文件。 |
| `main.go` | 入口文件 | 程序入口文件。 |
| 目录/文件名称 | 说明 | 描述 |
| --- | --- | --- |
| `api` | 对外接口 | 对外提供服务的输入/输出数据结构定义。考虑到版本管理需要,往往以 `api/xxx/v1...` 存在。 |
| `hack` | 工具脚本 | 存放项目开发工具、脚本等内容。例如, `CLI` 工具的配置,各种 `shell/bat` 脚本等文件。 |
| `internal` | 内部逻辑 | 业务逻辑存放目录。通过 `Golang internal` 特性对外部隐藏可见性。 |
| `  - cmd` | 入口指令 | 命令行管理目录。可以管理维护多个命令行。 |
| `  - consts` | 常量定义 | 项目所有常量定义。 |
| `  - controller` | 接口处理 | 接收/解析用户输入参数的入口/接口层。 |
| `  - dao` | 数据访问 | 数据访问对象,这是一层抽象对象,用于和底层数据库交互,仅包含最基础的 `CURD` 方法 |
| `  - logic` | 业务封装 | 业务逻辑封装管理,特定的业务逻辑实现和封装。往往是项目中最复杂的部分。 |
| `  - model` | 结构模型 | 数据结构管理模块,管理数据实体对象,以及输入与输出数据结构定义。 |
| `    - do` | 领域对象 | 用于 `dao` 数据操作中业务模型与实例模型转换,由工具维护,用户不能修改。 |
| `    - entity` | 数据模型 | 数据模型是模型与数据集合的一对一关系,由工具维护,用户不能修改。 |
| `  - service` | 业务接口 | 用于业务模块解耦的接口定义层。具体的接口实现在 `logic` 中进行注入。 |
| `manifest` | 交付清单 | 包含程序编译、部署、运行、配置的文件。常见内容如下: |
| `  - config` | 配置管理 | 配置文件存放目录。 |
| `  - docker` | 镜像文件 | `Docker` 镜像相关依赖文件,脚本文件等等。 |
| `  - deploy` | 部署文件 | 部署相关的文件。默认提供了 `Kubernetes` 集群化部署的 `Yaml` 模板,通过 `kustomize` 管理。 |
| `  - protobuf` | 协议文件 | `GRPC` 协议时使用的 `protobuf` 协议定义文件,协议文件编译后生成 `go` 文件到 `api` 目录。 |
| `resource` | 静态资源 | 静态资源文件。这些文件往往可以通过 资源打包/镜像编译 的形式注入到发布文件中。 |
| `go.mod` | 依赖管理 | 使用 `Go Module` 包管理的依赖描述文件。 |
| `main.go` | 入口文件 | 程序入口文件。 |

### 对外接口

Expand Down

0 comments on commit b1597bd

Please sign in to comment.