《代码整洁之道》读书笔记


《代码整洁之道》是各大编程网站都极力推荐程序员读的一本书。很遗憾准确算起来进入IT行业也算是有五年了,直到最近才把这本书读完。本来是说想也一下读书感想,毕竟以前读的社会科学的书籍时写的大多是感想。不过问了同坐隔壁的同门死党(一个老书虫)对于工科类的书籍还是用笔记的方式来写,对以后可能更有用处。同样,对于本书的感想也就一句话:“按书中的标准,我甚至称不上程序员这三个字”。下面是关于这本书重点部分的一点笔记。尽量使用原文减少自己个人主观的评介。

首先顾名思义,这本书主题是关于编码规范和编码艺术的。关于整洁代码书中并没有给出作者明确的定义,但通过书中第一章中给出的混乱代码的实例和其他几位经典大师关于自己眼中整洁代码的定义可以知道整洁代码应当具有以下几个特点:

1.      简单易懂

2.    无重复代码

3.   能通过所有测试

 

第二章中对于整洁代码的命名作者给出了以下几条建议:

           1. 名副其实

           2. 避免误导

           3. 做有意义的区分

           4. 使用读得出来的名字

           5. 使用可搜索的名字

      书中还给出了其他许多关于命名的原则这里没有完全给出,但无论如何在编写代码时对于命名作为一名真正的程序员我们应当对自己所编写的代码负责,使得它们更易读懂。

      如何写好函数对于整洁的代码非常重要。在编写函数时有些是我们所必须遵循的:1. 函数尽量短小 2. 函数应当只做一件事 3. 一个函数中的语句应当在同一抽象层级上 4. 尽量写出短小的switch语句5. 使用描述性的名词 6. 函数的参数应当尽量少 7. 尽量使函数没有副作用 8. 明确函数是做什么还是查询什么 9. 使用异常代替错误码 10. 别重复自己。

      关于编写函数的这十条准则不仅仅能帮助我们写出整洁的代码,还能帮助检查我们的设计是否合理,假如我们写出来的函数很难取出具有意义明确的描述性名字那么我们可能需要检查我们的函数是否功能太过混杂;假如函数重复较多,那么我们需要看看我们的设计是否可以将重复的部分作为函数来调用减少重复。总之命名并不是仅仅关乎程序的可读性而且关系到对设计的复查。

      好的注释能帮助代码阅读者花更少的时间理解作者的意图,然而坏的注释也可以让读者误入歧途。最好的注释即是清晰的代码本身,如果代码需要用额外过多的注释去说明,那么只能说明这段代码存在问题。好的注释应当仅仅是关于法律信息,提供信息,对意图的解释而非对过程的解释以及警示等。代码格式的总体原则是疏密有致,缩进统一,同类型语句尽量组织在一起。另外对于团队开发时还应当遵循团队的编码原则。

      整洁的代码除了同命名规范、注释、缩进这些代码的表现形式相关还同代码的设计密切相关。前面提到的关于函数的写法其实已经是涉及到代码的设计了,由于此笔记按照书本的内容顺序来做因此可能内容的紧凑性并没有体现出来。

      数据隐藏和异常处理在面向对象编程中随处可见。我们通常在做设计的时候并没有过仔细的考虑到数据的封装,同时容易暴露对象的数据结构,这些都是同整洁代码的原则背道而驰的。对于每一个对象我们都应当遵循“得墨特定律”——模块不应了解它所操作的对象的内部情形。通常在编程的时候最先吸引我们的肯定是正常的流程,对于异常流程则考虑较少,对于整洁的代码在异常处理时我们应当尽量使用异常来处理而并不是返回码,处理原则也应当是能处理尽量处理,不要一味的往下一层抛。尽量使用不可控异常来保证开放/闭合原则。不传递也不返回null值。

      边界是系统中最易出问题的地方,对类进行更加全面完善的单元测试能使得在集成时错误更少。在使用第三方软件开发包时做一些学习性测试是非常必要的,定义整洁一致的接口也能使得减少边界错误。使用尚不存在的代码时我们可以先设计好接口这样就能进行并行开发调高效率。日志是记录代码错误的非常可取的一种方法。进行单元测试我们首先应当满足TDD三定律。另外应当保证对测试代码和生产代码同等重视,精心组织测试代码和设计测试用例。

      在面向对象开发中,类设计的好坏直接关系到系统的可行性。设计良好的类应当具有以下特点:类尽量短小、单一权责、高内聚性、隔离修改。通常类具有高内聚性的同时就能基本上保证单一权责和修改隔离。除了这些,在设计系统时能够合理的使用设计模式也能够使类的设计更加合理也更加精巧。系统的开发还应当不停的进行迭代,重构也是提高代码整洁的一个非常重要的手段。关于重构的原则和过程该书只做了简单的介绍。

      总体来说,通过阅读该书得到的启发和忠告非常之多,如果想使自己的代码更加整洁这本书是非常值得一看的。保持良好的编码热情和养成良好的编码习惯,不管对自己还是对合作伙伴都具有非凡的意义,也是一名卓越程序员应当具有的职业道德。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值