持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情
Lesson 3高质量编程与性能调优实战
本文主要是关于编写GO程序时的相关规范以及注意事项
高质量代码的标准:
IDE:
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。 如Visual Studio系列
1.2代码规范
1.2.1代码格式化
推荐用gofmt自动格式化代码,保证与官方推荐格式保持一致
另外可以考虑goimports,会对依赖包进行管理,自动增删依赖的包的引用,按字母顺序排序
依赖包:某软件/程序等需要另外的东西的功能支撑,这些需要(依赖)的称为依赖包 大部分依赖包是库文件 并分为动态库和静态库 若一个程序不安装依赖包 那么它是无法使用的
1.2.2注释
注释应该解释:代码作用,代码如何做,代码实现的原因,代码什么情况下会出错
代码作用:适合说明公共符号,如对外提供的函数注释描述功能和用途,函数简单时可省略
代码如何做:注意 不要用自然语言描述代码过程 描述和代码的功能不一定一致
代码实现的原因:适合解释代码的外部因素 需提供额外上下文
代码何时会出错:解释代码的限制条件
注:公共符号是重要注释
但是不需要注释实现接口的方法
代码是最好的注释 注释应该提供代码未表达出的上下文信息
1.2.3命名规范
命名的核心是降低阅读代码的成本
1)变量命名
缩略词全大写,但当其位于变量开头且不需要导出时,使用全小写
全局变量在其名字中需要更多的信息,使得在不同地方都可以轻易辨认出其含义
简洁胜于冗长
2)函数命名
函数签名:函数的签名(方法签名)是用来定义一个函数传入参数的类型,顺序和数量的,函数签名经常被用在函数重载,因为调用重载的方法从名字上是无法确定你调用的是哪一个方法,而要从你传入的参数和该函数的签名来进行匹配,这样才可以确定你调用的是哪一个函数。
简单来说,函数签名包含函数的基本信息
函数重载:
函数重载 是一种特殊情况, C++ 允许在 同一作用域中声明几个类似的同名函数,这些同名函数的形参列表(参数个数,类型,顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。
3)(自己指定的非标准库中的)包的命名
Fmt:format 是一个格式包
1.2.4编码规范 控制流程
流程控制语句 例如 if else
避免嵌套 保持正常流程清晰
若两个分支中都含有return语句时 则可以省略多余的else
优先处理错误情况/特殊情况,尽早返回或继续循环来减少嵌套
不要跑到嵌套的最深处才能发现错误 不对立马返回
正常流程自上而下,简单清晰地进行处理,以提高代码的可读性,可维护性,正确性