【青训营day3】高质量编程简介及编码规范 | 青训营笔记

57 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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

控制流程

避免嵌套,保持流程正常清晰

尽量保持正常代码路径为最小缩进

关键点在于优先处理错误情况\特殊情况,尽早返回或继续循环来减少嵌套