资源简介
课程亮点:
高屋建瓴 – Go 设计哲学与编程思想先⾏。
深入浅出 – 原理深⼊,例⼦简明,讲解透彻。
技能落地 – 总结 50 个高效 Go 程序设计技巧。
图⽂并茂 – 大量图表辅助学习,轻松更兼趣味。
知识全⾯ – 覆盖高级面试知识点,求职更⾃信。
课程简介:
每一个开发者的职业生涯中,都会遇到这样的困惑 —— 到底如何才能高效地写出高质量的代码呢?
当然,Go 语言开发者也不例外。
作为一名近 10 年的 Go 语言开发者,Tony Bai 老师给出了自己的方法论:
① 像 Go 团队那样去编程 —— 也就是跟着 Go 语言的设计思维去编程,事半功倍;
② 代码符合语言惯例(idiomatic)—— 清楚 Go 语言的惯用法,写标准、规范的代码。
基于这个思路,课程首先将带领⼤家回顾 Go 语言的演化历史,⼀起了解并深刻体会 Go 大牛们设计 Go 语言时的所思所想,与大牛们实现思维上的共鸣,理清那些看似随意、实则经过深思熟虑的设计的背后的付出。
接下来,将基于笔者对 Go 核心团队、Go 社区高质量代码的分析归纳,从代码风格、基础语法、函数 / 方法、接口、并发、错误处理、测试调试、标准库、工程实践等多个⽅⾯给出改善 Go 代码质量的有效实践。
本课程由 Tony Bai 老师浓缩自己的成长经验汇总而成,为各位正在经历技术与职业困惑的开发者们提供一种进阶的思维与方法。其中,由老师总结并亲身实践出来的 50 条高阶 Go 开发技巧,更能帮助大家减少试错成本,实现技能的真实、快速提升。
学完课程,你将拥有和 Go 大牛们⼀样的 Go 编程思维,能写出更符合 Go 惯例风格的⾼质量 Go 代码,从众多 Go 入门选⼿中脱颖而出,从新手到高手!
讲师简介
Tony Bai,Go 语言技术专家,GopherChina 大会讲师,OSCHINA 源创会技术讲师,《七周七语言》译者之一,某课网《Kubernetes 实战:高可用集群搭建、配置、运维与应用》作者,开源拥趸。目前正在国内⼀大型软件公司带领团队使用 Go 语⾔构建移动运营商的 5G 消息平台,这个平台将处理来自全国各地几十万个 5G chatbot 程序每天发送的几十亿条 5G 消息请求。
专栏模块
本专栏共分 10 个模块 (篇),50 个小节。
模块 1:设计哲学篇
本专栏的开篇和总起。和读者⼀起穿越时空,回顾历史,详细了解 Go 语⾔的诞⽣、演化以及今天的发展。归纳总结 Go 语⾔的设计哲学和原⽣编程思维,让读者可以站在语⾔设计者的⾼度理解 Go 语⾔与众不同的设计。
模块 2:代码风格篇
每种编程语⾔都有⾃⼰惯⽤的代码⻛格,⽽遵循语⾔惯⽤⻛格是⾼质量 Go 代码的必要条件。本篇详细介绍了得到公认且⼴泛使⽤的 Go ⼯程的结构布局、代码⻛格标准、标识符命名惯例以及变量声明形式等。
模块 3:基础语法篇
本模块详述在基础语法层⾯⾼质量 Go 代码的惯用法和有效实践,涵盖⽆类型常量的作⽤、定义 Go 的 “枚举常量”、“零值可⽤” 类型的意义、切⽚原理以及其⾼效的原因、Go 包导⼊路径的真正含义等。
模块 4:函数与方法篇
函数和⽅法是 Go 程序的基本组成单元。本模块聚焦于函数与⽅法的设计与实现,涵盖 init 函数的使⽤、跻身 “一等公导” 行列的函数有何不同、Go 方法的本质等帮助读者深⼊理解它们的内容。
模块 5:接⼝篇
接⼝是 Go 语⾔中的 “魔法师”。本模块将聚焦接⼝,涵盖接⼝的设计惯例、使⽤接⼝类型的注意事项以及接⼝类型对代码可测试性的影响等。
模块 6:并发编程篇
Go 以其轻量级的并发模型⽽闻名。本模块将详细介绍 Go 基本执⾏单元 – goroutine 的调度原理、Go 并发模型以及常⻅并发模式、Go 支持并发的原生类型 – channel 的惯⽤使⽤模式等内容。
模块 7:错误处理篇
Go 语⾔⼗分重视错误处理,它有着相对保守的设计和显式处理错误的惯例。本模块将涵盖 Go 错误处理的哲学以及在这套哲学下⼀些常见错误处理问题的优秀实践⽅案。
模块 8:测试与调试篇
Go ⾃带强⼤且为⼈所称道的⼯具链,本模块将详细介绍 Go 在单元测试、性能测试以及代码调试方面的最佳实践⽅案。
模块 9:标准库篇
Go 拥有功能强⼤且质量上乘的标准库,多数情况我们仅使⽤标准库所提供的功能⽽不借助第三方库就可实现应用的大部分功能,这⼤幅降低学习成本以及代码依赖的管理成本。本模块将详细说明高频使用的标准库包,如 net/http、strings、bytes、time 等的正确使用方式,以及 reflect 包、cgo 在使用时的注意事项。
模块 10:工程实践篇
本模块将涵盖我们使用 Go 语言做软件项目过程中很大可能会遇到的⼀些⼯程问题的解决⽅法,包括:使用 module 进⾏ Go 包依赖管理、Go 应⽤容器镜像、Go 相关⼯具使用以及 Go 语言的避 “坑” 指南。
资源目录
——/计算机教程/01MOOC/专栏课/19-改善Go语言编程质量的50个有效实践/ ├──01 Go 语言的前生今世慕课专栏.html 32.89kb ├──01 Go 语言的前生今世慕课专栏.pdf 360.15kb ├──02 Go语言的设计哲学之一简单慕课专栏.html 17.73kb ├──02 Go语言的设计哲学之一简单慕课专栏.pdf 389.88kb ├──03 Go 语言的设计哲学之二组合慕课专栏.html 14.22kb ├──03 Go 语言的设计哲学之二组合慕课专栏.pdf 181.12kb ├──04 Go语言的设计哲学之三并发慕课专栏.html 23.90kb ├──04 Go语言的设计哲学之三并发慕课专栏.pdf 391.13kb ├──05 Go 语言的设计哲学之四面向工程慕课专栏.html 20.63kb ├──05 Go 语言的设计哲学之四面向工程慕课专栏.pdf 276.76kb ├──06 参考 Go 项目布局设计你的项目结构慕课专栏.html 19.90kb ├──06 参考 Go 项目布局设计你的项目结构慕课专栏.pdf 318.37kb ├──07 gofmtGo代码风格的唯一标准慕课专栏.html 29.17kb ├──07 gofmtGo代码风格的唯一标准慕课专栏.pdf 1.69M ├──08 Go 标识符的命名惯例慕课专栏.html 30.33kb ├──08 Go 标识符的命名惯例慕课专栏.pdf 1.91M ├──09 变量声明形式尽量保持一致慕课专栏.html 44.59kb ├──09 变量声明形式尽量保持一致慕课专栏.pdf 245.74kb ├──10 无类型常量让代码更简化慕课专栏.html 29.85kb ├──10 无类型常量让代码更简化慕课专栏.pdf 234.75kb ├──11 Go“枚举常量”的惯用实现方法慕课专栏.html 25.28kb ├──11 Go“枚举常量”的惯用实现方法慕课专栏.pdf 214.28kb ├──12 定义“零值可用”的类型慕课专栏.html 28.33kb ├──12 定义“零值可用”的类型慕课专栏.pdf 181.83kb ├──13 用复合字面值作初值构造器慕课专栏.html 43.65kb ├──13 用复合字面值作初值构造器慕课专栏.pdf 179.63kb ├──14 深入理解和高效运用切片(slice)慕课专栏.html 48.28kb ├──14 深入理解和高效运用切片(slice)慕课专栏.pdf 1.40M ├──15 注意Go 字符串是原生类型慕课专栏.html 103.22kb ├──15 注意Go 字符串是原生类型慕课专栏.pdf 293.63kb ├──16 理解包导入路径的含义慕课专栏.html 50.74kb ├──16 理解包导入路径的含义慕课专栏.pdf 243.04kb ├──17 init 函数的妙用慕课专栏.html 40.72kb ├──17 init 函数的妙用慕课专栏.pdf 309.42kb ├──18 Go 函数是“一等公民”慕课专栏.html 94.08kb ├──18 Go 函数是“一等公民”慕课专栏.pdf 273.42kb ├──19 defer 让你的代码更清晰慕课专栏.html 84.73kb ├──19 defer 让你的代码更清晰慕课专栏.pdf 339.56kb ├──20 Go 方法的本质慕课专栏.html 44.85kb ├──20 Go 方法的本质慕课专栏.pdf 197.36kb ├──21 方法集合决定接口实现慕课专栏.html 72.00kb ├──21 方法集合决定接口实现慕课专栏.pdf 245.24kb ├──22 变长参数函数的妙用慕课专栏.html 86.85kb ├──22 变长参数函数的妙用慕课专栏.pdf 297.19kb ├──23 定义小接口是 Go 的惯例慕课专栏.html 23.04kb ├──23 定义小接口是 Go 的惯例慕课专栏.pdf 814.85kb ├──24 不要在函数参数中使用空接口(interface{})慕课专栏.html 26.38kb ├──24 不要在函数参数中使用空接口(interface{})慕课专栏.pdf 183.28kb ├──25 要提高代码可测试性,请使用接口慕课专栏.html 41.04kb ├──25 要提高代码可测试性,请使用接口慕课专栏.pdf 318.21kb ├──26 面试必考!掌握 goroutine 的调度原理慕课专栏.html 69.09kb ├──26 面试必考!掌握 goroutine 的调度原理慕课专栏.pdf 450.58kb ├──27 Go 并发模型和常见并发模式慕课专栏.html 144.69kb ├──27 Go 并发模型和常见并发模式慕课专栏.pdf 1.09M ├──28 Go channel 的常见使用模式慕课专栏.html 104.09kb ├──28 Go channel 的常见使用模式慕课专栏.pdf 489.74kb ├──29 sync 包的正确使用姿势慕课专栏.html 91.28kb ├──29 sync 包的正确使用姿势慕课专栏.pdf 1.62M ├──30 别笑!这就是 Go 的错误处理哲学慕课专栏.html 60.25kb ├──30 别笑!这就是 Go 的错误处理哲学慕课专栏.pdf 271.68kb ├──31 if err != nil 重复太多可以这么办.html 69.14kb ├──31 if err != nil 重复太多可以这么办.pdf 604.53kb ├──32 不要让 panic 掺和到正常错误处理中慕课专栏.html 69.77kb ├──32 不要让 panic 掺和到正常错误处理中慕课专栏.pdf 310.28kb ├──33 一文告诉你测试包的包名要不要带“_test”后缀.html 30.69kb ├──33 一文告诉你测试包的包名要不要带“_test”后缀.pdf 497.82kb ├──34 Go 单元测试惯例表驱动慕课专栏.html 49.25kb ├──34 Go 单元测试惯例表驱动慕课专栏.pdf 220.73kb ├──35 Go 惯例将测试依赖的外部数据文件放在 testdata 下面慕课专栏.html 48.95kb ├──35 Go 惯例将测试依赖的外部数据文件放在 testdata 下面慕课专栏.pdf 1.76M ├──36 为被测对象建立性能基准慕课专栏.html 87.13kb ├──36 为被测对象建立性能基准慕课专栏.pdf 334.20kb ├──37 掌握 Go 代码性能剖析神器pprof慕课专栏.html 117.45kb ├──37 掌握 Go 代码性能剖析神器pprof慕课专栏.pdf 1.81M ├──38 掌握 Go 代码调试利器delve慕课专栏.html 62.82kb ├──38 掌握 Go 代码调试利器delve慕课专栏.pdf 817.49kb ├──39 一文告诉你如何在 Go 中实现 HTTPS 通信慕课专栏.html 94.84kb ├──39 一文告诉你如何在 Go 中实现 HTTPS 通信慕课专栏.pdf 1.33M ├──40 告别乱码!GO语言字符集编码方案间转换慕课专栏.html 67.01kb ├──40 告别乱码!GO语言字符集编码方案间转换慕课专栏.pdf 1.03M ├──41 像极!bytes包和strings包的那些相似操作慕课专栏.html 156.36kb ├──41 像极!bytes包和strings包的那些相似操作慕课专栏.pdf 473.32kb ├──42 time包,你用对了吗慕课专栏.html 151.53kb ├──42 time包,你用对了吗慕课专栏.pdf 881.27kb ├──43 小心被kill!不要忽略对系统信号的处理慕课专栏.html 66.15kb ├──43 小心被kill!不要忽略对系统信号的处理慕课专栏.pdf 327.72kb ├──44 慎用reflect包提供的反射能力慕课专栏.html 103.69kb ├──44 慎用reflect包提供的反射能力慕课专栏.pdf 388.36kb ├──45 与C互操作不是免费的!疑问了解cgo的使用成本慕课专栏.html 124.18kb ├──45 与C互操作不是免费的!疑问了解cgo的使用成本慕课专栏.pdf 672.67kb ├──46 与时俱进!使用module管理依赖包慕课专栏.html 137.25kb ├──46 与时俱进!使用module管理依赖包慕课专栏.pdf 598.04kb ├──47 小即是美?构建最小Go程序容器镜像慕课专栏.html 43.67kb ├──47 小即是美?构建最小Go程序容器镜像慕课专栏.pdf 580.71kb ├──48 让你的Go包拥有个性化的导入路径慕课专栏.html 47.76kb ├──48 让你的Go包拥有个性化的导入路径慕课专栏.pdf 258.69kb ├──49 利其器!Go常用工具大检阅慕课专栏.html 190.50kb ├──49 利其器!Go常用工具大检阅慕课专栏.pdf 1.14M ├──50 未雨绸缪!Go语言常见“坑”大汇慕课专栏.html 232.46kb ├──50 未雨绸缪!Go语言常见“坑”大汇慕课专栏.pdf 619.04kb ├──某课网.html 1.94kb └──某课网.pdf 17.24kb
学起来
学习一下
想看看
感谢分享!
不错不错
go基础提升必练。
谢谢分享
感谢分享!
看起来不错
谢谢分享
学习
学习一下
学go的很多吗?
感谢分享
感谢分享
学习golang
感谢分享
感谢分享
谢谢博主,之前注册的账号被删除了 还好又注册了一个。感谢
感谢分享
学go的很多吗?
收藏
学起来。
感谢分享
学习学习 go语言
不错不错
G感谢分享
要一直学, keep learning 。
学无止境,感谢分享
GO语言学起来
加油
GO语言学起来
学习一下新思路
来学习一下,感谢分享
学习学习
找了很久的资源,感谢分享
感谢分享
感谢分享
学go其他课程的时候,朋友推荐
感谢分享
感谢分享!谢谢!
感谢分享
正在学习go
感谢
感谢分享
持续学习
感谢分享
来学习一下,感谢分享
学起来
不错不错