实现模式(Implementation Patterns)
分類: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,综合,
品牌: 贝克
基本信息·出版社:人民邮电出版社
·页码:176 页
·出版日期:2009年
·ISBN:711519226X/9787115192264
·条形码:9787115192264
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:中文
·外文书名:Implementation Patterns
产品信息有问题吗?请帮我们更新产品信息。
内容简介在《实现模式》中,作者将自己多年形成的编程习惯以及阅读既有代码的体验凝练成了编程中的价值观、原则和77种实现模式。沟通、简单和灵活的价值观应当被所有开发人员所铭记。局部影响、最小化重复、将逻辑与数据捆绑等原则同样是通用性的指导思想,比价值观更贴近编程场景,在价值观和模式之间搭建了桥梁。在77种实现模式中,每一种模式都覆盖了编写简洁、清晰、易扩展、易维护的代码这一原则的某个方面。它们为日常的编程提供了丰富翔实的参考依据,并告诉大家这些代码如何为降低沟通成本和提高有效产出提供保障。《实现模式》适用于各个阶段的开发者群体。刚刚涉足软件开发领域的新人能够透过大师的眼睛来看待编程,了解编程的价值观与原则;具有丰富经验的资深工程师则可以通过这些模式进行反思,探究成功实践背后的意义。把价值观、原则和开发实践结合之后,日常开发工作便会以崭新迷人的形式呈现在我们面前。
作者简介Kent Beck,软件业中最具创新力、最富盛名的领袖之一。长期以来,他一直致力于挑战软件工程教条,推动模式、测试驱动开发以及极限编程等思想的应用和传播。他是T11tee RIvers Institute的创始人和董事,也是Agitar Software的成员。他在AddIson?Wesley出版了多本书籍,其中包括丁est-Driven Dpeve蛔pment(中译版《测试驱动开发》),以及与CyrlthiaAndres合著的Extreme Programming Explained(中译版《解析极限编程》)。
媒体推荐“Kent是用代码来沟通的大师,他的代码条分缕析,明晓清晰,如益友携手,如良师解惑,令人豁然开朗。”
——Erich Gamma,IBM杰出工程师
编辑推荐在《实现模式》中,作者收集了77种模式,用于处理日常编程任务,编写可读性更高的代码这个新的模式集合涵盖了开发中的诸多方面,包括类、状态、行为、方法、容器及框等。图表、故事、示例和随笔的配合使用,使作者笔下的种种模式显得异彩纷呈,从中以发现许多经受过实践检验的解决方案,小至变量命名,大到异常检查。
《实现模式》包括以下内容:
通过代码进行交流的重要性和隐藏在模式背后的思想;
何时创建类,如何创建类,类又是怎样书写逻辑的;
存储和获取状态的最佳实践;
行为,即用于表述逻辑《包括可选执行路径)的模式;
编写方法,为方法命名,以及对方法进行分解;
选择和使用容器;
实现模式在用于构建框架时的变体。
目录
第1章 引言
1.1 导游图
1.2 那么,现在……
第2章 模式
第3章 一种编程理论
3.1 价值观
3.1.1 沟通
3.1.2 简单
3.1.3 灵活
3.2 原则
3.2.1 局部化影响
3.2.2 最小化重复
3.2.3 将逻辑与数据捆绑
3.2.4 对称性
3.2.5 声明式表达
3.2.6 变化率
3.3 小结
第4章 动机
第5章 类
5.1 类
5.2 简单的超类名
5.3 限定性的子类名
5.4 抽象接口
5.5 interface
5.6 抽象类
5.7 有版本的interface
5.8 值对象
5.9 特化
5.10 子类
5.11 实现器
5.12 内部类
5.13 实例特有的行为
5.14 条件语句
5.15 委派
5.16 可插拔的选择器
5.17 匿名内部类
5.18 库类
5.19 小结
第6章 状态
6.1 状态
6.2 访问
6.3 直接访问
6.4 间接访问
6.5 通用状态
6.6 可变状态
6.7 外生状态
6.8 变量
6.9 局部变量
6.10 字段
6.11 参数
6.12 收集参数
6.13 可选参数
6.14 变长参数
6.15 参数对象
6.16 常量
6.17 按角色命名
6.18 声明时的类型
6.19 初始化
6.20 及早初始化
6.21 延迟初始化
6.22 小结
第7章 行为
7.1 控制流
7.2 主体流
7.3 消息
7.4 选择性消息
7.5 双重分发
7.6 分解性(序列性)消息
7.7 反置性消息
7.8 邀请性消息
7.9 解释性消息
7.10 异常流
7.11 卫述句
7.12 异常
7.13 已检查异常
7.14 异常传播
7.15 小结
第8章 方法
8.1 组合方法
8.2 揭示意图的名称
8.3 方法可见性
8.4 方法对象
8.5 覆盖方法
8.6 重载方法
8.7 方法返回类型
8.8 方法注释
8.9 助手方法
8.10 调试输出方法
8.11 转换
8.12 转换方法
8.13 转换构造器
8.14 创建
8.15 完整的构造器
8.16 工厂方法
8.17 内部工厂
8.18 容器访问器方法
8.19 布尔值Setting方法
8.20 查询方法
8.21 相等性判断方法
8.22 Getting方法
8.23 Setting方法
8.24 安全副本
8.25 小结
第9章 容器
9.1 隐喻
9.2 要点
9.3 接口
9.3.1 Array国
9.3.2 Iterable国
9.3.3 Collection国
9.3.4 List国
9.3.5 Set国
9.3.6 SortedSet国
9.3.7 Map国
9.4 实现
9.4.1 Collection国
9.4.2 List国
9.4.3 Set国
9.4.4 Map国
9.5 Collections
9.5.1 查询
9.5.2 排序
9.5.3 不可修改的容器
9.5.4 单元素容器
9.5.5 空容器
9.6 继承容器
9.7 小结
第10章 改进框架
10.1 修改框架而不修改应用
10.2 不兼容的更新
10.3 鼓励可兼容的变化
10.3.1 程序库类
10.3.2 对象
10.4 小结
附录A 性能度量
A.1 示例
A.2 API
A.3 实现
A.4 MethodTimer
A.5 冲抵额外开销
A.6 测试
A.6.1 容器的比较
A.6.2 ArrayList和LinkedList的比较
A.6.3 Set之间的比较
A.6.4 Map之间的比较
A.7 小结
参考书目
……[看更多目录]
序言这是一本关于如何写好代码的书。
如果你不认为写好代码是一件重要、困难并且有趣的事,请立即放下这本书。
什么是好的代码?可以工作的、性能良好的、不出bug的代码,就是好的代码吗?
所谓好的代码,除了其他所有要求以外,还应该清晰准确地传达写作者的想法。
Martin Fowler在《重构:改善既有代码的设计》里说,“任何一个傻瓜都能写出机器能懂的代码。好的程序员应该写出人能懂的代码。”
如果你不同意这句话,请立即放下这本书。因为这是一本关于如何用代码与他人(而非机器)沟通的书。
任何读到这一行的程序员都应该读完这本书。
Steve McConnell在《代码大全》里说,“不要过早优化,但也不要过早劣化”。这本书将告诉你如何在几乎不引入任何额外成本的前提下避免一些常见的低级错误——它们是常见的,因为几乎每个人都犯过并且还在犯着这些错误。
如果你确实没有时间,至少应该读完第6章“状态”。因为在各种常见的低级错误中最常见的就是关于“什么信息在什么地方”的决策错误。
在这样一本书的序言里说任何废话都将是佛头着粪。
所以,现在就祝你阅读愉快、编程愉快。
是为序。
文摘插图: