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

目录
相关文章
|
1月前
|
存储
嵌入式微处理器的系统架构中指令系统
嵌入式微处理器的系统架构中指令系统
13 0
|
1月前
|
运维 监控 Go
Go语言微服务实战与最佳实践
【2月更文挑战第14天】本文将深入探讨使用Go语言进行微服务实战中的最佳实践,包括服务拆分、API设计、并发处理、错误处理、服务治理与监控等方面。通过实际案例和详细步骤,我们将分享如何在Go语言环境中构建高效、稳定、可扩展的微服务系统。
|
1月前
|
存储 前端开发 BI
基于云计算技术的B/S架构智能云HIS系统源码 集挂号、处方、收费、取药、病历于一体
云HIS是针对中小医院机构、乡镇卫生室推出的一套基于云端的云HIS服务平台,借助云HIS,将医院业务流程化,大大提高医院的服务效率和服务质量,为客户提供医院一体化的信息解决方案。云HIS主要功能:包含门诊收费管理,住院收费管理,门诊医生工作站,住院医生工作站,住院护士工作站,辅助检查科室管理,药房药品管理,药库药品管理,报表查询。满足诊所、中小医院业务中看诊、收费、发药、药库管理、经营分析等多环节的工作需要。
44 4
|
1月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
22天前
|
存储 安全 编译器
掌握Go语言:精通Go语言范围(range),高级应用及进销存系统实战(25)
掌握Go语言:精通Go语言范围(range),高级应用及进销存系统实战(25)
|
1月前
|
设计模式 缓存 安全
一篇文章带你吃透Go语言的Atomic和Channel--实战方法
一篇文章带你吃透Go语言的Atomic和Channel--实战方法
29 0
|
1月前
|
SQL 机器学习/深度学习 缓存
Go语言Web应用实战与案例分析
【2月更文挑战第21天】本文将通过实战案例的方式,深入探讨Go语言在Web应用开发中的应用。我们将分析一个实际项目的开发过程,展示Go语言在构建高性能、可扩展Web应用方面的优势,并分享在开发过程中遇到的问题和解决方案,为读者提供宝贵的实战经验。
|
1月前
|
架构师 算法 关系型数据库
数据库架构师之道:MySQL安装与系统整合指南
数据库架构师之道:MySQL安装与系统整合指南
45 0
|
1月前
|
存储 缓存 安全
【ARM架构】ARMv8-A 系统中的安全架构概述
【ARM架构】ARMv8-A 系统中的安全架构概述
32 0
|
1月前
|
运维 监控 负载均衡
Go语言中微服务架构设计与原则
【2月更文挑战第14天】本文将深入探讨在Go语言环境下,微服务架构的设计原则和实践。我们将讨论如何根据微服务架构的核心概念,如服务拆分、独立部署、容错处理、服务治理等,来构建一个稳定、可扩展、可维护的Go语言微服务系统。