Go语言入门(四) | 青训营笔记

124 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记

今天简单探讨下Go语言规范的话题 相关课程资料:juejin.cn/post/709372…

大家在开发的过程中,如果遵循编码规范可以让工作效率提高,写出更简洁清晰的代码,在工作中,编程是团队合作的工程,好的代码让其他人更容易在你的基础上开发,同时出问题的概率更低,让团队更高效。 在面试的时候,也有编码环节,能不能用代码清晰的表达出你的思路,让面试官额外加分。

高质量定义

是否考虑各种边界条件,错误的调用是否能够处理可靠性:异常情况或者错误的处理策略是否明确,依赖的服务出现异常是否能够处理简洁:逻辑是否简单,后续调整功能或新增功能是否能够快速支持清晰:其他人在阅读理解代码的时候是否能清楚明白,重构或者修改功能是否不会担心出现无法预料的问题

注释

  • 注释应该解释代码作用

image.png

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

image.png

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

image.png

  • 注释应该解释代码什么情况会出错
  • 公共符号要注释:变量、常量、函数以及结构体

命名规范

  • 变量

    • 简洁胜于冗长
    • 缩略词全大写,但当其位于变量开头且不需要导出时,使用全小写
      • 例如使用ServeHTTP而不是ServeHttp
      • 使用XMLHTTPRequest或者xmlHTTPRequest
    • 变量距离址地生图.desl或者xmlHTTPRequest
      • 全局变量在其名字中需要更多的上下文信息,使得在不同地方可以轻易辨认出其含义
  • function

    • 函数名不携带包名的上下文信息,因为包名和函数名总是成对出现的

    • 函数名尽量简短

    • 当名为foo的包某个函数返回类型Foo 时,可以省略类型信息而不导致歧义

    • 当名为foo的包某个函数返回类型Ⅰ时(T并不是Foo),可以在函数名中加入类型信息

    • package

      • 只由小写字母组成,不包含大写字母和下划线等字符
      • 简短并包含一定的上下文信息。例如schema. task等
      • 不要与标准库同名。例如不要使用sync或者strings

总结

以上主要罗列一些Go的编码规范,对以后的学习工作提供了帮助,有错误的地方欢迎大家指出来一起探讨!!