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分层架构的三种模式

目录
相关文章
|
15天前
|
JavaScript Java Go
探索Go语言在微服务架构中的优势
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出。本文将深入探讨Go语言在构建微服务时的性能优势,包括其在内存管理、网络编程、并发模型以及工具链支持方面的特点。通过对比其他流行语言,我们将揭示Go语言如何成为微服务架构中的一股清流。
108 53
|
2月前
|
Shell Go API
Go语言grequests库并发请求的实战案例
Go语言grequests库并发请求的实战案例
|
12天前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
13天前
|
Go 数据处理 API
Go语言在微服务架构中的应用与优势
本文摘要采用问答形式,以期提供更直接的信息获取方式。 Q1: 为什么选择Go语言进行微服务开发? A1: Go语言的并发模型、简洁的语法和高效的编译速度使其成为微服务架构的理想选择。 Q2: Go语言在微服务架构中有哪些优势? A2: 主要优势包括高性能、高并发处理能力、简洁的代码和强大的标准库。 Q3: 文章将如何展示Go语言在微服务中的应用? A3: 通过对比其他语言和展示Go语言在实际项目中的应用案例,来说明其在微服务架构中的优势。
|
1月前
|
Cloud Native Go API
Go语言在微服务架构中的创新应用与实践
本文深入探讨了Go语言在构建高效、可扩展的微服务架构中的应用。Go语言以其轻量级协程(goroutine)和强大的并发处理能力,成为微服务开发的首选语言之一。通过实际案例分析,本文展示了如何利用Go语言的特性优化微服务的设计与实现,提高系统的响应速度和稳定性。文章还讨论了Go语言在微服务生态中的角色,以及面临的挑战和未来发展趋势。
|
1月前
|
运维 Go 开发者
Go语言在微服务架构中的应用与优势
本文深入探讨了Go语言在构建微服务架构中的独特优势和实际应用。通过分析Go语言的核心特性,如简洁的语法、高效的并发处理能力以及强大的标准库支持,我们揭示了为何Go成为开发高性能微服务的首选语言。文章还详细介绍了Go语言在微服务架构中的几个关键应用场景,包括服务间通信、容器化部署和自动化运维等,旨在为读者提供实用的技术指导和启发。
|
1月前
|
负载均衡 Go API
探索Go语言在微服务架构中的应用与优势
在这篇技术性文章中,我们将深入探讨Go语言(又称为Golang)在构建微服务架构时的独特优势。文章将通过对比分析Go语言与其他主流编程语言,展示Go在并发处理、性能优化、以及开发效率上的优势。同时,我们将通过一个实际的微服务案例,详细说明如何利用Go语言构建高效、可扩展的微服务系统。
|
1月前
|
安全 Go 云计算
探索Go语言在微服务架构中的应用与优势
在本文中,我们将深入探讨Go语言(又称为Golang)在构建微服务架构中的独特优势。文章将分析Go语言的并发模型、简洁的语法以及高效的编译速度,以及这些特性如何使其成为微服务架构的理想选择。我们将通过一个简单的微服务示例,展示Go语言在实际开发中的表现,并讨论其在性能和可维护性方面的优势。
|
1月前
|
存储 Go 文件存储
M.2移动硬盘打造Win To Go系统:高效分区存储文件全攻略
【10月更文挑战第12天】本文详细介绍了如何使用M.2移动硬盘制作Win To Go系统。首先,需准备合适容量与接口类型的M.2硬盘及硬盘盒,并获取Windows镜像文件和分区工具。接着,通过Rufus软件将镜像写入硬盘。文中还提供了分区策略,包括系统分区(约80-120GB)、软件分区(根据需求设定)和数据分区(剩余空间),并指导如何使用DiskGenius或Windows自带工具进行分区。最后,强调了对各分区文件的有效管理和定期备份的重要性。
|
1月前
|
存储 固态存储 Go
M.2移动硬盘打造Win To Go系统:高效分区存储文件全攻略
【10月更文挑战第11天】Win To Go 是一种将 Windows 系统安装在 M.2 移动硬盘上的技术,便于用户携带自定义系统跨设备使用。需准备高性能 M.2 硬盘及合适硬盘盒,并使用 DiskGenius 或 Rufus 进行分区与系统安装。系统分区用于安装 Windows,其余分区可根据需求存储工作或娱乐文件,便于管理和备份。
140 2