代码整洁之道读书笔记.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代码整洁之道读书笔记

* Content Layouts 读书交流会 多读书??好读书??读好书 举头望明月 低头敲代码 满园春色关不住 一串代码飘出来 夜阑卧听风雨声 做梦还在敲代码 洛阳亲友如相问 就说我在敲代码 风萧萧兮易水寒 壮士要去敲代码 松下问童子 言师敲代码 白发三千丈 Bug改不完 垂死病中惊坐起 今天还没敲代码 在天愿做比翼鸟 在地愿意敲代码 但愿人长久 天天敲代码 献给广大不辞辛劳的程序员们 阅读本书有两种原因 第一,你是个程序员 第二,你想成为更好的程序员 主要内容 混乱代码的代价 整洁代码艺术、什么是整洁代码 如何编写整洁代码 混乱代码的代价 一、要有代码 有人说过我们正在临近代码的终结点。快代码就会自动产生出来不需要再人工编写。程序员完全没用了因为商务人士可以从规约直接生成程序。 代码呈现了需求的细节。 混乱代码的代价 二、糟糕代码 你是否曾为糟糕的代码所深深困扰?如果你是位有点儿经验的程序员,定然多次遇到过这类困境。我们有专用来形容这事的词:沼泽。我们趟过代码的水域。我们穿过灌木密布、瀑布暗藏的沼泽地。我们拼命想找到出路,期望有点什么线索能启发我们到底发生了什么事,但目光所及,只是越来越多死气沉沉的代码。 混乱代码的代价 随着混乱的增加,团队生产力也持续下降趋向于 零。当生产力下降时,管理层就只有一件事可做 了,增加更多人手到项目中,期望提升生产力。 可是新人并不熟悉系统的设计。他们搞不清楚什 么样的修改符合设计意图,什么样的修改违背设 计意图。而且,他们以及团队中的其他人都背负 着提升生产力的可怕压力。于是,他们制造更多 的混乱,驱动生产力向零那端不断下降。 混乱代码的代价 将需求明确到机器可以执行的程度,就是编程要做的事,这种规约就是代码。 糟糕的代码可能毁掉一家公司。 混乱代码的代价是驱动生产力不断趋向零。 整洁不仅与效率有关,而且关于企业的生存。 什么样的代码是整洁代码? 整洁代码 代码逻辑应当直截了当,叫缺陷难以隐藏,尽量减少依赖关系,使之便于维护,依据某种分层战略完善错误处理代码,性能调至最优,省得引诱别人做没规矩的优。 整洁的代码简单直接。整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直截了当的控制语句。 果断决绝。代码应当讲述事实不引人猜测。它只该包含必需之物。 它应当有单元测试和验收测试。它使用有意义的命名。它只提供一种而非多种做一件事的途径。它只有尽量少的依赖关系而且要明确地定义和提供清晰、尽量少的API。代码应通过其字面表达含义因为不同的语言导致并非所有必需信息均可通过代码自身清晰表达。 整洁代码 没有测试的代码不干净。不管它有多优雅不管有多可读、多易理解微乎测试其不洁亦可知也。 整洁的代码总是看起来像是某位特别在意它的人写的。几乎没有改进的余地。代码作者什么都想到了如果你企图改进它总会回到原点。 能通过所有测试;没有重复代码;体现系统中的全部设计理念;包括尽量少的实体,比如类、方法、函数等。 如何编写整洁代码 命名 函数 注释 类 命名 一、要“名副其实” a、这件事情要严肃对待。 在起一个表意的名字上花时间是值得的,优秀程序员从细节做起。 b、如果名称需要注释来补充,那就不是“名副其实”。 Demo:int d;//消逝的时间,以天计算 应该使用指明计量对象和计量单位的名称。 Int elapsedTimeInDays; Int daysSinceCreation; Int daysSinceModificatin; Int fileAgeInDays’ 命名 c、问题不在于代码的简洁度,而在于代码的“模糊度”。 这里的意思是简短的代码,如果不能表达含义,也是不能做到“名副其实”。 Demo: Java: pulic Listint[] getThem(){ Listint[] list1 = new ArrayListint[](); For( int[] x: theList) If(x[0]==4) list1.add(x); return list1; }? 这里的代码够简单了,但是没人知道 theList是什么东西、theList[0]的意思是什么、 d、是什么意义、以及返回list1该怎么用。 这就是作者所说的“模糊度”,因为意义比较模糊,所以这些代码也不“名副其实”。 那么怎么呢?应该根据这段代码的意图来修改这里的函数名,变量名,值的含义(用常量)。 命名 二、命名要避免误导 程序员必须避免留下掩藏代码本意的错误线索。 Demo:

您可能关注的文档

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档