什么样的代码才是好的代码

Posted by hongbing on 2015-06-17

目录

文章来源:http://engineering.intenthq.com/2015/03/what-is-good-code-a-scientific-definition/

文章的统计结果来自于面试过程中对65个开发者的调查,这些开发者大多数使用java或者scala语言,同时多数具有5年以上的开发经验。

1 好代码的Top5特征

  • Readable(可读性)ed
  • Tested/Testable(可测试性)
  • Simple(简单)
  • Works(功能良好)
  • Maintainable(可维护性)

“Good code is written so that is readable, understandable, covered by automated tests, not over complicated and does well what is intended to do.”

Readable 应该体现在包,类,方法以及变量的命名上,同时方法调用逻辑,从上到下应该是可读的。写代码就像写故事一样,随着调用链的进行,应该是故事一步一步向前推进的过程。

2 其它特点

避免过早优化,Knuth, Donald在40年前就这样说到:

“We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil”

然而提到要高效代码的比提到避免过早优化的人要多出一倍。

同时文中还提到了,self-document和comment,一部分人认为应该代码应该具有自文档性,不应该添加注释(事实上,没有及时更新或者错误的注释比没有注释还让人烦恼); 而另一部分人觉得应该有添加comment,需要让别人知道你在干什么,就是java doc API一样。

代码的自文档性能够提高代码的可读性,同时一定的注释也是必要的。对于那些有特殊默认值的方法,是需要使用注释来解释的,以避免使用者误用。并非所有的功能实现都能简单化,复杂的功能实现应该要有注释说明,甚至表明所使用到的相关理论以及文档,以供后来人参考。

3 有关好代码的统计数据

下面是具体的统计信息: 好代码的特征

4 代码好坏的测试标准

可以通过下面的公式来判断一段代码的好坏:

WTFs / minute

代码好坏的测试标准

6 写出好代码的方法

按照下面的流程即可写出好的代码,程序员必备,哈哈哈.

GoodCode