实现模式

Kent Beck

出版时间

2008-12-31

ISBN

9787115192264

评分

★★★★★

标签

计算机

书籍介绍

在这本新书《实现模式》里面, Kent Beck将自己多年形成的编程习惯以及阅读既有代码的体验凝练成了编程中的价值观、原则和77种实现模式。

沟通、简单和灵活的价值观应当被所有开发人员所铭记,无时或忘。局部影响、最小化重复、将逻辑与数据捆绑等原则同样是通用性的指导思想,比价值观更贴近编程场景,在价值观和模式之间搭建了桥梁。在77个实现模式中,每一个模式都覆盖了编写简洁、清晰、易扩展、易维护的代码这一原则的某个方面。它们为日常的编程提供了丰富翔实的参考依据,并告诉大家这些代码如何为降低沟通成本和提高有效产出提供保障。

本书适用于各个阶段的开发者群体,刚刚涉足软件开发领域的新人能够透过大师的眼睛来看待编程,了解编程的价值观与原则;而具有丰富经验的资深工程师则可以通过这些模式进行反思,探究成功实践背后的意义。把价值观、原则和开发实践结合之后,日常开发工作便会以崭新迷人的形式呈现在我们面前。

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"
作者简介
Kent Beck,JUnit测试框架创始人,《测试驱动开发》和《解析极限编程》的作者,软件业中最具创新力,最富盛名的领袖之一。长期以来,他一直致力于挑战软件工程教条,推动模式、测试驱动开发以及极限编程等思想的应用和传播。
用户评论
这本书是编写Java程序的典范文本。
前4章读完,第5章开始之后的内容感觉不是很有用——类似的书太多了,例如《Clean Code》。
开卷有益。。。。有些可以吸收的东西
教你如何写代码的,准备读第二遍,和Bob大叔的《代码整洁之道》有异曲同工之处
之前有些部分没看,得空又翻了一遍,降一星。g了下这货,xp,tdd,agile,junit,除了最后一个标签有点干货外,其余的给人以宗教人士的印象。这书写的是柴米油盐,但是非要说成是阳春白雪,延续了鼓吹tdd、xp时的劲头
讲的都是一些水到渠成的写法,没什么营养
No.125:程序是为了与人沟通,所以要能表达意图,要简洁,灵活,即写出的程序最起码需要具备可读,可扩展,可维护等,如果再提高一点要求,则还需要具备可测试、可复用等。 “程序读起来应该像一本书。”
现在的我还无法理解。。如果哪天悟了再回来改分
kent beck的风格,短小精悍,不啰嗦,都是干货。之前看《测试驱动开发》也是这种感觉,一本书就一个例子,说一件事,但确实讲的很清楚。
基于Java,有些思路其实还是和新的编程语言思路有冲突,而且很多东西其实不是特别好权衡。
收藏