【读书笔记】《代码不朽》

【《代码不朽》读书笔记】
 
第一章:简介
  1. “简单”原则;
  2. 对每次提交负责。
 
第二章:函数要短
【要求】<=15行
【做法】
  1. 提取方法
  2. 替换为方法对象
 
第三章:逻辑分支要少
【要求】<4个if、for等分支
【做法】
  1. 处理链式条件语句(链式if、else或switch情况):(1)善用map;(2)多态——>类
  2. 处理嵌套语句:(1)使用“卫语句”,即依次多个带return的if;(2)抽取成函数。
 
第四章:避免代码“重复”
【要求】>6行的,要处理
【做法】
  1. 提取到“父类”
  2. 提取到“工具类”
【工具】
P45讲到工具
  1. “CPD”是有名的工具:检查代码重复。
  2. 其中包含名为“PMD”的代码分析工具。
  3. 可运行在eclipse中或通过Maven运行
 
第五章:保持接口简单
【要求】入参<=4个
【做法】
  1. 分离职责,拆分为多个方法组合使用
  2. 用对象参数
  3. 为默认值情况提供方法重载
  4. 方法对象法
 
第六章:分离“类”的关注点
【要求】避免“大”类型
【做法】
  1. 分离职责,“一个类”——>多个小类
  2. 用接口隐藏背后的实现
  3. 用第三方框架和库来提高质量。
【补充知识】
  1. 接口可“继承”
  2. 接口是“方法集”,可封闭方法集范围。
 
第七章:架构组件松耦合
【要求】基于“接口”编程。
【做法】
  1. 抽象工厂模式
  2. 依赖注入框架
  3. 基于接口的多态
 
第八章:保持组件之间的平衡
【要求】子系统9个左右,一般6-12个
【好处】
  1. 方便查找和分析代码
  2. 隔离维护造成的影响。
【做法】
  1. 明确系统边界。
 
第九章:保持小规模代码库
【要求】代码库越小越好
【好处】
  1. 大代码库容易失败
  2. 大代码库难以维护
  3. 大代码库bug密度更高。
【做法】
  1. 功能层面:控制需求蔓延;功能标准化(以利于代码复用)
  2. 技术层面:不要复制!重构;尽量使用第三方库
【补充知识】
  1. UI行为——jquery
  2. 数据库访问——hibernate
  3. 日志——slf4j
  4. 工具——google guava
  5. java时间框架——Joda,提供了大量单元测试
  6. 我的补充:第三方库要用好:1)源码级别掌握的;2)改动人家有风险,升级人家版本时要用工具比对差异,且容易让其他人误解。
 
第十章:自动化
【要求】尤其“自动化测试”,自动化“开发”,“部署”
【做法】
  1. JUnit
  2. 测试驱动开发
【工具】
  1. Mocking框架(p112):Mockito,EasyMock
  2. 测试框架(p107):单元测试JUnit,自动化端到端测试Selenium,SoapUI关注WebService,Apache jMeter测试高压下java程序性能。
  3. 统计覆盖率(p114):Maven插件Cobertura,eclipse插件EelEmma
 
第十一章:代码简洁
【要求】代码要简洁
【做法】
  1. 提交代码前,代码要没有坏味道。
  2. 不写坏注释(p120说了坏注释体现的问题)
  3. 删掉被注释的代码
  4. 删掉废弃代码(包括注释中最好别有代码,触发java函数那种示例注释)
  5. 不要过长的标识符
  6. 不要用魔术常量
  7. 正确使用异常:捕获一切异常,最终得有处理;捕获特定异常来提供细分过的信息;转成业务语言再展示给操作员。
 
第十二章:后续事宜
  1. 要实践
  2. 低层级原则高于高层级
  3. 对每次提交负责!
  4. 下本书:《构件软件团队》
 
 
 
 
 
 
posted @ 2016-11-08 22:42  长治久安  阅读(1027)  评论(0编辑  收藏  举报