Go实战抢红包系统(三)-架构设计(下)

简介: Go实战抢红包系统(三)-架构设计(下)

8 Go的包管理

8.1 历史

go get => vendor => go modules

◆ go get无版本概念

◆ vendor曲线救国,但仍未版本化

◆ go1.11 modules开启版本依赖新大门

详细过程推荐阅读

Go 包管理的前世今生

8.2 Go modules

通过GO 1.11 MODULE环境变量来开启或者关闭,默认是auto

◆ off/on/auto

关闭,开启,自动识别

◆ 使用module后,GOPATH失去了部分意义

◆ 要用module ,第一步将项目从GOPATH中移出去

8.3 go.mod 文件

go.mod文件来管理依赖,定义模块依赖

◆ go.mod文件放在项目根目录

◆ go.mod文件面向行,由指令+参数组成

◆ 注释使用//

8.3.1 go.mod 主要指令

◆ module:定义当前模块和包路径

◆ require: 定义依赖的模块和版本

◆ exclude: 排除特定模块和版本的使用

◆ replace:模块源的替换

8.3.2 go.mod 命令

go.mod文件用go mod命令来创建和维护

◆ 命令格式

go mod <命令> [可选参数]

◆ 8个子命令

  • init ,tidy,vendor,verify
  • download,edit,graph ,why

8.3.3 实战演示

8.3.3.1 使用go mod init 创建和初始化go.mod文件

 go mod init javaedge.com/GoDemo

image.png

生成文件

image.png

8.3.3.2 go get命令下载和更新依赖包

image.png

如果移除依赖,使用go build也能导入

8.3.3.3 tidy子命令更新模块依赖

对于已存在项目进行module化,即可使用该命令

会自动添加依赖的包,使用go build更新依赖

8.3.3.4 replace子命令更新模块依赖

解决网络访问不了golang.org/x等谷歌的扩展包

格式
replace包路径[版本] =>包路径版本
golang.org/x/sys => github.com/golang/sys

当执行如下命令时,发现报错

image.png

于是我们在mod文件中使用replace替换url路径即可

replace(
    golang.org/x/crypto => github.com/golang/crypto latest
    golang.org/x/sys => github.com/golang/sys latest
)

9 resk项目module化流程

9.1 移动项目到GOPATH工作空间之外

参考

DDD分层架构的三种模式

目录
相关文章
|
10天前
|
人工智能 安全 算法
Go入门实战:并发模式的使用
本文详细探讨了Go语言的并发模式,包括Goroutine、Channel、Mutex和WaitGroup等核心概念。通过具体代码实例与详细解释,介绍了这些模式的原理及应用。同时分析了未来发展趋势与挑战,如更高效的并发控制、更好的并发安全及性能优化。Go语言凭借其优秀的并发性能,在现代编程中备受青睐。
72 33
|
21天前
|
Go API 定位技术
MCP 实战:用 Go 语言开发一个查询 IP 信息的 MCP 服务器
随着 MCP 的快速普及和广泛应用,MCP 服务器也层出不穷。大多数开发者使用的 MCP 服务器开发库是官方提供的 typescript-sdk,而作为 Go 开发者,我们也可以借助优秀的第三方库去开发 MCP 服务器,例如 ThinkInAIXYZ/go-mcp。 本文将详细介绍如何在 Go 语言中使用 go-mcp 库来开发一个查询 IP 信息的 MCP 服务器。
82 0
|
2月前
|
存储 JSON Go
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
55 10
|
3月前
|
算法 安全 Go
公司局域网管理系统里的 Go 语言 Bloom Filter 算法,太值得深挖了
本文探讨了如何利用 Go 语言中的 Bloom Filter 算法提升公司局域网管理系统的性能。Bloom Filter 是一种高效的空间节省型数据结构,适用于快速判断元素是否存在于集合中。文中通过具体代码示例展示了如何在 Go 中实现 Bloom Filter,并应用于局域网的 IP 访问控制,显著提高系统响应速度和安全性。随着网络规模扩大和技术进步,持续优化算法和结合其他安全技术将是企业维持网络竞争力的关键。
78 2
公司局域网管理系统里的 Go 语言 Bloom Filter 算法,太值得深挖了
|
3月前
|
存储 算法 Go
Go语言实战:错误处理和panic_recover之自定义错误类型
本文深入探讨了Go语言中的错误处理和panic/recover机制,涵盖错误处理的基本概念、自定义错误类型的定义、panic和recover的工作原理及应用场景。通过具体代码示例介绍了如何定义自定义错误类型、检查和处理错误值,并使用panic和recover处理运行时错误。文章还讨论了错误处理在实际开发中的应用,如网络编程、文件操作和并发编程,并推荐了一些学习资源。最后展望了未来Go语言在错误处理方面的优化方向。
|
3月前
|
SQL JSON 关系型数据库
开箱即用的GO后台管理系统 Kratos Admin - 列表查询规则
Kratos Admin 是一个开箱即用的GO后台管理系统,支持通用列表查询请求。通过 `page`、`pageSize`、`query`(AND过滤)、`or`(OR过滤)、`orderBy`(排序)、`noPaging`(不分页)和 `fieldMask`(字段掩码)等参数,灵活配置查询条件。过滤规则遵循Python ORM风格,支持多种查找类型如 `in`、`gte`、`icontains` 等,适用于不同数据库。
57 1
|
4月前
|
存储 监控 算法
内网监控系统之 Go 语言布隆过滤器算法深度剖析
在数字化时代,内网监控系统对企业和组织的信息安全至关重要。布隆过滤器(Bloom Filter)作为一种高效的数据结构,能够快速判断元素是否存在于集合中,适用于内网监控中的恶意IP和违规域名筛选。本文介绍其原理、优势及Go语言实现,提升系统性能与响应速度,保障信息安全。
53 5
|
3月前
|
前端开发 Go API
开箱即用的GO后台管理系统 Kratos Admin - 前端权限
Kratos Admin 是一个开箱即用的 GO 后台管理系统,前端权限管理分为路由和按钮权限。路由权限支持后端动态生成和前端固定配置两种方式,通过 `.env` 文件配置 `VITE_ROUTER_ACCESS_MODE` 实现。按钮权限可通过权限码或角色控制,支持组件、API 和指令三种方式。项目代码托管于 Gitee 和 Github。
75 0
|
3月前
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
60 0
|
6月前
|
缓存 监控 前端开发
在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统
本文深入探讨了在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统。
303 1

热门文章

最新文章