代码整洁之道 

豆瓣评分:8.6
 

代码整洁是基本的职业道德。

做人要设身处地,写代码时候是否也做到了?是否不会给后来者遗留下麻烦?扪心自问,我无法回答。

这本书是很有用的工具书,反思自己,指明写好代码的途径:好名字,清晰的函数,不写乱七八糟的函数。

 

第二章 名字

     给代码儿子选个好名儿:变量名需要注释,就不是好名字。

     避免误导:O0l1?傻傻分不清楚。长点儿心,别给自己和别人添麻烦。

     能读出来的名字,有意义的区分:genymdhms  获取年月日时分秒?什么破名字。getAccount getAccounts getAccountInfo  ,到底该用哪一个?

     可搜索的名称:常量指代magic number的意义所在,可以迅速查出来都在哪里用到了。

     类名是名词;方法名是动词或动词短语。使用通用统一的名称,别卖萌,别自以为聪明。

起个好名字,全家感谢你!时时照拂自己创建的东西,用心是最珍贵的资源。

 

第三章 函数

     好的函数就是短的函数:每个函数只说一件事,然后依序把你带到下一个函数。if else while 中的代码块应该只有一行。好的函数位于不同的抽象层级,可自顶向下阅读。相关函数放在一起,前一个导引指向下一个。抽离try catch 避免扰乱代码结构。

     大师级程序员把系统当作故事讲,而不是当作程序写。

 

第四章 注释

     好的注释:法律信息;解释意图;警示。不要写多余的注释,不要写可怕的废话。注释掉的代码就是渣,一定要删除!

 

第五章 格式

     向报纸学习排版。

 

第七章 错误处理

     错误处理很重要,但如果它搞乱了代码逻辑,就是错误的做法。定义异常,最重要的考虑应是它们如何被捕获。打包异常,只输出一种类型异常给外界。别返回或传递null值,返回空对象如Collections.emptyList(),保持代码整洁。

 

第8、9章 边界和测试

     学习性测试,去了解第三方组件。保持测试整洁。测试代码和生产代码一样重要。测试的first原则:Fast、Independent、Repeatable、Self-Validating、Timely。

 

第十章 短小的类

     单一权责;类应该足够小;

 

第十一章     系统

     一开始就做对系统,纯属神话。反之,我们应该只去实现今天的用户故事。   互联网用户群可能暴增,也可能完全没有用户,做好扩容想法很重要。

     软件系统类似乡镇变城市,类似物理系统,都可以递增地增长。需要做好适当的切分。

 

第十二章 并发

     为什么并发:把目的和时机做分解,改善系统吞吐量和结构。

     执行模型

          基本定义:    限定资源、互斥、线程饥饿、死锁、活锁。

          基本模型:生产者-消费者模型、读者-作者模型、宴席哲学家模型。保持同步区域微小。不要把系统错误归咎于偶然事件:宇宙射线,硬件问题等等。先使非线程代码可运行。

 

第十四章 逐步改进

     要想写出整洁代码,必须先写肮脏代码,然后再清理它。多数新手写出能工作的程序,就转移到下一个任务上,能工作的程序最终也只是能工作,这是一种自毁行为。

posted on 2013-02-18 16:12  架构师刀哥  阅读(1024)  评论(1编辑  收藏  举报