手把手教你搭建 Go 项目

1. Go 项目架构设计

Go 语言项目实战的第一步当然是搭建项目了。首先需要确定的是我们的商城项目采用经典的分层架构,代码布局参考了目前比较通用的标准布局。

1.1 分层架构

分层架构是一种常见的架构模式,也叫 N 层架构,通常 N 至少是两层。需要注意,参考分层架构进行系统设计时,根据不同的划分维度和对象,其实可以得到多种不同的分层架构方案。当前我们划分的对象是商城系统,划分的维度是职责,整个商城系统可以划分为三层。

1)表示层:用户与表示层直接交互,该层接收用户的输入数据并返回(或者显示)系统的响应数据。

2)业务逻辑层:对接收的用户输入数据进行逻辑处理,该层是表示层与数据访问层的桥梁。

3)数据访问层:也可以称之为持久层,主要实现对数据的增、删、改、查等基本操作。数据可以存储在数据库、文件中。

注意:表示层只能访问(调用)业务逻辑层,业务逻辑层只能访问(调用)数据访问层,不能跨层访问。分层架构有优势也有劣势:优势就是两两依赖,降低了系统的复杂度;劣势就是增加了冗余,因为不管业务多么简单,每层都必须参与处理,极端情况下可能每层只是写一个简单的包装函数。
1.2 代码布局

        其实 Go 语言官方并没有给出 Go 项目代码布局的标准,这里也是参考了 GitHub 上的一个项目(golang-standards/project-layout),该项目定义了一些 Go 项目代码布局的标准,目前也有不少 Go 项目遵循这一标准。该标准定义的代码布局如下:

1)/cmd :本项目的程序入口。一个项目可能包含多个可执行程序,所以 cmd 目录下可能又包含多个子目录,每一个子目录的名称应该与可执行程序名称相同,如 /cmd/mall。注意,这个目录不宜包含太多代码。

2)/internal : 私有代码。如果不希望其他人在项目中导入你的某些代码,可以将这些代码放到这一目录。注意,这是 Go 语言编译器强制执行的。

3) /pkg : 其他项目可以导入的代码。如果你的某些代码其他项目也需要使用,可以考虑将这些代码放到这一目录。

4) /vendor: 本项目的所有依赖项。命令 go mod vendor 将自动创建 /vendor 目录,并将所有的依赖项放到这一目录。注意,如果你不想将依赖项提交到 git 仓库,可以通过在 .gittignore 文件添加到 /vendor 目录实现。

5) /api: OpenAPI/Swagger 规范,协议定义文件等。

6) /configs: 配置文件模板或默认配置文件。

7) /test :放置一些测试程序或测试数据。

8) /docs :项目设计文档,使用文档等。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mindfulness code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值