56

改善Go语言编程质量的50个有效实践

 3 years ago
source link: https://www.imooc.com/read/87
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

课程亮点:

⾼屋建瓴 - 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 语⾔的避“坑”指南。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK