代码整洁之道's 读书笔记
代码整洁之道's 读书笔记
asing1elife
life is simple, just coding.
展开
-
整洁代码之道 1 整洁代码
你是一个程序员,同时你想成为一个好的程序员1.1 要有代码将需求明确到机器可以执行的细节程度,就是编程要做的事。而最终落实到机器上的东西,就是代码没有明确的需求,就没有精细的程序。你认为你要的那种 “五彩斑斓的黑” 是真是存在的?还是自相矛盾的?1.2 糟糕的代码糟糕的代码会毁掉一个产品,甚至一个公司如果你告诉自己 “这个以后再来优化” ,那么这就是 “技术债务”,你大概率不...原创 2019-11-02 17:16:20 · 142 阅读 · 0 评论 -
整洁代码之道 2 有意义的命名
软件中随处可见命名,所以命名的规范性至关重要2.1 介绍做好各种命名,是整洁代码的第一步2.2 名副其实变量、函数或类的名称应该已经答复了所有问题 ,如果没有满足这个条件,说明这段代码不够整洁2.2.1 Bad Example这段代码在算法上并没有什么问题,即没有混乱的格式,也没有复杂的表达式但即使如此简短的代码,在仔细阅读过后,也无法准确得知其用处这就是下面这个例子...原创 2019-11-02 17:16:29 · 109 阅读 · 0 评论 -
整洁代码之道 3 函数
函数是所有程序中的第一组代码3.1 短小函数的第一规则是要短小函数的第二规则是比短小更短小函数的第三规则是尽可能短小3.1.1 Bad Example下面这段代码已经是对之前一段要长的的多的代码的优化,那么为什么依旧是 Bad Example 呢?因为它显然还不够短小,函数不应该大到足以容纳嵌套结构函数的缩进层级不该多余一层或两层public static Strin...原创 2019-11-02 17:16:38 · 215 阅读 · 0 评论 -
整洁代码之道 4 注释
还是认为这一章中作者对于注释的态度有点过于理想了,所以内容仅供参考Tips若编程语言足够有表达力,或者我们擅长用这些语言表达意图,就不那么需要注释,也许是根本不需要我认为,如果注释能够清晰的表达代码的含义,对于回顾一些过去的项目是非常好的注释的恰当用法是弥补我们再用代码表达意图时遭遇的失败注释常常会与其所描述的代码分隔开来,越来越不准确所以在维护代码的同时,也要相应的维护...原创 2019-11-02 17:16:47 · 231 阅读 · 0 评论 -
整洁代码之道 5 格式
选用一套管理代码格式的简单规则,然后贯彻这些规则其实现在的 IDE 基本上都有非常标准的代码格式化规则,我们只需要在编写代码的过程中时常格式化代码即可5.1 格式的目的代码格式很重要代码格式不可忽略,必须严肃对待代码的可读性会对以后可能产生的修改行为产生深远影响5.2 垂直格式每个文件的代码行数不要过多,尽量保持在 100 行以内,尽量不要超过 200 行短文件通常比长文...原创 2019-11-02 17:16:50 · 228 阅读 · 0 评论 -
整洁代码之道 6 对象和数据结构
对象和数据结构在使用场景上有不同的侧重点,要做到代码整洁,需要明确区分两者,并灵活运用6.1 数据抽象我们习惯性熟知的数据封装方式:变量都是私有,通过 Getter / Setter 对变量进行取值赋值但其实这么做之后,变量依旧是暴露的,隐藏实现并非只是在变量之前放上一个函数层这么简单隐藏的关键点是 抽象 ,类并不是简单的通过 Getter / Setter 将变量推向外层而是曝露...原创 2019-11-02 17:16:58 · 163 阅读 · 0 评论 -
整洁代码之道 7 错误处理
错误处理只不过是编程时必须要做的事之一,当错误发生时,程序员就有责任确保代码照常工作7.1 使用异常而非返回码遇到错误时,最好抛出一个异常,这样调用代码时就会更简单,也就更简洁,其逻辑不会被错误处理搞乱7.2 先写 try-catch-finally 语句执行 try-catch-finally 语句中 try 部分的代码时,其实是在表明随时可以取消执行,并在 catch 语句中...原创 2019-11-02 17:17:04 · 234 阅读 · 0 评论 -
整洁代码之道 8 边界
介绍一些保持软件边界(和其他接口对接的界限)整洁的实践手段和技巧8.1 使用第三方代码第三方程序包和框架提供者追求 普适性 ,这样就能在多环境中工作,吸引广泛的用户使用者则想要集中满足特定需求接口接口提供方和接口使用方在期望值上的差异,就会导致系统在边界上出现问题8.1.1 举一个 Map 的例子java.util.Map 是 Java 提供的一个接口和功能都很丰富的对象但...原创 2019-11-02 17:17:08 · 213 阅读 · 0 评论 -
整洁代码之道 9 单元测试
测试是简单的驱动式程序,让我们能够手工与自己编写的程序交互9.1 TDD 三定律在编写不能通过的单元测试前,不可编写生产代码从测试的角度考虑代码实现只可编写刚好无法通过的单元测试,不能编译也算不通过只可编写刚好足以通过当前失败测试的生产代码9.2 保持测试整洁测试必须随生产代码的演进而修改测试代码和生产代码一样重要单元测试让代码可扩展、可维护、可复用9.3 整...原创 2019-11-02 17:17:13 · 247 阅读 · 0 评论 -
整洁代码之道 10 类
要做到真正整洁的代码,至少要将注意力上升到类的层面10.1 类的组织根据标准的 Java 约定,类的标准组织应该如下所示public class ClassName { // 公共静态变量 // 私有静态变量 // 私有实体变量 // 公共函数 // 私有工具函数}10.2 类应该短小在设计类时,首要规则就是要尽可能短小,不要有多余的、不属于这个...原创 2019-11-02 17:17:17 · 216 阅读 · 0 评论 -
整洁代码之道 11 系统
整洁代码的层次继续上升,从类到系统,本章讲解如何在较高的系统层级上保持代码整洁11.1 如何建造一个城市系统和城市一样,有些人负责全局,其他人负责细节,几乎不可能一个人掌控所有11.2 将系统的构造与使用分开软件系统应该将启动过程和运行时逻辑进行分离11.2.1 分解 main 方法将构造与使用分开的方法之一就是 将全部的构造过程搬迁到 main 方法中11.2.2 ...原创 2019-11-02 17:17:21 · 210 阅读 · 0 评论 -
整洁代码之道 12 迭进 Emergence
这本书越到后面翻译的越是起飞,这一章的英文标题是 Emergence ,完全不知道这个译者为啥会自造一个词来实现翻译译者想表达的意思可能是迭代+进化12.1 通过迭进设计( Emergent Design )达到整洁目的要做到良好的软件设计,需要遵守以下四条规则,顺序按照重要程度排列运行所有测试不可重复表达程序员的意图尽可能减少类和方法的数量12.2 简单设计规则 1...原创 2019-11-02 17:17:26 · 319 阅读 · 0 评论 -
整洁代码之道 13 并发编程
整洁的并发编程是个复杂话题,这一章我看完收获不是很多,因为直到目前为止都没有怎么涉及过并发编程13.1 为什么要并发并发是一种解耦策略,可以把 做什么 和 什么时候做 区分开做什么相当于 目的什么时候做相当于 时机解耦目的和时机能明显改进系统的吞吐量和结构13.1.1 对于并发的误解认为并发总能改进性能并发有时候确实可以改进性能但只有在多个线程或多个处理器之间能...原创 2019-11-02 17:17:31 · 267 阅读 · 0 评论 -
整洁代码之道 14 逐步改进
通过对一个命令行参数解析程序的讲解来体现整洁代码的实现过程代码内容太长,而且后面的代码排版出现了问题,没有仔细看14.1 Args 的实现编程是一种技艺甚于科学的东西要编写整洁代码,必须先写出肮脏代码,然后再清理它的过程中积累经验,精湛技艺14.2 Args:草稿14.2.1 所以我暂停了14.2.2 渐进14.3 字符串参数14.4 小结代码能工作还不够,仅仅是能工...原创 2019-11-02 17:17:34 · 857 阅读 · 0 评论 -
整洁代码之道 15 Junit 内幕
分析了一段 Junit 代码,相当于一次小实战这种代码解析类型的内容确实不适合 Kindle 看15.1 Junit 框架Junit 的基础代码是 Kent Beck 和 Eric Gamma 在飞机上花三小时写出来的15.2 小结我们每个人都有责任把模块改进的比发现时更整洁...原创 2019-11-02 17:17:39 · 427 阅读 · 0 评论 -
2 有意义的命名
软件中随处可见命名,所以命名的规范性至关重要2.1 介绍做好各种命名,是整洁代码的第一步2.2 名副其实变量、函数或类的名称应该已经答复了所有问题 ,如果没有满足这个条件,说明这段代码不够整洁2.2.1 Bad Example这段代码在算法上并没有什么问题,即没有混乱的格式,也没有复杂的表达式但即使如此简短的代码,在仔细阅读过后,也无法准确得知其用处这就是下面这个例子...原创 2019-11-02 16:58:02 · 60 阅读 · 0 评论 -
整洁代码之道 16 重构 SerialDate
又一个实战类型的章节,主要讲如何让测试完整的覆盖代码16.1 首先,让它能工作16.2 让它作对16.3 小结提高测试覆盖率能有效让代码更整洁原创 2019-11-02 17:17:45 · 465 阅读 · 0 评论 -
1 整洁代码
你是一个程序员,同时你想成为一个好的程序员1.1 要有代码将需求明确到机器可以执行的细节程度,就是编程要做的事。而最终落实到机器上的东西,就是代码没有明确的需求,就没有精细的程序。你认为你要的那种 “五彩斑斓的黑” 是真是存在的?还是自相矛盾的?1.2 糟糕的代码糟糕的代码会毁掉一个产品,甚至一个公司如果你告诉自己 “这个以后再来优化” ,那么这就是 “技术债务”,你大概率不...原创 2019-11-02 16:57:36 · 68 阅读 · 0 评论 -
整洁代码之道 17 味道和启发
对整本书中提到的优化手段做了一系列总结17.1 注释17.1.1 不恰当的信息注释只应该描述对应代码和设计的技术信息,不要说废话17.1.2 废弃的注释废弃的注释会远离它们曾经描述的代码,更有可能这些代码早已经不存在了17.1.3 冗余注释注释应该描述代码本身无法描述清楚的信息,不要重复的描述17.1.4 糟糕的注释如果要编写一条注释,就应该花时间保证写出最好的...原创 2019-11-02 17:17:49 · 445 阅读 · 0 评论