goframe的文件结构

GoFrame 是一款模块化、高性能、企业级的 Go 基础开发框架。

它实现了比较完善的基础设施建设以及开发工具链,提供了众多常用的基础开发模块,例如缓存、日志、队列、数组、集合、容器、定时器、命令行、内存锁、对象池、配置管理、资源管理、数据校验、数据编码、定时任务、数据库 ORM、TCP/UDP 组件、进程管理/通信等。同时,GoFrame 也提供了 web 服务开发的系列核心组件,如 router、cookie、session、middleware、服务注册、模板引擎等,支持热重启、热更新、域名绑定、TLS/HTTPS、rewrite 等特性。

GoFrame 的主要特点包括:

  • 模块化、松耦合设计;
  • 模块丰富、开箱即用;
  • 简便易用、易于维护;
  • 高代码质量、高单元测试覆盖率;
  • 社区活跃;
  • 拥有详尽的开发文档及示例;
  • 具备完善的本地中文化支持;
  • 设计为团队及企业使用。

安装 GoFrame 推荐使用go.mod方式,在go.mod文件中添加以下命令:require github.com/gogf/gf latest

其项目地址如下:

文档方面,中文官方网站为:https://goframe.org ,中文镜像文档可参考:https://pages.goframe.org ,中文离线文档见:https://github.com/gogf/goframe.org-pdf ,Godoc API 地址为:gf package - github.com/gogf/gf/v2 - Go Packages 。

GoFrame 推荐使用三层架构设计模式来进行代码分层,其基本目录结构如下:

/
├── app
│   ├── api
│   ├── dao
│   ├── model
│   └── service
├── boot
├── config
├── docker
├── document
├── i18n
├── library
├── packed
├── public
├── router
├── template
├── dockerfile
├── go.mod
└── main.go

各目录和文件的具体作用如下:

app业务逻辑层,存放所有业务逻辑相关的代码。其中的 api、dao、model、service 是业务开发的主要部分。

  • api:业务接口,类似于三层架构设计中的表示层(UI),负责接收并响应客户端的输入与输出,包括对输入参数的过滤、转换、校验,对输出数据结构的维护,并调用 service 实现业务逻辑处理。
  • dao:数据访问层,负责所有的数据访问收口,通过 ORM 组件等实现数据的增删改查等操作,并将操作结果反馈到业务逻辑层。
  • model:模型定义层,主要用于数据库表的映射对象,包含数据结构定义,不包含任何方法定义。它服务于表示层、业务逻辑层以及数据访问层,在三层之间进行数据参数传输,强化数据表示的简约性。
  • service:业务逻辑封装层,类似于三层架构设计中的业务逻辑层(BLL),负责具体业务逻辑的实现以及封装,可被不同的包调用。
  • boot:初始化包,用于项目初始化参数设置,通常是 main.go 中第一个被导入的包。config:配置管理,存放所有的配置文件
  • docker:镜像文件,包含 docker 镜像相关的依赖文件、脚本文件等。
  • document:项目文档,如设计文档、帮助文档等。
  • i18n:国际化配置文件目录。
  • library:公共库包,用于封装公共的功能,往往不涉及具体的业务需求实现
  • packed:打包目录,将资源文件打包的 go 文件存放在此处,boot 包初始化时会自动调用。
  • public:静态目录,只有该目录下的文件才能对外提供静态服务访问,不建议将程序当前运行目录加入到静态服务中。
  • router:路由注册,用于统一管理路由。
  • template:模板文件,存放 MVC 模板文件的目录,在实践中也可采用 MVVM 模式,使用如 Vue/React 等框架实现模板解析。
  • dockerfile:镜像描述,云原生时代用于编译生成 docker 镜像的描述文件。
  • go.mod:依赖管理,使用 Go module 包管理的依赖描述文件。
  • main.go:入口文件,程序的入口。
  • 在实践中,可根据项目的实际情况对目录进行增删。这种分层设计能够体现出“高内聚、低耦合”的软件设计思想,有利于业务开发和代码维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值