高质量编程 | 青训营笔记

120 阅读2分钟

高质量编程 | 青训营笔记

一、编程原则

1、简单性

  • 以简单清晰的逻辑编写程序
  • 复杂的程序难以理解和修改

2、可读性

  • 程序是给人读的,要通俗易懂

3、生产力

  • 团队整体的效率和生产率非常重要

二、编码规范

1、注释( 公共符号始终要注释)

(1)对于包中声明的公共符号都要注释;例如变量,常量,函数,结构体等
(2)对于任何既不简短也不明显的公共方法必须注释
(3)无论长度和复杂度如何,对于标准库的任何方法都要加以注释

1.1、注释的目的
  • 解释代码的上下文
  • 解释代码的作用
  • 解释代码如何实现的
  • 解释代码的出错信息

2、代码格式

  • 格式化代码
    gofmt包
    goimports包

3、命名规范(降低阅读代码的成本)

  • 简洁胜于冗长
  • 缩略词必须大写(HTTP,HXML等)
  • 变量被使用的地方越远,其命名携带的上下文信息必须越多
  • 函数名不需要携带包名,因为包名和函数名同时出现(test.AllName)-(包名,函数名)
  • 函数名尽量简短
  • package中,包名小写
  • package 包名一般不带复数
  • package包名不与标准库同名
  • package包名和文件夹名保持一致

4、控制流程

  • 处理逻辑尽量走直线,避免复杂嵌套
  • 正常逻辑沿着屏幕往下走流程
  • 大多数问题出在复杂的条件语句和循环语句上面

5、错误和异常处理

5.1、简单错误

  • 只出现一次的错误,不需要多次捕获错误,直接errors.New 创建匿名变量来输出。
  • 需要格式化输出可用 fmt.errorf

5.2、错误判定

  • 判定特定错误 error.Is 可以判定判断链上所有错误是否为特定错误
  • 定位错误 errors.As 可以确定错误链上错误的位置,方便定位分析错误

5.3、panic

  • 业务代码一般不建议panic
  • 可以使用捕获recover

image.png