读代码整洁之道有感

  1. 代码尽可能简洁。
  2. 函数参数尽可能少
  3. 命名尽可能规范,动词名词尽可能合理专业术语命名少一些奇葩命名和变量命名
  4. 抽离try catch 代码块

第五章 格式算法

5.1 垂直分布 调用者函数方法应该尽可能在被调用者函数方法之上,挨着比较好。 注意缩进。spring

第六章 对象和数据结构编程

6.1 尽可能封装对象传参,安全

第七章 错误处理数据结构

7.1 上游try catch finally 下游throw 会使得代码整洁,根据状况而定 尽可能不让null进入程序并发

第八章 边界函数

8.1 集合尽可能使用泛型工具

8.2 使用API能够多写测试用例,方便新版本发布的时候运行下看看新旧版本的差别作出更新,使用新API的能力。单元测试

8.3 善于利用桥接模式在不给API文档的时候写好接口,实现类能够等给了接口写。测试

第九章 单元测试

9.1 快速 独立 可重复 自足验证 及时

第十章 类

10.1 单一职责 内聚 对修改封闭,对添加开放

第十一章 系统

11.1 最好的集成方法是无侵入式集成,可插拔式集成。springaop切面就作的很好。 最好的系统就是代码尽可能简洁。

第十二章 跌进

12.1 单一职责很重要。 类尽可能小聚合,保持类方法尽可能少

第十三章 并发编程

13.1 对象是过程的抽象,线程是调度的抽象。

13.2 单一权责原则 分离并发和和其余代码; 限制数据做用域 如:synchronized关键字; 使用数据副本; 线程应尽量的独立

13.3 线程执行模型:

13.4 锁的使用:

警戒同步方法之间的依赖

13.5 保持同步区域微小

13.6 很难编写正确的关闭代码

第十四章 逐步改进

14.1 代码整洁

代码重构,在于一直更新本身很差的代码趋向于本身认为的完美。 时刻保持本身代码的整洁。

第十五章 JUnit内幕

全部代码都能重构的比以前更好,要推翻以前的不断试错,不断更新才能更好。

第十六章 重构 SerialDate

代码不合理的须要迁移。

第十七章 味道与启发

17.1 注释简洁明了,没用的注释别写,过时的删除,多些一些代码中没有的可是须要注意的细节。

17.2 把多部才能实现的构建最好整成一歩,多步才能作到的测试整成一步。

17.3 函数 参数超过3个就须要考虑是否该改造方法了,最好是没有参数的方法,输出参数最好不要有,好比能够用改对象的状态来作替代,标识参数也很让人迷惑,违反了单一职责原则,应当消灭它,死函数就要删除,代码管理工具能够作找回。

17.4 通常性问题 一个文件中最好语言统1、不能忽视安全、避免重复、 抽象层级注意正确性、基类不能依赖于派生类、信息不能过多、死代码记得删除、垂直分隔关联代码少于100行代码、先后一致、混淆视听避免、人为耦合注意、特性依赖不应有、选择算子参数、晦涩的意图须要注释、位置放对地方、恰当的静态方法、使用解释性变量、函数名称应该表达其行为、理解算法、把逻辑依赖改成物理依赖、用多态替代if/else 或 switch/case、遵循标准约定、用命名常量替代魔法值、准确、结构甚于约定、封装条件、避免否认性条件、函数只该作一件事、掩蔽时序耦合、别随意、封装边界条件、函数应该只在一个抽象层级上、在较高层级放置可配置数据、避免传递浏览、合理使用通配符、不要集成常量、而是该导入常量类、采用描述性名称、名称应该与抽象层级相符、尽量使用标准命名法、无歧义的名称、为较大做用范围选用较长名称 、避免编码、名称应该说明反作用。

17.5 测试 别略太小测试、使用覆盖率工具、被忽略的测试就是对不肯定事物的疑问、测试边界条件、全面测试相近的条件、测试失败的模式有启发性、测试覆盖率的模式有启发性、测试应该快速。

附录A 并发编程 II

死锁:1. 互斥 2. 上锁及等待 3. 无抢先机制 4. 循环等待

避免死锁: 1. 不互斥 几乎不可能,大多数资源都有上限 2. 不上锁及等待,可能会引发线程饥饿或者活锁。 3. 知足抢先机制,管理请求复杂。 4. 不作循环等待,若是获取资源的顺序和使用资源的顺序不匹配也就没法知足,或者没法获取资源顺序那么这个条件也没法知足。

相关文章
相关标签/搜索