这是我参与[第五届青训营]伴学笔记创作活动的第4天。
高质量编程
在这引用一句话“好的代码有很多注释,坏的代码需要很多注释。”
首先在这问一下,什么是高质量编程?
编写的代码能够达到正确可靠、简洁清晰的目标可称之为高质量代码
比如说程序各类型的边界情况完备处理、异常情况处理、易读易维护等等
我认为不论编程语种,编程原则是不变的。
因为人有思考范围的限制,所以要写出的代码既能让我们自己容易理解,也能让别人容易看懂。代码大多数的时间还是要我们程序员自己去阅读,而不是机器能够跑起来就可以,所以能够让大多数人读懂是写代码时候的必须要求,也是高质量编程的核心内容。有统计表明,程序员在编程时,大部分的时间其实并不是花在写程序上,而是调试程序,如果我们的程序质量很高,很容易读懂,相信我们的调试时间也会被大幅缩减的。
在实际项目开发中,一个项目往往是由一个团队共同开发的,假如说团队中每个人都有一套自己的编码风格,想必代码后期维护起来也很吃力;相比这样,有一套相对规范的编码格式显得格外重要。
注释
我认为首当其冲的就是注释。首先我们要明确,注释是用来干什么的?
应该是解释代码作用、解释代码如何做出来的、解释代码实现的原因、解释在什么情况下会出什么错误,应该如何避免或解决的等等。
- 适合注释公共符号
- 适合注释实现过程
- 适合解释代码的外部原因
- 提供额外的上下文
- 解释代码的限制条件
- 声明代码中每个公共符号(变量、常量、函数,以及结构等等)
- 对于既不明显又不简短的功能代码进行解释
- 不论库中的函数复杂程度都需要进行注释
命名规范
简洁胜于冗长 缩略词全大写,但是如果位于变量头则全小写 变量距离其被使用的地方越远,则需要携带更详细的信息
函数名不携带包名的上下文信息
函数名尽量简短
只由小写字母组成,不包含大写字母和下划线等字符 简短并包含一定的上下文信息。 不要与标准库同名。 以下规则尽量满足,以标准库包名为例 不使用常用变量名作为包名; 使用单数而不是复数; 谨慎地使用缩写。
流程控制
如何去划分各个模块、类、子程序,并规划好他们之间的交流,是设计时需要解决的问题。其实这个过程就是去组合我们能够用到的东西,让他们按照一定顺序,将信息在APP中传递。有点类似于球队的进攻,一个好的组织能够带来赏心悦目的进攻,一个坏的组织,即便有很优秀的球员,一次有威胁的进攻也很难形成,并且随着形势的不同,需要采取合适的组织形势,所以设计也是一项不那么确定的科学。
- 避免嵌套,保持正常流程清晰
- 尽量保持正常代码路径为最小缩进
- 提升代码的可读性和可维护性
因为故障问题往往出现在复杂的条件语句和循环语句中。
以上就是我对于高质量编程的粗略理解,如有偏颇,欢迎各位大佬批评指正!