首页 > Linux操作系统 > Linux操作系统 > 实现模式(英文影印版)
实现模式(英文影印版) 
查看其他详细信息:http://www.china-pub.com/301646
【原 书 名】 Implementation Patterns
【原出版社】 Addison-Wesley Professional
【作 者】(美)Kent Beck
【丛 书 名】 典藏原版书苑
【出 版 社】 人民邮电出版社 【书 号】 9787115187093
【出版日期】 2008 年11月 【开 本】 16开 【页 码】 157 【版 次】1-1
市场价:¥29.00 pub价:¥22.62
【媒体评论】
“Kent是用代码来沟通的大师,他的代码不但易于理解,而且阅读起来是一大乐事。我们在创造高质量代码的过程中不断做出微小却重要的决定,本书每一章都是对这些决定的精辟解释和深刻洞察。”.
——Erich Gamma,IBM杰出工程师
“很多团队都有那么一种开发高人,正确的决策可以一整天源源不绝地从他们那里奔涌而出。这些高人编写的代码不但容易理解,便于修改,而且让人用起来舒舒服服毫无后顾之忧。他们总是有好的理由才会把代码编写成某种样子,并不是随意为之。本书会帮助你成为那种高人。本书既有相当的深度、广度,又写得明白流畅,不但经验丰富的程序员可以从中学到新的技巧,改善旧的习惯,新手也能很容易地入门。”
——Russ Rufer,硅谷模式讨论组
“很多人未曾体会过代码的可读性能有多高,也没有意识到可读性有多大的价值。Kent教过我很多,本书让所有人都有机会以他为师。”
——Martin Fowler,ThoughtWorks首席科学家..
“代码要有阅读的价值,不只是对编译器有意义,更应该对人有意义。Kent Beck将他的经验提炼出来,凝练成了一套实现模式。这些真知灼见能让你的代码真正具有阅读的价值。”
——Gregor Hohpe,Enterprise Integration Patterns(中译版《企业集成模式:设计、构建及部署消息传递解决方案》)的作者
“Kent Beck在书中展示了如何运用一些简单的原则,自然而然地编写出清晰可读的代码。本书帮助开发者编写出揭示意图的代码,让代码既易于理解,又有灵活性,有利于未来扩展。认真对待自己的代码的程序员,必读此书。”
——Sven Gorts
“本书填补了设计和编码之间的缺口。Beck以价值观和原则为基础,引出了编程领域的一种新的思考方式。”
——Diomidis Spinellis,Code Reading(中译版《代码阅读方法与实践》)和Code Quality(中译版《高质量程序设计艺术》)的作者...
【内容简介】
在本书中,Kent Beck将自己多年形成的编程习惯以及阅读既有代码的体验凝练成了编程中的价值观、原则和77种实现模式。.
沟通、简单和灵活的价值观应当被所有开发人员所铭记,无时或忘。局部影响、最小化重复、将逻辑与数据捆绑等原则同样是通用性的指导思想,比价值观更贴近编程场景,在价值观和模式之间搭建了桥梁。在77个实现模式中,每一个模式都覆盖了编写简洁、清晰、易扩展、易维护的代码这一原则的某个方面。它们为日常的编程提供了丰富翔实的参考依据,并告诉大家这些代码如何为降低沟通成本和提高有效产出提供保障。..
本书适用于各个阶段的开发者群体,刚刚涉足软件开发领域的新人能够透过大师的眼睛来看待编程,了解编程的价值观与原则;而具有丰富经验的资深工程师则可以通过这些模式进行反思,探究成功实践背后的意义。把价值观、原则和开发实践结合之后,日常开发工作便会以崭新迷人的形式呈现在我们面前。...
【前言】
这是一本关于编程的书,更具体一点,是关于“如何编写别人能懂的代码”的书。编写出别人能读懂的代码没有任何神奇之处,这就与任何其他形式的写作一样:了解你的读者,在脑子里构想一个清晰的整体结构,让每个细节为故事的整体作出贡献。Java提供了一些很好的交流机制,本书介绍的实现模式正是一些Java编程习惯,它们能让你编写出的代码更加易读。.
也可以把实现模式看作一次思考,“关于这段代码,我想要告诉读者什么?”程序员大部分的时间都在自己的世界里绞尽脑汁,以至于用别人的视角来看待世界对他们来说是一次重大的转变。他们不仅要考虑“计算机会用这段代码做什么”,还要考虑“如何用这段代码与别人沟通我的想法”。这种视角上的转换有利于你的健康,也很可能有利于你的钱包,因为在软件开发中有大量的开销都被用在理解现有代码上了。
有一个叫做Jeopardy的美国游戏节目,由主持人给出问题的答案,参赛观众则来猜问题是什么。“猜一个词,表示把人扔出窗口。”“是defenestration吗?”“答对了。”
编程就好像Jeopardy游戏:答案用Java的基本语言构造给出,程序员则经常需要找出问题究竟是什么,即这些语言构造究竟是在解决什么问题。譬如说,如果答案是“把一个字段声明为Set”,那么问题可能就是“我要怎样告诉其他程序员,这是一个不允许包含重复元素的集合?”本书介绍的实现模式列举了一组常见的编程问题,还有Java解决这些问题的方式。
和软件开发一样,范围管理对于写书同样重要。我现在就告诉你本书不是什么。它不是编程风格指南,因为其中包含了太多的解释,最终的决定权则完全交给你。它不是设计书籍,因为其中关注的主要是小范围的、程序员每天要做很多次的决策。它不是模式书籍,因为这些实现模式的格式各不相同、随需而变。它不是语言书籍,因为尽管其中谈到了一些Java语言的特性,但我在写作时假设你已经熟悉Java了。..
实际上本书建立在一个相当不可靠的前提之上:好的代码是有意义的。我见过太多丑陋的代码给它们的主人赚着大把钞票,所以在我看来,软件要取得商业成功或者被广泛使用,“好的代码质量”既不必要也不充分。即便如此,我仍然相信,尽管代码质量不能保证美好的未来,它仍然有其意义:有了质量良好的代码以后,业务需求能够被充满信心地开发和交付,软件用户能够及时调整方向以便应对机遇和竞争,开发团队能够在挑战和挫折面前保持高昂的斗志。总而言之,比起质量低劣、错误重重的代码,好的代码更有可能帮助用户取得业务上的成功。
即便不考虑长期的经济效应,我仍然会选择尽我所能地编写出好代码。就算活到古稀之年,你的一生也只有二十多亿秒而已,这宝贵的时间不该被浪费在不能被自己引以为傲的工作上。编写好的代码带给我满足感,不仅因为编程本身,还因为知道别人能够理解、欣赏、使用和扩展我的工作。
所以,说到底,这是一本关于责任的书。作为一个程序员,你拥有时间、拥有才华、拥有金钱、拥有机会。对于这些天赐的礼物,你要如何负责地使用?下面的篇幅里包含了我对于这个问题的答案:不仅为我自己、为我的CPU老弟编程,也为其他人编程。
致谢
我首先、最后并且始终要感谢Cynthia Andres,我的搭档、编辑、支持者和首席讨债鬼。我的朋友Paul Petralia推动了这本书的写作,而且不断给我鼓励的电话。编辑Chris Guzikowski和我通过本书学会了如何在一起工作,他从Pearson的角度给了我一切需要的支持,让我能够完成写作。还要感谢Pearson的制作团队:Julie Nahil、John Fuller和Cynthia Kogut。Jennifer Kohnke的插图不但包含了丰富的信息,而且非常人性化。本书的审阅者给我的手稿提供了清晰而又及时的反馈,为此我要感谢Erich Gamma、Steve Metsker、Diomidis Spinellis、Tom deMarco、Michael Feathers、Doug Lea、Brad Abrams、Cliff Click、Pekka Abrahamson、Gregor Hohpe和Michele Marchesi。感谢David Saff指出“状态”与“行为”之间的平衡。最后,还要感谢我的孩子们,一想到他们乖乖呆在家里,我就有了尽快完成本书的动力。Lincoln、Lindsey、Forrest和Joelle Andres,感谢你们。...
【目录】
Chapter 1: Introduction .
Tour Guide
And Now
Chapter 2: Patterns
Chapter 3: A Theory of Programming
Values
Communication
Simplicity
Flexibility
Principles
Local Consequences
Minimize Repetition
Logic and Data Together
Symmetry
Declarative Expression
Rate of Change
Conclusion
Chapter 4: Motivation
Chapter 5: Class
Class
Simple Superclass Name
Qualified Subclass Name
Abstract Interface
Interface
Abstract Class
Versioned Interface
Value Object
Specialization
Subclass
Implementor
Inner Class
Instance-Specific Behavior
Conditional
Delegation
Pluggable Selector
Anonymous Inner Class
Library Class
Conclusion
Chapter 6: State
State
Access
Direct Access
Indirect Access
Common State
Variable State
Extrinsic State
Variable
Local Variable
Field
Parameter
Collecting Parameter
Optional Parameter
Var Args
Parameter Object
Constant
Role-Suggesting Name
Declared Type
Initialization
Eager Initialization
Lazy Initialization
Conclusion
Chapter 7: Behavior
Control Flow
Main Flow
Message
Choosing Message
Double Dispatch
Decomposing (Sequencing) Message ..
Reversing Message
Inviting Message
Explaining Message
Exceptional Flow
Guard Clause
Exception
Checked Exceptions
Exception Propagation
Conclusion
Chapter 8: Methods
Composed Method
Intention-Revealing Name
Method Visibility
Method Object
Overridden Method
Overloaded Method
Method Return Type
Method Comment
Helper Method
Debug Print Method
Conversion
Conversion Method
Conversion Constructor
Creation
Complete Constructor
Factory Method
Internal Factory
Collection Accessor Method
Boolean Setting Method
Query Method
Equality Method
Getting Method
Setting Method
Safe Copy
Conclusion
Chapter 9: Collections
Metaphors
Issues
Interfaces
Array
Iterable
Collection
List
Set
SortedSet
Map
Implementations
Collection
List
Set
Map
Collections
Searching
Sorting
Unmodifiable Collections
Single-Element Collections
Empty Collections
Extending Collections
Conclusion
Chapter 10: Evolving Frameworks
Changing Frameworks without Changing Applications
Incompatible Upgrades
Encouraging Compatible Change
Library Class
Objects
Conclusion
Appendix A: Performance Measurement
Example
API
Implementation
MethodTimer
Canceling Overhead
Tests
Comparing Collections
Comparing ArrayList and LinkedList
Comparing Sets
Comparing Maps
Conclusion
Bibliography
General Programming
Philosophy
Java
Index ...
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16566727/viewspace-481819/ ,如需转载,请注明出处,否则将追究法律责任。