Advanced Search
Start Your Free Trial

Overview

Top Sellers in this Category

“Kent is a master at creating code that communicates well, is easy to understand, and is a pleasure to read. Every chapter of this book contains excellent explanations and insights into the smaller but important decisions we continuously have to make when creating quality code and classes.”

Erich Gamma, IBM Distinguished Engineer

“Many teams have a master developer who makes a rapid stream of good decisions all day long. Their code is easy to understand, quick to modify, and feels safe and comfortable to work with. If you ask how they thought to write something the way they did, they always have a good reason. This book will help you become the master developer on your team. The breadth and depth of topics will engage veteran programmers, who will pick up new tricks and improve on old habits, while the clarity makes it accessible to even novice developers.”

Russ Rufer, Silicon Valley Patterns Group

“Many people don’t realize how readable code can be and how valuable that readability is. Kent has taught me so much, I’m glad this book gives everyone the chance to learn from him.”

Martin Fowler, chief scientist, ThoughtWorks

“Code should be worth reading, not just by the compiler, but by humans. Kent Beck distilled his experience into a cohesive collection of implementation patterns. These nuggets of advice will make your code truly worth reading.”

Gregor Hohpe, author of Enterprise Integration Patterns

“In this book Kent Beck shows how writing clear and readable code follows from the application of simple principles. Implementation Patterns will help developers write intention revealing code that is both easy to understand and flexible towards future extensions. A must read for developers who are serious about their code.”

Sven Gorts

Implementation Patterns bridges the gap between design and coding. Beck introduces a new way of thinking about programming by basing his discussion on values and principles.”

Diomidis Spinellis, author of Code Reading and Code Quality

Software Expert Kent Beck Presents a Catalog of Patterns Infinitely Useful for Everyday Programming

Great code doesn’t just function: it clearly and consistently communicates your intentions, allowing other programmers to understand your code, rely on it, and modify it with confidence. But great code doesn’t just happen. It is the outcome of hundreds of small but critical decisions programmers make every single day. Now, legendary software innovator Kent Beck–known worldwide for creating Extreme Programming and pioneering software patterns and test-driven development–focuses on these critical decisions, unearthing powerful “implementation patterns” for writing programs that are simpler, clearer, better organized, and more cost effective.

Beck collects 77 patterns for handling everyday programming tasks and writing more readable code. This new collection of patterns addresses many aspects of development, including class, state, behavior, method, collections, frameworks, and more. He uses diagrams, stories, examples, and essays to engage the reader as he illuminates the patterns. You’ll find proven solutions for handling everything from naming variables to checking exceptions.

This book covers

  • The value of communicating through code and the philosophy behind patterns

  • How and when to create classes, and how classes encode logic

  • Best practices for storing and retrieving state

  • Behavior: patterns for representing logic, including alternative paths

  • Writing, naming, and decomposing methods

  • Choosing and using collections

  • Implementation pattern variations for use in building frameworks

Implementation Patterns will help programmers at all experience levels, especially those who have benefited from software patterns or agile methods. It will also be an indispensable resource for development teams seeking to work together more efficiently and build more maintainable software. No other programming book will touch your day-to-day work more often.

Amazon.com® Reader Reviews (Ranked by Helpfulness)

Average Amazon.com® Rating: 3.5 out of 5 rating Based on 23 Ratings

this topic from this author deserves a better book - 2008-08-02
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
The book is about writing readeable/maintanable code. It's an interesting/important subject.

The first few (1-3) pharagraph is good , they clearly explain the values/principles of the topic.
Then the book tries to apply these pricnciples in a structured way - classes, state, behaviour, methods. This is ok, but there's too much repetition going on. And the examples are very small/specific, some more complex/longer examples would be much better.

Then there's 2 whole paragraph about the performance characteristics of various collections (map,hash,etc.), and the description of the framework used to benchmark them. I don't think it has to do anyhting with the topic of the book, and it was probably included to increase the number of pages (by 30 to 150).

Finally, there's also a chapter "Evlolving Frameworks" which is mostly about JUnit 3->4 improvements done by the author. It's an interesting chapter focusing mainly on compatibility issues related to framworks.

So i think this topic from this author would deserve a much better book.

Terse and lack clarity - 2008-08-05
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
This book is too terse and the flow of thought is disorganized and lack clarity; at time too vague to know what he is thinking. Also lacking is subsections that branch off from main section. This book is about some implementation practices at code level.
I hope the author can revised this book.

Good book on how to communicate effectively with the code - 2009-01-19
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
The book contains a number of low-level programming techniques for improving design of a program. Kent Beck is grand master of programming and a great communicator. If there is one thing you can learn from this book is to communicate design effectively with the code. The book is fairly concise and consists of ten chapters and 130 pages.

Due to his pioneering work in design patterns, Kent uses patterns to identify common programming techniques and similar to his extreme programming style for agile development he divides those techniques into values, principles and patterns. The values focus on high level goals such as communication, simplicity, flexibility. The principles focus on local consequences (minimize side-effect), DRY, keeping data/logic together, symmetry, decalartive (annotations), rate of change (Reuse/Release Equivalency Principle).


The chapter 5 describes different ways of organizing the code using classes, interfaces, versioned interface, abstract class, value object, etc. Kent shows importance of dependency inversion principle of coding to interfaces. He provides trade-offs between interfaces and abstract class such as change in implementation and change of the interface itself. One of the hardest thing in real world is progression of interfaces with new behavior and Kent describes versioned interface for it. Kent also encourages use of value or immutable objects to make the program side-effect free as in functional languages. He bemoans procedural interfaces due to temporal depdency they impose. Inheritance is also most difficult to get right, so Kent gives a lot of advice on that to make sure subclasses follow Liskov Substition Principle. Kent describes discourages use of conditional logic and encourags delegation technique based on polymorphism. He also shows pluggable selector briefly to implement plugin like behavior. Finally, he discourages of use of library classes with static methods and encourages use of instance methods.

The chapter 6 describes patterns for state such as access, variables, parameters, initializations, etc. Unlike functional languages that don't allow mutable state, imperative languages have to manage state that changes over time. Kent prefers indirect access to the state rather than direct especially when there is dependency between multiple pieces of data. Kent prefers keeping scope of variables local. This chapter also gives good advice on naming variables and parameters. Finally, this chapter describes techniques for eager and lazy initialization.

The chapter 7 describes patterns for control flow, methods and exceptions. In object oriented languages messages are fundamental mechanism for controlling workflow and communicating with the objects. Kent also describes technique for double dispatch (similar to visitor pattern) that provides polymorphic behavior but at the cost of additional coding and maintenance overhead. Other topics include providing guards, naming method and exception handling.

The chapter 8 describes how to divide logic into methods. The chapter describes composed method for calling other methods. It encourages use of symmetry and having same level of abstraction for called methods. Kent also shows use of Method object or Function object that mimics functional style of programming. This chapter also describes conversion methods, factory methods, getter/setter methods and advice of returning copy from the methods instead of internal references.

The chapter 9 describes collections such as arrays, lists, sets, map.

The final chapter describes how to evolve frameworks without breaking the applications. Kent borrows a lot of his experience from JUnit framework and Eclipse (his buddy Eric Gamma). One of interestic topic is how to use objects and the chapter provides three styles including instantiation, configuration and implmentation. Kent shows how implementation technique allow clients to implement a framework interface and extend behavior. Kent also describes trade-offs of extending interfaces and using specialized interfaces as used by AWT (LayoutManager2). The chapter also offers advice on use of internal classes by clients and how they can be instantiated using constructors, factories, etc.

This book shows a lot of techniques and patterns that most experienced programmers knowingly or unknowningly use on daily basis. Nevertheless, it helps to review these techniques and some trade-offs for them. Though, I wish the book gave a lot more examples and described antipatterns as I often found most of the topics a bit dull.

Principles for Maintainable Code - 2008-10-24
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
The title is misleading, as the book really isn't "Patterns." This is a good terse summary of principles to apply when writing code that others will need to work with.

While the book is light on details or examples, reading it can help you consider what coding and micro design conventions to apply to make your code more readable.

This is a good companion to Bob Martin's Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series), as Martin and Beck, excellent coders both, sometimes make opposite recommendations about the same situations. These contrasts drive home the point that rules for good code need to be considered, not just accepted without thought.

A mandatory reading for all software developer - 2008-09-14
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Most of the patterns are just common sense but in this case you will also get a practical explanation of its importance. The content's structure is very appropriate; each pattern is explained in concise way, with real world examples and some code snippets.

Browse Similar Topics

Top Level Categories:
Software Engineering

Sub-Categories:
Software Engineering > Design Patterns
Software Engineering > OOP

Some information on this page was provided using data from Amazon.com®. View at Amazon >


About Safari Books Online • Terms of Service • Privacy Policy • Contact Us • Corporate Licenses • Help • Accessibility | See us on FacebookSee us on Linked InSee us on TwitterRSS

Copyright 2009 Safari Books Online. All rights reserved.