代码整洁之道 1-9

第四章 注释

第五章 格式

第六章 对象和数据结构
得墨忒耳定律 (最少知识原则)
1.每个单元对于其他的单元只能拥有有限的知识:只是与当前单元紧密联系的单元;
2.每个单元只能和它的朋友交谈:不能和陌生单元交谈;
3.只和自己直接的朋友交谈。
火车失事代码
final String outputDir = ctxt.getOptions().getScratchDir().getAbsolutePath();

混杂
一半是对象,一半是数据结构,这是一种糟糕的设计。它增加了添加新函数的难度,也增加了添加新数据结构的难度。
隐藏结构
既然取得路径的目的是为了创建文件,那么不妨让 ctxt 对象来做这件事:
BufferedOutputStream bos = ctxt.createScratchFileStream(classFileName);

第七章 错误处理
1、别返回null值。程序中不断的看到检测null值的代码,一处漏掉检测就可能会失控。返回Null,作者认为这种代码很糟糕。建议抛出异常 或者返回特定对象(默认值)。更早的发现问题。同理,也应该避免传递Null值给其他的方法。
2、在大多数的编程语言中,没有良好的方法能对付由调用者意外传入的null值。我们发布产品应该有容错的机制,程序不能轻易的就崩掉,有异常应该及时记录下来或给出提示。

第八章 边界
1、通过接口管理第三方边界,可以使用ADApter模式将我的接口转换为第三方提供的接口。这个是要注意,第三方的代码和自己的代码混合太多,这样不便管理。

第九张 单元测试
敏捷和TDD运动鼓舞了许多程序员编写自动化单元测试,单元测试是确保代码中的每个犄角旮旯都如我们所愿的工作。
TDD三定律

  1. 除非这能让失败的单元测试通过,否则不允许去编写任何的生产代码。
  2. 只允许编写刚好能够导致失败的单元测试。 (编译失败也属于一种失败)
  3. 只允许编写刚好能够导致一个失败的单元测试通过的产品代码。
    整洁的测试 具有 可读性
    构造-操作-检验(BUILD-OPERATE-CHECK)测试代码三个步骤

每一个测试一个概念
F.I.R.S.T 整洁的测试遵循以下5条规则:
1.快速(Fast) 测试应该能快速运行,频繁运行测试,就能今早发现问题
2.独立(Independent)测试应该相互独立。某个测试不应为下一个测试设定条件,可以单独运行每个测试,及以任务顺序运行测试。
3.可重复(Repeatable)测试应该可在任务环境中重复通过。
4.自足验证(Self-Validating)测试应该有布尔值输出。不应该手工对比量不同文件来确认测试是否通过。
5.及时(Timely)测试应该及时编写。单元测试应该恰好在使其通过的生产代码之前编写,如果在编写生产代码之后编写测试,你会发现生产代码难以测试。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 一、整洁代码 A.混乱的代价 1.有些团队在项目初期进展迅速,但有那么一两年的时间却慢去蜗行。对代码的每次修改都影...
    ZyBlog阅读 2,082评论 0 2
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,020评论 3 119
  • 天使班班长 1201 李夏莲 20180114(14/100) 厦 晴,9-14度 【以梦为马,不负昭华 】 今日...
    阿白1阅读 175评论 0 0
  • 最近几年关于Apache Spark框架的声音是越来越多,而且慢慢地成为大数据领域的主流系统。最近几年Apache...
    Albert陈凯阅读 430评论 0 1