代码整洁之道读书笔记

	自从进入游戏开发团队以后,最近一直在忙游戏开发,团队里的xxx师兄对我提供了很好指导,同时也督促自己变的“勤奋”了。。。个人觉得其中一个很好的习惯就是写读书笔记吧,以前自己总觉得语言类的书籍自己不用写读书笔记,不过更多时候都是给自己偷懒的借口,写读书笔记有很多的好处,能让我对整本书的理解更加有逻辑性,有条理,也能在以后偶尔想翻看的时候,快速地浏览一下概要,更多的是希望能够看到自己的成长。自己以后每看完一本书都要坚持写笔记,相信几年以后对我来说它们是很珍贵的财富。下面是关于代码整洁之道这本书的读书笔记,总的来说觉得这本书无论是对于团队开发的人员还是个人开发者都有挺多的帮助的,但自己的资质尚浅,同样也未能细读这本书,很多东西对于大牛来说可能认为是很基础的东西,但分享出来还是希望大家能够有所收获。

 
  

在学习编程之初,老师就曾经强调过代码风格对程序设计以及以后的软件开发有很大的影响,一定要养成良好的编程习惯,当时因为编程经验的缺乏,加上急功近利的心态对自己的代码风格要求比较松,一开始的面向过程编程的过程中还没有遇到比较麻烦的问题,但随着学习得深入,在面向对象编程的过程中就遇到了比较麻烦的问题,特别是对类内部方法的调用出现很多问题,整个类写的比较庞大,冗杂,感觉不成体系,这是才意识到良好的编程风格的作用,至少能够使编程人员调试变的轻松很多。随着编程经验的积累,自己的编程风格也得到了改善,但自己在接触到应用开发时又遇到了同样的问题,代码的编写很难像程序设计一样保持简洁的风格,当面对很多的类的时候,对于相互之间的关联总是感觉模糊不清,自己又抱着运行即可得心态,久而久之忽视了糟糕的代码风格对开发的危害,随着调试周期的不断加长,我开始觉得一定要理清类之间的层次关系,写出功能单一且有效的类。看完代码整洁之道后,我发现自己太少关注关于代码风格类的书籍,而这类书籍却是十分有用的,虽然书中的一些思想自己还未能有亲身体会,但却对实际的开发有很多益处。

第一章:整洁的代码
主要是讲述代码风格对编程开发的重要性,提到整洁代码的一些重要的表现。
  1. 代码要力求集中,每个模块、类和函数要全神贯注于一件事。
  2. 消除重复代码,提高代码的表达力。
  3. 包括尽量少的实体,比如类、函数和方法。
 
  
第二章:有意义的命名
讲述的内容十分有用,自己以前在命名上吃过亏,也换过命名的方式,但是自己在命名上花的时间还是很少,这一点需要改进。
  1. 选择体现本意的代码能让人更容易理解和修改代码,避免使用与本意相悖的词,提高代码的清晰度,避免误导。
  2. 对词意相近的命名要做有意义的区分,避免模糊不清的命名。
  3. 使用可搜索的名称,单字母名称和数字常量很难在大篇幅的代码中找出,采用能表达意图的名称。
  4. 抛弃以前依赖使用编码的习惯。
  5. 类名和对象名应该尽可能使用名词或名词短语,方法名尽量使用动词或动词短语属性访问器、修改器应该根据其值命名。
第三章:函数
  1.  函数应该专注于一件事,做好一件事,并且要尽量的短小。
  2.  函数的语句要在同一抽象层级上,如果函数中混杂不同的抽象层级就会使得读者无法 判断哪个表达式是基础概念还是细节。
  3.  每个函数要跟着下一抽象层级的函数。
  4.  函数名要采用描述性的名称并且用尽量少的函数参数。
  5.  使用异常替代返回错误码。
  6. 避免在函数中重复使用代码。
  7.  写函数的一开始都是冗长复杂的,之后要用心分解函数、修改名称和消除重复。
第四章:注释
这一章所讲的内容能够给自己注释的习惯给予很好的改进。
  1. 用注释来提供基本信息,对意图的解释,把晦涩难懂的参数和返回值翻译为可读形式。
  2. 对于没有用的代码无需用注释标记,可以直接删掉(感觉还是不保险。。。)。
  3. 注释要简明,扼要。
第五章:格式
这一章讲述比较基本,但是当中提到的一点很实用,一组开发者应当认同一种格式风格,这样能够有效地减少代码的复杂度。
第六章:对象和数据结构
这一章讲述的内容对于养成良好的编程习惯很重要,但是一些内容的更深层的含义我还是不能理解,希望能够在以后的编程中加深理解。
  1. 对象把数据隐藏于抽象之后,暴露操作数据的函数。数据结构暴露其数据,没有提供有意义的函数。
  2. 对象与数据结构的二分原理:过程式代码便于在不改动既有数据结构的前提下添加新函数,面向对象代码便于在不改动既有函数的前提下添加新类。
  3. 方法不应调用有任何函数返回的对象的方法。
  4. 只有一个公共变量、没有函数的类(DTO)。
第七章:错误处理
感觉自己在错误处理方面还是比较弱的,没有什么系统的方法,书中说的很多内容暂时是没法消化的。
  1. 使用异常而非返回码,要给出异常发生的环境说明
  2. 别返回null值,尽量避免NullPointerException的出现
第八章:边界
这里讲的内容对做开发来说,提供了很多好测试和理解第三方代码的建议。
  1. 不要在生产代码中试验新东西,而是编写测试来遍览和理解第三方代码,如在应用中调用第三方代码,来检测自己对API的理解程度。
  2. 通过代码中少数几处引用第三方边界接口的位置来管理第三方边界。
第九章:单元测试
这一章和以后的几章讲述的内容较为专业,理解起来也较为困难些。
  1. 整洁的测试,保证测试的可读性。
  2. 每个测试一个断言,消除代码重复问题,每个测试函数只测试一个概念。
第十章:类
  1.  类应该尽量短小,遵循单一权责原则(SRP)。
  2.  类应该只有少量的实体变量,每个方法都应该操作一个或多个这种变量,保持内聚性。
  3.  要为了修改来对类进行组织。
  4.  类应该依赖于抽象而不是依赖于具体细节。
第十一章:系统
讲述的很多内容都没能真正地理解。
  1. 使用依赖注入机制将构造与使用分开。
第十二章:迭进
  1. 编写可能多的测试,减少接口和抽象等工具的耦合。
  2. 多采用共性提取,“小规模复用”可大量降低系统的复杂性。
第十三章:并发编程
因为做过套接字方面的实验,所以这一章的知识要好理解一些。
  1. 并发有时能改进性能,但只是在多个线程或处理器之间能分享大量等待时间的时候管用。
  2. 同样要遵循单一权责的原则,要在代码中保护共享对象的临界区,避免使用数据复本,线程要尽可能地独立。
第十四、十五和十六章主要是一些实例的代码改进,自己只是大概地浏览了一下,理解作者的思想,未能细看,这些样例需要花时间琢磨。
第十七章是从具体样例中得到的一些启发,与前面的作者的思想吻合,也是实际开发中需要注意的要点。

你可能感兴趣的:(读书笔记)