这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
高质量编程简介
编写的代码能够达到正确可靠、简洁清晰的目标可称之为高质量编程。
·各种便捷条件是否考虑完备
·异常情况处理,稳定性保证
·易读易维护
编程原则
实际应用场景千变万化,各种语言的特性和语法各不相同
但是高质量他编程遵循的原则是相通的
原则1:简单性
消除多余的复杂性,以简单清晰的逻辑编写代码
不理解的代发无法修复改进
可读性
代码是写给人看的,而不是机器
编写可维护代码的第一步是确保代码可读
生产力
团队整体工作效率非常重要
编码规范
编码格式
gofmt
使用gofmt自动格式化代码,保证所有的go代码与官方推荐格式保持一致
goimports
相当于gofmt加上依赖包管理,自动增删依赖包引用,将依赖包按字母排序并分类
编码注释
注释需要做的
解释代码作用
解释代码如何做的
解释代码实现的原因
解释代码什么情况会出错
命名规范
变量命名规范
1.缩略词全大写,但当其位于变量开头且不需要导出的时候
例如ServerHTTP而不是ServerHttp
XMLHTTPRequest或者xmlHTTPRequest
2.变量距离其使用的地方越远,越要携带更多的上下文信息
比如,在for循环中,作为索引变量的index,其作用域仅在当前循环,那么将其命名为index则没有任何作用,需要将其命名为i,减少冗长。
函数命名规范
函数名不携带包名的上下文信息,因为包名和函数名总是成对出现的
函数名尽量简短
当名为 foo 的包某个函数返回类型 Foo 时,可以省略类型信息而不导致歧义
当名为 foo 的包某个函数返回类型 T 时(T 并不是 Foo),可以在函数名中加入类型信息
包命名规范
只由小写字母组成。不包含大写字母和下划线等字符
简短并包含一定的上下文信息。例如schema、task等
不要与标准库同名。例如不要使用sync或者strings
控制流程
避免嵌套,保持流程正常清晰
尽量保持正常代码路径为最小缩进
关键点在于优先处理错误情况\特殊情况,尽早返回或继续循环来减少嵌套