10.10
本学期的阅读计划,考虑来考虑去,把目光聚集到了这本《代码整洁之道》,也是一本优秀的,广为人推荐和好评的一本程序人必读书籍。软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。这本书的阅读对象为一切有志于改善代码质量的程序员,书中介绍的规则均来自作者Bob大叔多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。
本书的第一章是关于什么是整洁代码的讨论,引用了Bjarne Stroustrup(C++之父)、Grady Booch(UML的创始人之一)等人当然也Bob大叔自己对整洁代码的理解。不管是现实世界还是软件项目中,命名都是一件让人头疼的事情,给小孩起过名字的就知道,你希望把你对孩子的期望包含在这个名字中,你又希望这个名字读起来要好听,至少不至于将来成为别人的笑柄(比如庞光大、魏升京这样的名字),可能你还要考虑族谱班辈的排列等等。软件项目中的命名情况会更加复杂,简单的说命名的原则是"见名知意",当然你还需要用各种方式防范命名冲突的问题,不同的编程语言也有自己不成文的像契约一样的命名规则和方式(例如匈牙利命名法),这些可能都是需要考虑的事情。
记住:好的名字相当于为代码写了一段有用的注释。
例如:
- "一组账号"别用accountList表示,List对程序员有特殊含义,可以用accountGroup、bunchOfAccounts、甚至是accounts
- 不使用区别较小的名称,ZYXControllerForEfficientHandlingOfStrings和ZYXControllerForEfficientStorageOfStrings难以辨别
- 不使用小写l、大写O作变量名,看起来像常量1、0
Ron Jeffries 对整洁代码的理解:
1.能通过所有的测试。
2.没有重复代码。
3.体现系统中的全部设计理念。
4.包含尽量少的实体、比如类、方法、函数等。
在以上诸项中,我最在意的是代码重复。如果一段代码重复出现,就表示某种想法未在代码中得到良好的提现。我会尽力去找出到底那是什偶么,然后在尽力的更清晰的表达出来。
PS:总结下就是整洁的代码1.职责明确,没有多余,2.减少依赖,便于维护。3.高效。