代码新视角和代码价值观
在管理者、架构师、设计师、程序员的视角中代码质量的评价标准是不同的。从管理者的角度出发,代码质量具有两重属性:外在质量和内在质量。外在质量体现在用户所能感受到的部分,内在质量体现在可维护性、灵活性、可移植性、可重要性、可读性、可测试性和可理解性。从设计师的视角出发,代码也应该是设计的一部分。
价值观决定行为,程序员应该如何看待编程:
编程是一种态度!
编程是一种技艺!
编程是一种习惯!
所以在我们平时编码时持有何种价值观直接影响我们的编码质量。
代码坏味道
在我们写出好代码之前,首先我们应该明确什么是坏代码,坏代码有哪些特征。以下是我们日常项目中常见的坏代码带有的味道。
1重复的代码
2过长的函数
3过大的类
4过多的参数
5过多或过少的注释
6无意义的命名(函数和变量)
7魔法数的不使用宏命名
8单个函数完成多种功能
好代码的特征
了解坏代码的味道之后,如何定义好代码就很简单了:Good code is not bad code!好代码首先不能是坏代码,接下来我们定义一下好代码应该有哪些特征:
1、一个变量只做一件事
2、一行代码只做一件事
3、一个循环只做一件事
4、一个函数只做一件事
高质量的函数
函数的编写可以必须遵循以下三个原则:
1、函数单一抽象层次原则
2、函数单一职责原则
3、函数短小原则
其中函数短小原则是编写函数的最重要原则,上述三种原则又可以细化成以下十种函数必须遵循的要求。函数10个1要求:
1、每个变量只用于单一用途
2、每一行代码只表述一件事
3、一个循环只做一件事
4、单一抽象层次原则
5、代码组织得一次只做一件事情
6、一种变化仅仅修改一次
7、函数应该遵循单一职责原则
8、函数圈复杂度应该小于10
9、函数第一原则是必须要短小
10、编写函数时必须一心一意,专注,怀有谦卑的心态
代码质量管理
我们提倡编写功能单一、架构清晰、接口简单的函数,因为过于复杂的函数会给我们带来各种问题:加深其他开发人员理解代码的难度;不方便测试人员对其编写测试用例;容易隐藏错误;出现问题难以定位等等,怎样的函数可以算是复杂的函数?这里我们需要引入代码质量管理工具来对代码复杂度进行量化。在函数的10个1要求中,我们要求函数的圈复杂度不要超过10。建议我们编码过程中使用SourceMonitor等工具计算函数复杂度。
持续集成和代码质量管理
开发需要具有演化设计的思想,保持随时重构的心态去维护代码,在重构中遵循代码开闭原则。并且需要在开发、维护过程保持开发心态,持续集成、持续关注代码质量管理。