Go语言青训营笔记Day3

46 阅读2分钟

高质量编程

编写的代码能够达到正确可靠、简洁清晰的目标,就是高质量的代码

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

简介

编程原则:

  1. 简单性
  • 消除多余的复杂性
  • 不理解的代码无法修复
  1. 可读性
  • 代码是给人看的
  • 编写可维护代码第一步
  1. 生产力
  • 团体整体工作效率很重要

编码规范

如何编写高质量的Go代码

  • 代码格式
  1. gofmt就可高一自动化格式代码
  2. goimports依赖包管理
  • 注释
  1. 解释代码作用
  2. 如何做的
  3. 实现的原因
  4. 什么时候会出错

小结

代码是最好的注释 注释应该是代码未表达出来的上下文信息

  • 命名规范
  1. 简介更好
  2. 大小写注意
  3. 变量距离越远 越需要解释清楚
  4. 包名中的函数可以不带包名,这样可以不导致歧义
  5. pakage只用小写字母,简短和包含一定的上下文,不要跟标准一样
  6. 总结:主要是降低阅读理解代码的成本
  • 控制流程
  1. 避免嵌套
  2. 保持正常代码路径为最小缩进
  3. 线性原理
  4. 正常向下移动
  5. 提升可维护和可读
  • 错误和异常处理
  1. 简单错误
  2. 错误的warp可以提供错误链的生成:%w关键字
  3. 错误判定:errors.is
  4. recover记录上下文信息:在当前goroutine里面被defer函数生效

公共符号注释

  • 每个公共的符号变量、函数、常量、结构
  • 任何不明显不简短的函数

性能优化建议

go test -bench=. -benchmem

  • Slice预分配内存: 有一段提前分配的部分

  • map预分配内存

  • strings.Builder是最高效的:另外 里面还有grow方法,可以更轻松的拼接字符串

  • 空结构体:在特定的场景下,比如实现set里

  • atomic包:通过硬件实现的