实现模式

Kent Beck

出版时间

2008-12-31

ISBN

9787115192264

评分

★★★★★

标签

计算机

书籍介绍
这并不是一本教你写代码的书,而是教你怎么让代码'被别人读懂'的书。Kent Beck 把多年编程和读别人代码的体会,沉淀成沟通、简单、灵活三条价值观,再落到 77 个实现模式上——它们不是炫技,而是为了降低人与人之间的沟通成本。有读者读了一年多仍觉得枯燥,也有人在第 5 章之后质疑'类似书太多了',甚至怀疑被书评'忽悠'。这些真实的分歧恰恰点明了本书的定位:它不是计算机科学的经典,而是软件开发、尤其是团队协作中的'内功'训练。它适合愿意慢下来细细品、把程序当作写给'读者'看的初中级开发者,也适合想借模式反思自身实践的资深工程师。想快速找技巧的人或许会失望,但真正在意代码能否被他人接手的人,会在这里找到一套可对话、可权衡的准则。
作者简介
Kent Beck,JUnit测试框架创始人,《测试驱动开发》和《解析极限编程》的作者,软件业中最具创新力,最富盛名的领袖之一。长期以来,他一直致力于挑战软件工程教条,推动模式、测试驱动开发以及极限编程等思想的应用和传播。
AI导读
核心看点
  • 凝练77种实现模式,指导编写简洁易维护代码
  • 确立沟通、简单、灵活的编程核心价值观
  • 提供局部影响、最小化重复等通用设计原则
读者共识
  • 书虽薄但需反复阅读,强调代码写给人类看
  • 部分模式实用,但整体被评过于琐碎枯燥
  • 适合入门者建立规范,资深者可能觉浅显
精彩摘录
  • "只有在访问器方法(也许还可以加上构造器)中使用直接存储;只在类及其子类(也许还可以扩大到类所在的包)的内部使用直接存储"
  • "对于“如何访问状态”,我的默认策略是,允许在类(及其内部类)中直接访问,其他的使用者必须间接访问。"
  • "很多计算逻辑会涉及同样的数据项,尽管其中的值可能不同。如果发现这样的一组计算逻辑,为了表达意图,应该把它们共同的数据项声明为一个类中的字段。 一个对象中所有的通用状态应该具有同样的作用域和生命周期。有时我被诱惑着引入一个这样的字段:它只被对象中的一小部分方法使用,或者只在某个方法被调用的过程中有效。每当遇到这种情况,我总能找到一个更好的地方来保存着部分数据(可能是一个参数或者一个辅助对象),从而改善代码质量"
  • "价值观是编程过程的统一支配性主题。珍视与其他人沟通的重要性,把代码中多余的复杂性去掉,并保持开放的心态,这才是我工作状态最佳的表现。这些价值观——沟通、简单和灵活——影响了我在编程时所做的每个决策。"
  • "原则可以解释模式背后的动机,它是有普遍意义的。在对立模式间进行选择时,最好的方式就是用原则来说话,而不是让模式争来争去。 如果遇到从未碰到过的情况,对原则的理解可以充当我们的向导。"
  • "written with an audience in mind"
  • "if most access to an object's state are outside the object, there is a deeper design problem lurking"
用户评论
这本书是编写Java程序的典范文本。
前4章读完,第5章开始之后的内容感觉不是很有用——类似的书太多了,例如《Clean Code》。
开卷有益。。。。有些可以吸收的东西
教你如何写代码的,准备读第二遍,和Bob大叔的《代码整洁之道》有异曲同工之处
之前有些部分没看,得空又翻了一遍,降一星。g了下这货,xp,tdd,agile,junit,除了最后一个标签有点干货外,其余的给人以宗教人士的印象。这书写的是柴米油盐,但是非要说成是阳春白雪,延续了鼓吹tdd、xp时的劲头
讲的都是一些水到渠成的写法,没什么营养
No.125:程序是为了与人沟通,所以要能表达意图,要简洁,灵活,即写出的程序最起码需要具备可读,可扩展,可维护等,如果再提高一点要求,则还需要具备可测试、可复用等。 “程序读起来应该像一本书。”
现在的我还无法理解。。如果哪天悟了再回来改分
kent beck的风格,短小精悍,不啰嗦,都是干货。之前看《测试驱动开发》也是这种感觉,一本书就一个例子,说一件事,但确实讲的很清楚。
基于Java,有些思路其实还是和新的编程语言思路有冲突,而且很多东西其实不是特别好权衡。
求书
收藏