Go 语言项目开发实战
孔令飞
腾讯云资深工程师,前Red Hat、联想云工程师
新⼈⾸单¥69.9
3818 人已学习
课程目录
已更新 49 讲 / 共 54 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从 0 开始搭建一个企业级 Go 应用
免费
课前必学 (3讲)
01 | IAM系统概述:我们要实现什么样的 Go 项目?
02 | 环境准备:如何安装和配置一个基本的 Go 开发环境?
03 | 项目部署:如何快速部署 IAM 系统?
实战第 1 站:规范设计 (8讲)
04 | 规范设计(上):项目开发杂乱无章,如何规范?
05 | 规范设计(下):commit 信息风格迥异、难以阅读,如何规范?
06 | 目录结构设计:如何组织一个可维护、可扩展的代码目录?
07 | 工作流设计:如何设计合理的多人开发模式?
08 | 研发流程设计(上):如何设计 Go 项目的开发流程?
09 | 研发流程设计(下):如何管理应用的生命周期?
10 | 设计方法:怎么写出优雅的 Go 项目?
11 | 设计模式:Go常用设计模式概述
实战第2站:基础功能设计或开发 (12讲)
12 | API 风格(上):如何设计RESTful API?
13 | API 风格(下):RPC API介绍
14 | 项目管理:如何编写高质量的Makefile?
15 | 研发流程实战:IAM项目是如何进行研发流程管理的?
16 | 代码检查:如何进行静态代码检查?
17 | API 文档:如何生成 Swagger API 文档 ?
18 | 错误处理(上):如何设计一套科学的错误码?
19 | 错误处理(下):如何设计错误包?
20 | 日志处理(上):如何设计日志包并记录日志?
21 | 日志处理(下):手把手教你从 0 编写一个日志包
22 | 应用构建三剑客:Pflag、Viper、Cobra 核心功能介绍
23 | 应用构建实战:如何构建一个优秀的企业应用框架?
实战第3站:服务开发 (12讲)
24 | Web 服务:Web 服务核心功能有哪些,如何实现?
25 | 认证机制:应用程序如何进行访问认证?
26 | IAM项目是如何设计和实现访问认证功能的?
27 | 权限模型:5大权限模型是如何进行资源授权的?
28 | 控制流(上):通过iam-apiserver设计,看Web服务的构建
29|控制流(下):iam-apiserver服务核心功能实现讲解
30 | ORM:CURD 神器 GORM 包介绍及实战
31 | 数据流:通过iam-authz-server设计,看数据流服务的设计
32 | 数据处理:如何高效处理应用程序产生的数据?
33 | SDK 设计(上):如何设计出一个优秀的 Go SDK?
34 | SDK 设计(下):IAM项目Go SDK设计和实现
35 | 效率神器:如何设计和实现一个命令行客户端工具?
实战第4站:服务测试 (4讲)
36 | 代码测试(上):如何编写 Go 语言单元测试和性能测试用例?
37 | 代码测试(下):Go 语言其他测试类型及 IAM 测试介绍
38|性能分析(上):如何分析 Go 语言代码的性能?
39|性能分析(下):API Server性能测试和调优实战
实战第5站:服务部署 (6讲)
40 | 软件部署实战(上):部署方案及负载均衡、高可用组件介绍
41 | 软件部署实战(中):IAM 系统生产环境部署实战
42 | 软件部署实战(下):IAM系统安全加固、水平扩缩容实战
43|技术演进(上):虚拟化技术演进之路
44|技术演进(下):软件架构和应用生命周期技术演进之路
45|基于Kubernetes的云原生架构设计
特别放送 (3讲)
特别放送 | 给你一份清晰、可直接套用的Go编码规范
特别放送 | 给你一份Go项目中最常用的Makefile核心语法
特别放送 | Go Modules依赖包管理全讲
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

特别放送 | Go Modules依赖包管理全讲

你好,我是孔令飞。今天我们更新一期特别放送作为加餐。
在 Go 项目开发中,依赖包管理是一个非常重要的内容,依赖包处理不好,就会导致编译失败。而且 Go 的依赖包管理有一定的复杂度,所以,我们有必要系统学习下 Go 的依赖包管理工具。
这一讲,我会首先介绍下 Go 依赖包管理工具的历史,并详细介绍下目前官方推荐的依赖包管理方案 Go Modules。Go Modules 主要包括了 go mod 命令行工具、模块下载机制,以及两个核心文件 go.mod 和 go.sum。另外,Go Modules 也提供了一些环境变量,用来控制 Go Modules 的行为。这一讲,我会分别介绍下这些内容。
在正式开始讲解这些内容之前,我们先来对 Go Modules 有个基本的了解。

Go Modules 简介

Go Modules 是 Go 官方推出的一个 Go 包管理方案,基于 vgo 演进而来,具有下面这几个特性:
可以使包的管理更加简单。
支持版本管理。
允许同一个模块多个版本共存。
可以校验依赖包的哈希值,确保包的一致性,增加安全性。
内置在几乎所有的 go 命令中,包括go getgo buildgo installgo rungo testgo list等命令。
具有 Global Caching 特性,不同项目的相同模块版本,只会在服务器上缓存一份。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《Go 语言项目开发实战》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥69.9
立即订阅
登录 后留言

精选留言(1)

  • josephzxy
    置顶
    “思考下,如果不提交 go.sum,会有什么风险?”
    如果go get时,GOSUMDB=off,就没有办法校验下载的包是否被篡改。

    推荐两篇博文可做辅助阅读
    https://zaracooper.github.io/blog/posts/go-module-tidbits/
    https://insujang.github.io/2020-04-04/go-modules/

    作者回复: 老哥,回答给满分~

    2021-09-09
    1
收起评论
1
返回
顶部