这是我参与「第五届青训营 」伴学笔记创作活动的第3天,开始的开始除了准备学习相关的知识,还要规划好每天的日程。
今天的收获主要是高质量代码的编写,通过之前的课程,我们已经对Go语言有了些基础,同时也实际编写了应用程序,然而在真正项目开发的时候,还要注重代码的质量。通过这节课的学习我收获了如何写出更简洁清晰的代码,好的代码让其他人更容易在你的基础上开发,同时出问题的概率更低,大家更乐于与你合作,也让团队更高效。
那么什么是高质量代码,有哪些实践规范? 首先可以看下什么是高质量,高质量有以下要求:
正确性: 是否考虑各种边界条件,错误的调用是否能够处理。
可靠性: 异常情况或者错误的处理策略是否明确,依赖的服务出现异常是否能够处理简洁:逻辑是否简单,后续调整功能或新增功能是否能够快速支持。
清晰: 其他人在阅读理解代码的时候是否能清楚明白,重构或者修改功能是否不会担心出现无法预料的问题。
那么如何编写高质量的代码,实际应用场景千变万化,各种语言的特性和语法各不相同,有哪些通用的原则吗?
简单性: 消除“多余的复杂性”,以简单清晰的逻辑编写代码。在实际工程项目中,复杂的程序逻辑会让人害怕重构和优化,因为无法明确预知调整造成的影响范围难以理解的逻辑,排查问题时也难以定位,不知道如何修复。
可读性: 可读性很重要,因为代码是写给人看的,而不是机器。在项目不断迭代的过程中,大部分工作是对已有功能的完善或扩展,很少会完全下线某个功能,对应的功能代码实际会生存很长时间。已上线的代码在其生命周期内会被不同的人阅读几十上百次。
了解原则之后,具体在实践中有哪些经验能帮助我们编写高质量的代码? 首先是推荐使用gofmt自动格式化代码,保证所有的Go代码与官方推荐格式保持一致。 另外可以考虑goimports,会对依赖包进行管理,自动增删依赖的包引用,按字母序排序分类,具体可以根据团队实际情况配置使用之所以将格式化放在第一条,因为这是后续规范的基础,团队合作review其他人的代码时就能体会到这条规范的作用了。