代码整洁之道

(美)马丁(Martin, R.C)

出版时间

2009-07-31

ISBN

9787115210487

评分

★★★★★

标签

计算机

书籍介绍

从《代码整洁之道(英文版)》中可以学到:

好代码和糟糕的代码之间的区别;

如何编写好代码。如何将糟糕的代码转化为好代码;

如何创建好名称、好函数、好对象和好类;

如何格式化代码以实现其可读性的最大化;

如何在不妨碍代码逻辑的前提下充分实现错误处理;

如何进行单元测试和测试驱动开发。

Robert C.Martin(Bob大叔)自1970进入软件行业。从1990年起成为国际软件咨询师。他是ObjectMentor公司的创始人和总裁。Object Mentor是由一群经验丰富的咨询师组成的公司,他们的客户遍及全世界。

业务涉及C++、Java、C#、Ruby、面向对象、设计模式、UML、敏捷方法论和极限编程等领域。

尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷,写得不好的代码每年都要耗费难以计数的时间和资源。然而这种情况并非无法避免。

著名软件专家Robert C.Martin在《代码整洁之道(英文版)》中为你呈现出了革命性的视野。Martin携同Object Menlor公司的同事,从他们有关整洁代码的最佳敏捷实践中提炼出软件技艺的价值观,以飨读者,让你成为更优秀的程序员——只要你着手研读《代码整洁之道(英文版)》。

阅读《代码整洁之道(英文版)》需要你做些什么呢?你将阅读代码——大量代码。《代码整洁之道(英文版)》促使你思考代码中何谓正确,何谓错误。更重要的是。《代码整洁之道(英文版)》将促使你重新评估自己的专业价值观,以及对自己技艺的承诺。

AI导读
核心看点
  • 衡量代码质量的标准:WTF/min越低越好
  • 整洁代码原则:单一职责、有意义的命名、函数短小
  • 测试驱动开发与并发防御的实用指导
适合谁读
  • 有编程经验但代码混乱的一线开发者
  • 追求代码可读性和可维护性的程序员
  • 准备系统学习Java后再读此书的初学者
读前提醒
  • 阅读时需对照实际代码反复实践
  • 建议先掌握基础语法再深入原则
  • 注意后半部分偏Java,可选择性学习
读者共识
  • 写代码如写文章,简洁清晰是最高准则
  • 童子军军规:让代码比来时更干净
  • 理论与经典,但需结合个人经验消化

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "衡量代码质量的唯一有效标准:WTF/min"
  • "1,代码逻辑直接了当,让缺陷难以隐藏 2,尽量减少依赖关系,使之便于维护 3,依据某种分层策略完善错误处理代码 4,性能调至最优,省得引诱别人做没规矩的优化 5,整洁的代码只做一件事 6,简单直接,具有可读性 7,有单元测试和验收测试 8,有意义的命名 9,代码应在字面上表达其含义 10,尽量少的实体:类、方法、函数 11,没有重复代码"
  • "1,名副其实:名称不需要注释补充就可见其含义、用途 2,避免误导: (1)系统专有名称不宜作为变量名 (2)提防差别很小的名称,在代码自动完成时容易选错 (3)用字母I和O作为变量名,让人看成1和0 3,做有意义的区分 不要用数字或废话来区分 4,使用读得出来的名称 5,使用可搜索的名称 少用单字母名称或没有名称的数字常量 6,避免使用编码 (1)不必在名称中标明类型,现代语言有完善的类型检查 (2)不必在名称中区别成员变量,应采用自动高亮成员的编译环境 (3)宁可对实现编码,也不要对接口编码 7,避免使用让别人理解成其他领域常用词的名称 8,类名应该是名词或名词短语,不应是动词 9,方法名应"
  • "1,短小 (1)不该超过20行 (2)每个代码块(if, else,while)应该只有一行,包含一个函数 2,只做一件事 如果能拆成几个函数,就不是只做一件事 3,每个函数一个抽象层次 自顶向下的抽象层次 4,switch语句 用于创建多态对象,并隐藏在抽象工厂中 5,使用描述性的名称 6,尽量避免多余2个参数 (1)使用返回值而不是输出参数 (2)不要用标识参数,即向函数传入bool值,应该写成两个函数 (3)如果一定需要多个参数,那么可能需要对参数进行封装 7,无副作用 尽量少做不是函数名称表明的事情 8,使用异常代替返回错误码 (1)把try,catch从正常流程中分离开 9,消除重复"
  • "1,尽量减少注释量,用代码本身说明问题 (1)代码常常变动,注释却不能跟着变 (2)只有代码是唯一准确的信息来源 (3)创建一个和注释所言相同的函数来代替注释 2,好的注释 (1)法律信息 (2)解释程序员的意图 (3)警示其他程序员某种后果 (4)TODO 定期删除不需要的 (5)公共API中的javadoc 3,坏的注释 (1)喃喃自语,只有作者自己能看懂 (2)多余的注释 不一定比代码精到 (3)不是每个函数和变量都要有javadoc (4)日志式注释,修改记录 (5)能用函数或变量时就别用注释 (6)用代码控制系统,而不是注释表明归属 (7)不要保留注释掉的代码,利用源代码控制系统"
  • "1,垂直距离 (1)变量声明尽可能靠近使用位置,本地变量应在函数顶部出现 (2)实体变量应在类的顶部声明 (3)相关函数放在一起 (4)函数的排列顺序保持其相互调用的顺序 2,水平位置 (1)一行代码尽量短,不超过100-120字符 (2)用空格将相关性弱的分开:加减法,赋值,乘法因子见无需空格 (3)声明和赋值不需要水平对齐 (4)缩进 空循环容易忽略行末的分号,要括号包围空循环。"
  • "1,TDD三定律 (1)在编写不能通过的单元测试前,不能编写生产代码 (2)只可编写刚好无法通过的单元测试,不能编译也不算通过 (3)只可编写刚好足以通过当前失败测试的生产代码 2,测试代码和生产代码一样重要,一样需要整洁 3,每个测试一个断言,每个测试一个概念"
  • "1,并发防御原则 (1)单一权责:方法/类/组件应当只有一个修改的理由 (2)限制数据作用域 (3)使用数据副本避免共享数据 (4)线程应尽可能独立 2,了解常见的执行模型:生产者-消费者,读者-作者,宴席哲学家 3,警惕同步方法之间的依赖 4,保持同步区微小 5,尽早考虑关闭的代码,注意线程之间的依赖关系 6,测试线程代码 (1)将伪失败看作可能的线程问题 (2)先使非线程代码工作 (3)运行多于处理器数量的线程 (4)在不同平台上运行 (5)手动插入调试的试错代码"
用户评论
和《重构》一样经典,java必备
对自己能写出比较简洁的代码狂有帮助,平时要结合作者所说的原则,细节作为指导思想,自己多思考,多调整
不错。
讲的挺好的,特别是“一个函数只干一件事”;不过没明白为啥强调参数不要超过3个,感觉只要符合直觉与逻辑,1-5个都是可以记住的,当然超过5个就不好看了。
读的中文版
我本来就是一个代码整洁的爱好者,当然,我有自己的爱好。
随便看看就好的书。不用花过多精力在这上面。
作为参考是不错的,原则还是简洁,清晰,易懂。
鹏哥送的~确实到了道的高度。
收藏