Go 高质量编程| 青训营笔记

100 阅读2分钟

Go 高质量编程| 青训营笔记

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

本文为青训营课程笔记,配合原课程食用效果更佳哦~

高质量编程

常见编码规范
  1. 高质量代码是什么?

    • 编写的代码能够达到正确可靠、简洁清晰、无性能隐患的目标就能称之为高质量代码

      • 各种边界条件是否考虑完备

      • 异常情况处理,稳定性保证

      • 易读易维护

    • 实际应用场景千变万化,各种语言的特性和语法各不相同,但是高质量编程遵循的原则是相通的

    • 高质量的编程需要注意以下原则:简单性、可读性、生产力

  2. 为什么要写高质量代码?

    • 提升可读性,风格一致的代码更容易维护、需要更少的学习成本、团队合作成本,同时可以降低 Review 成本
  3. 高质量代码规范

    1. 格式

      • 使用 gofmt 自动格式化代码
      • 可以用快捷键Ctrl+Alt+L
    2. 注释应该

      • 解释代码作用结果:适合注释公共符号
      • 解释代码运作方式:适合注释方法
      • 解释代码实现的原因:解释代码的外部因素
      • 解释代码什么情况会出错
      • 公共符号始终要注释(包中声明的公共变量、常量、函数以及结构都要加注释)
      • 代码是最好的注释
      • 注释应该提供代码未表达出的上下文信息
      • Good code has lots of comments, bad code requires lots of comments

        好的代码有很多注释,坏代码需要很多注释

        —— Dave Thomas and Andrew Hunt

    3. 命名规范

      1. 尽量简洁
      2. 越远则需要携带越多的上下文信息
      3. 全局变量在其名字中需要更多的上下文信息
    4. 控制流程

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

        • 优先处理错误情况/特殊情况,尽早返回或继续循环来减少嵌套
    5. 错误处理

      1. 错误的 Wrap 实际上是提供了一个 error 嵌套另一个 error的能力,从而生成一个 error 的跟踪链
      2. 判定一个错误是否为特定错误,使用 errors.Is
      3. 在错误链上获取特定种类的错误,使用errors.As
      4. 不建议在业务代码中使用 panic
      5. recover 只能在被 defer 的函数中使用(处理panic),嵌套无法生效

总结收获

通过样例与知识点结合的方式,学到了go的高质量编程方式;

通过项目样例的讲解,更了解go项目的诞生过程;

又是收获满满的一天,继续努力吧!