高质量代码与性能调优 | 青训营笔记

89 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

1.编程原则

简单性

消除"多余的复杂性",以简单清晰的逻辑编写代码 在实际工程项目中,复杂的程序逻辑会让人害怕重构和优化,因为无法明确预知调整造成的影响范围难以理解的逻辑,排查问题时也难以定位,不知道如何修复

可读性

可读性很重要,因为代码是写给人看的,而不是机器 在项目不断迭代的过程中,大部分工作是对已有功能的完善或扩展,很少会完全下线某个功能,对应的功能代码实际会生存很长时间。已上线的代码在其生命周期内会被不同的人阅读几十上百次听课时老师经常说的在课堂上不遵守纪律影响全班同学的时间,难以理解的代码会占用后续每一个程序员的时间

生产力

编程在当前更多是团队合作,因此团队整体的工作效率是非常重要的一方面 为了降低新成员上手项目代码的成本,Go语言甚至通过工具强制统一所有代码格式 编码在整个项目开发链路中的一个节点,遵循规范,避免常见缺陷的代码能够降低后续联调、测试、验证、上线等各个节点的出现问题的概率,就算出现问题也能快速排查定位

2.编程规范

首先是推荐使用gofmt自动格式化代码,保证所有的Go代码与官方推荐格式保持一致 而且可以很方便的进行配置,像Goland内置了相关功能,直接开启即可在保存文件的时候自动格式化 另外可以考虑goimports,会对依赖包进行管理,自动增删依赖的包引用,按字母序排序分类,具体可以根据团队实际情况配置使用之所以将格式化放在第一条,因为这是后续规范的基础,团队合作review其他人的代码时就能体会到这条规范的作用了

3.注释

首先是注释应该解释代码作用,这种注释适合说明公共符号,比如对外提供的函数注释描述它的功能和用途.只有在函数的功能简单而明显时才能省路这些注释例如简单的取值和设值函数)另外注释要避免啰嗦,不要对显而易见的内容进行说明.下面的代码中注释就没有必要加上,通过名称可以很容易的知道作用 备注:后续的内容有不少代码,大部分是从go的仓库中摘录出来的,下方就是代码链接,感兴趣的可以看看相关的文件

4.总结

总体来说,命名的核心在于降低阅读理解代码的成本 人们在阅读理解代码的时候会尝试模拟计算机运行程序,好的命名能让人把关注点留在主流程上,清晰地理解程序的功能,避免频繁切换到分支细节,增加理解成本Dave有句话感觉很贴切