这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
1.简介
在项目实际开发场景中,代码编写方式千变万化,各种语言特性与语法都各不相同,但是高质量编程所遵循的原理是一样的
- 简单性
- 消除多余复杂性,以简单清晰的逻辑编写代码
- 不理解的代码无法修复改进
- 可读性
- 代码是写给别人看的,而不是机器
- 编写方便维护的代码第一步是使代码可读性提高
3.生产力
- 团队整体工作效率非常重要
2.代码格式
Golang的开发团队制定了统一的官方代码风格,并且推出了gofmt工具(gofmt或go fmt)来帮助开发者格式化他们的代码到统一的风格。
3.注释
注释需要表达出代码的功能是什么,代码是如何实现的,要这样写的原因以及什么情况下代码会出错。
在一个包中,每一个公共符号,例如变量、常量以及函数等,都需要添加注释。此外还有任何形式的公共功能。
需要注意的是,接口的实现方法是不需要注释的。因为接口需要被许多模块调用,每一个调用的重写方式都不同,因此注释需要写在调用接口后的具体实现方法上。
4.命名规范
- 简洁胜于冗长
- 错略词全大写,但是当其位于变量开头且不需要导出时,使用全小写,例如
-
- 使用ServeHTTP而不是ServeHttp
-
- 使用XMLHTTPRequest或xmlHTTPRequest
当在同一个for循环时,使用index而不是i并不能帮助我们对程序有个更好的理解,因此应该要使用i使程序更简洁。
函数名不需要携带包名的上下文信息,因为调用函数时总会跟包名一起出现。
例如下图中的两个例子,我们更应该使用第一种命名方式,因为在调用方法时我们会写http.Serve,这时就不需要用第二种方式使命名冗余。
5.错误处理
简单的错误指仅出现一次的错误,且其他地方不需要捕获该错误。优先使用errors.New创建匿名变量直接表示简单错误。
func Judge(i int) error{
if i < 10 {
return errors.New("this num is less than 10")
}
return nil
}
func main() {
err:=Judge(1)
fmt.Println(err)
}
判断一个错误是否为特定错误,直接使用errors.Is
在业务代码中使用panic处理错误是不推荐的,若问题可以被解决,建议用error。当程序发生不可逆转的错误,可以在main函数使用panic。
总结
在项目开发中,提高代码质量意味着代码结构清晰明了,变量函数命名规范,注释得当,这样可以方便团队其他人阅读自己写的代码并且协同处理问题,总结相关影响,提高开发效率。