整洁代码

为什么要写糟糕的代码?

  • 赶时间完成任务 ,期望后面再清理.
  • 勒布朗法则:稍后等于永不(Later equals never)

混乱的代价:

  • 代码变的无法管理,团队生产力下降,
  • 增加人力?Brooks定律(人月神话):向进度落后的项目中增加人手,只会使进度更加落后。
  • 破窗理论:假如原来的代码很优秀,新加入的代码会害怕破坏这美妙的整体而变的更好,反之则不会去在意。

开始新设计:

  • 新系统设计与旧系统维护竞赛,时间可持续十年之久,完成时成员早不知去向
  • 花时间保持代码整洁不但关乎效率,还关乎生存
  • 制造混乱无助于赶上工期,只会拖累,唯一方法就是始终尽可能保持代码整洁

什么是整洁代码?

Bjarne stroustrup:

我喜欢优雅和高效的代码,代码逻辑应直截了当,叫缺陷难以隐藏;尽量减少依赖,使之便于维护;依据某种分成战略完善错误代码处理;性能调至最优,省的引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。

Michael Feathers(修改代码的艺术作者):

我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的。整洁的代码总是看起来像是某位特别在意它的人写的,几乎没有什么改进的余地,代码作者什么都想到了,如果你企图改进它,总会回到原点,赞叹某人留给你的代码———全心头人的某人留下的代码。

Ron(c#极限编程探险作者):

不要重复的代码(表示某种想法未在代码中得到良好的体现),只做一件事,提早构建简单抽象(在集合中查找某物)

美国童子军军规:让营地比你来时更干净。

改好一个变量名,拆分一个过长的函数,消除一点点重复代码