青训营X豆包MarsCode 技术训练营笔记第二天 | 豆包MarsCode AI 刷题

71 阅读3分钟

高质量编程简介及编码规范

如何编写更简洁清晰的代码

常用go语言程序优化手段

熟悉Go语言程序性能分析工具

了解工程中性能优化的原则和流程

高质量编程

什么是高质量?

编写代码正确可靠,简洁清晰

  • 边界条件是否考虑完备
  • 异常情况处理,稳定性保证
  • 易读易维护

编程原则:

简单性

消除多余的复杂性,,以简单清晰的逻辑写代码

可读性

确保代码的可读性

生产力

团队整体工作效率非常重要

编码规范:

注释:

  1. 公共符号始终要注释
  • 包中的声名每个公共的符号:

    变量,常量,函数以及结构都需要添加注释

  • 任何既不明显也不简短的公共功能必须赋予注释

  • 无论长度或复杂度如何,对库中的任何函数都必须进行注释

例外:接口的实现类里面的方法不需要注释

注释应该做的:

  • 注释应该解释代码的作用

比如说:语言库提供的各种方法,上面就有很多英文注释,里面就会写这些代码做了点什么,需要什么参数,返回什么值

  • 注释应该解释代码如何做的

  • 注释应该解释代码实现的原因

提供一些上下文

  • 注释应该解释代码什么情况会出错

上面写的这几条不是每一段代码都要这么写,是根据他的实际需要来写的

命名规范

  • 简介胜于冗长
  • 缩写词全大写,但当其位于变量开头且不需要导出时,使用全小写
     ServeHTTP
     XMLHTTPResqueat
  • 变量距离其被使用的地方越远,则需要携带越多的上下文信息

deadline就有特定的含义,但是t就是任意的

方法命名规范:

  • 函数名不携带包名的上下文信息,因为包名和函数名总是成对出现的
  • 函数名尽量简短
  • 当名为foo的包某个函数返回类型Foo时,可以省略类型信息而不导致歧义
  • 当名为foo的包1某个函数返回类型T时,可以在函数名中加入类型信息

包的命名规范:

  • 只由小写字母组成,不包含大写字母和下划线字符
  • 简短并包含上下文信息
  • 不要和标准库同名
  • 不使用常用变量名作为包名,例如:bufio而不是buf
  • 是用单数而不是复数,
  • 谨慎的使用缩写

控制流程

减少不必要的分支,如果两个分支都有return,那么就删除else

把容易发生报错还有边界问题,都提前考虑好,写在前面

错误和异常处理

  • 简单的错误指的是仅出现一次的错误,且在其他地方不需要捕获该错误

  • 优先使用error.New来创建匿名变量来直接表示简单错误

  • 如果有格式化的需求,使用fmt.Errorf

上面这个代码的意思就是,将代码的错误和指定错误比较,返回信息

defer是后进先出的机制,因为有多个defer创建的情况