对程序员来说,辨别代码质量的高低,是一个非常重要的能力,毕竟如果连好代码、烂代码都分不清,又怎么能写出好代码呢?
好的代码应该服务于软件的整个生命周期及软件的开发目标。
一、如何评价代码质量的高低?
代码质量高低是一个综合各种因素得到的结论,我们并不能通过单一维度去评价一段代码的好坏。
另外对一段代码质量的评价往往带有很强的主观性,我们很难客观的量化一段代码质量的高低。一般越是有经验的工程师,给出的评价也就越准确。所以这也是说,如果没有人指导的话,自己一个人闷头写代码,即使写的代码再多代码能力也可能没有太多提升。
二、最常用的评价标准有哪几个?
几个最常用、最重要的评价标准:可维护性、可读性、可扩展性、灵活性、简洁性(简单、复杂)、可复用性、可测试性。
1、可维护性 maintainability
一个项目维护代码的时间远远大于编写代码的时间,所以代码的可维护性就显得格外重要。
代码易维护是指,在不破坏原有代码设计、不引入新的bug的情况下,能够快速的修改或者添加代码。
代码不易维护是指,修改或者添加代码需要冒着极大的引入新bug的风险,并且花费较长的时间才能完成。
代码的可维护性是由很多因素协同作用的结果。
2、可读性 readability
代码被阅读的次数远远超过被编写和修改的次数,故代码的可读性是评价代码质量最重要的指标之一。
要看代码是否符合编码规范、命名是否达意、注释是否详尽、函数长短是否合适、模块划分是否清晰、符不符合解耦原则等等。
Code Review是一个很好的测验代码可读性的手段。
3、可扩展性 extensibility
在不修改或少量修改原有代码的情况下,通过扩展的方式添加新的功能代码。即代码预留了一些功能扩展点,可以把新功能直接插到扩展点上,而不必改动大量的原始代码。
符合开闭原则,表示代码应对未来需求变化的能力。
4、灵活性 flexibility
易扩展、易复用或者易用,都可以称这段代码写的灵活。
5、简洁性 simplicity
编写代码的时候,把简单、清晰放在首位,用最简单的方法解决复杂的问题。
符合KISS原则。
6、可复用性 reusablity
尽量复用已有的代码,减少重复代码的编写。可复用性是很多设计原则、思想、模式等所要达到的最终效果。
符合DRY原则。
7、可测试性 testablity
三、如何才能写出高质量的代码?
保证代码质量最有效的三个手段:Code Review、单元测试、持续重构。
需要掌握一些细化、能落地的编程方法论,包括面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等。
如面向对象中的继承、多态能让我们写出可复用的代码。
编码规范能让我们写出可读性好的代码。
设计原则 DRY、SOLID等可以让我们写出可复用、灵活、可读性好、易扩展、易维护的代码。
设计模式可以让我们写出易扩展的代码。
持续重构可以保持代码的可维护性。