【GO学习】6.28

105 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情

Lesson 3高质量编程与性能调优实战

本文主要是关于编写GO程序时的相关规范以及注意事项

高质量代码的标准:

image.png

 IDE:

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。 如Visual Studio系列

1.2代码规范

1.2.1代码格式化

推荐用gofmt自动格式化代码,保证与官方推荐格式保持一致

另外可以考虑goimports,会对依赖包进行管理,自动增删依赖的包的引用,按字母顺序排序

依赖包:某软件/程序等需要另外的东西的功能支撑,这些需要(依赖)的称为依赖包 大部分依赖包是库文件 并分为动态库和静态库 若一个程序不安装依赖包 那么它是无法使用的

1.2.2注释

注释应该解释:代码作用,代码如何做,代码实现的原因,代码什么情况下会出错

代码作用:适合说明公共符号,如对外提供的函数注释描述功能和用途,函数简单时可省略

代码如何做:注意 不要用自然语言描述代码过程 描述和代码的功能不一定一致

代码实现的原因:适合解释代码的外部因素 需提供额外上下文

代码何时会出错:解释代码的限制条件

注:公共符号是重要注释

image.png

但是不需要注释实现接口的方法

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

 

1.2.3命名规范

命名的核心是降低阅读代码的成本

1)变量命名

缩略词全大写,但当其位于变量开头且不需要导出时,使用全小写

全局变量在其名字中需要更多的信息,使得在不同地方都可以轻易辨认出其含义

简洁胜于冗长

2)函数命名

函数签名:函数的签名(方法签名)是用来定义一个函数传入参数的类型,顺序和数量的,函数签名经常被用在函数重载,因为调用重载的方法从名字上是无法确定你调用的是哪一个方法,而要从你传入的参数和该函数的签名来进行匹配,这样才可以确定你调用的是哪一个函数。

简单来说,函数签名包含函数的基本信息

函数重载:

函数重载 是一种特殊情况, C++ 允许在 同一作用域中声明几个类似的同名函数这些同名函数的形参列表(参数个数,类型,顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。

image.png

3)(自己指定的非标准库中的)包的命名

image.png

Fmt:format 是一个格式包

 

1.2.4编码规范 控制流程

流程控制语句 例如 if else

避免嵌套 保持正常流程清晰

若两个分支中都含有return语句时 则可以省略多余的else

image.png

 

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

不要跑到嵌套的最深处才能发现错误 不对立马返回

image.png

正常流程自上而下,简单清晰地进行处理,以提高代码的可读性,可维护性,正确性