The Patterns Handbook: Techniques, Strategies, and Applications / Edition 1

The Patterns Handbook: Techniques, Strategies, and Applications / Edition 1

by Linda Rising
ISBN-10:
0521648181
ISBN-13:
9780521648189
Pub. Date:
06/28/1998
Publisher:
SIGS
ISBN-10:
0521648181
ISBN-13:
9780521648189
Pub. Date:
06/28/1998
Publisher:
SIGS
The Patterns Handbook: Techniques, Strategies, and Applications / Edition 1

The Patterns Handbook: Techniques, Strategies, and Applications / Edition 1

by Linda Rising

Paperback

$96.0
Current price is , Original price is $96.0. You
$96.00 
  • SHIP THIS ITEM
    Qualifies for Free Shipping
  • PICK UP IN STORE
    Check Availability at Nearby Stores
  • SHIP THIS ITEM

    Temporarily Out of Stock Online

    Please check back later for updated availability.


Overview

In The Patterns Handbook, Rising has selected a large number of seminal articles and essays that illustrate the growing importance of patterns in application development. A partial list of well published experts includes James Coplien, Kent Beck, Grady Booch, Ralph Johnson, Robert Martin, Andrew Koenig, and John Vlissides. This reference contains an overview, examples and experience, resources, an annotated bibliography, and contact information. In this important collection, you will find articles on pattern writing, pattern templates, system test patterns, frameworks and design patterns, how patterns work in teams, patterns and antipatterns, and patterns of thought.The use of patterns leads to successful solutions to recurring problems. This book will show you how to use patterns to improve productivity and quality and to become a better software designer.

Product Details

ISBN-13: 9780521648189
Publisher: SIGS
Publication date: 06/28/1998
Series: SIGS Reference Library , #13
Edition description: New Edition
Pages: 570
Product dimensions: 6.06(w) x 9.06(h) x 1.26(d)

Read an Excerpt

From Part III: Industrial Experience with Design Patterns

...Industrial Experience with Patterns

Smalltalk Best Practice Patterns—Kent Beck (First Class Software)

I have been writing what I intend to grow into a comprehensive system of patterns for Smalltalk programming, called the Smalltalk Best Practice Patterns (SBPP). I'll report here on the status of these patterns and my experience teaching them to and watching them used by two clients developing commercial software in Smalltalk.

The SBPP are intended to accelerate the pace at which teams of Smalltalk developers begin realizing the benefits of objects and Smalltalk by communicating the techniques used by expert Smalltalkers. Although many patterns are still under development, a core set of patterns are finished that cover most of the important design and coding problems.

The best developed section contains 90 patterns for coding. It presents successful tactics for Smalltalk-naming conventions, reuse of the collection classes, common control flow patterns, and code formatting. The emphasis throughout is on communicating through code. The patterns are intended to generate code that meets the simple style rule "say everything once and only once." The section on design has 15 patterns, most of which exist only in outline form. When finished, they are intended to cover similar material to Design Patterns. I teach these patterns using presentations similar to "Patterns Generate Architectures." The section on user interface design has 25 patterns for designing user interfaces and 15 patterns for implementing them in Smalltalk. These patterns are not yet ready to be taught. Thefinal section covers project management. These 30 patterns focus on the non-programming tasks of programmers—testing, documentation, and scheduling.

Hewitt Associates

Hewitt Associates has a group of five Smalltalk programmers working on the next generation of a system implemented originally on large, mainframe computers. They have extensive experience with objects, although the team members have varying levels of familiarity with objects and all are new to Smalltalk.

Initially, the team met once a week for several months. As the coding patterns became available, they discussed a few patterns a week. Now that production coding has begun, discussing and learning about programming style is done primarily as part of group code reviews. I spent two days with the team when they started coding seriously. We alternated working on projects with presentation and discussion of the most important patterns.

The resulting code is remarkably good. The most experienced members are making excellent design decisions that I only appreciate after having them explained carefully to me. Even the junior members of the team, new to Smalltalk and objects, are writing idiomatic Smalltalk code. I have noticed the pattern titles becoming part of the spoken vocabulary of the team—"Oh, that's a Parameters Object," "We need a Guard Clause here."

Orient Overseas Container Limited (OOCL)

OOCL has a much more ambitious effort, with 25-30 developers working to replace centralized applications with a worldwide distributed architecture. The project grew very quickly, which resulted in some chaos as the team tried to find a common identity and culture.

David Ornstein and I introduced patterns two ways. First, we held two "Smalltalk Bootcamps," where teams of 10-12 develop a simple application from requirements to tested, documented, shipping code in three days. We interspersed discussion of important patterns and software engineering issues with frantic development. The lessons learned here seem to stick very well. In contrast, patterns presented in lecture style were not learned as readily.

An activity we held with some success was a Pattern Bowl. We chose a piece of code to review. We divided the audience (25 developers) into two teams. Each team got points for recognizing the presence or absence of patterns in the review code in a limited amount of time. The winners received guardianship of a token trophy until the next Pattern Bowl. We were happy with the results for two reasons. First, the code in question got a very thorough review. Everyone in the room had a pretty good grasp of what it did and how it did it. You could use a Pattern Bowl to communicate critical shared code. Second, the teams were forced to discuss the meaning of patterns, because there were penalties for mis-identifying a pattern.

Overall, patterns have had a big impact mostly on the early members of the team, five or six bright new Smalltalkers we spent a lot of individual time with. Their designs are sophisticated, their code idiomatic. Later additions, including some experienced Smalltalk programmers, showed reluctance to simply follow the dictates of the patterns, preferring their own style. The unfinished state of the patterns has definitely made teaching them to experienced programmers more difficult.

I have always tried to write may patterns with a substantial section in the middle that presented the motivation for the pattern, why possible alternatives don't work, and led up to the conclusion. OOCL asked me early on to strip all that out, leaving patterns with a name, a problem statement, and a solution. I put together such an abridged version. It has been widely used as a reference and development guide, often being posted on cubicle walls within sight of the workstation...

Table of Contents

Part I. Overview: 1. Design patterns: elements of reusable architectures L. Rising; 2. An overview of patterns R. Corfman; 3. Patterns: spreading the word L. Rising; 4. A training experience with patterns B. Goldfedder and L. Rising; 5. Patterns: The New Building Blocks for Reusable Software Architectures D. Saunders; Part II. Examples and Experience: 6. Interactions in the INgage™ IP prototype M. Duell; 7. Pattern writing L. Rising; 8. Writers workshop format L. Rising; 9. AGCS pattern template L. Rising; 10. Patterns mining D. E. DeLano; 11. System test pattern language D. E. DeLano and L. Rising; 12. Improving software development with process and organizational patterns P. Genualdi; 13. Organizational patterns at AG communications systems N. Janoff; 14. HandsInView D. Olson; 15. Patterns on the fly D. Olson; 16. A pocket-sized broker D. Olson; 17. Frameworks and design patterns B. H. Richards; Part III. Resources and More Information: 18. Fault-tolerant telecommunication system patterns M. Adams et al.; 19. Industrial experience with design patterns K. Beck et al.; 20. Sorting through the plethora: the 'unofficial' JOOP book awards S. Bilow; 21. Patterns G. Booch; 22. A generative development - process pattern language J. Coplien; 23. Setting the stage J. Coplien; 24. Software design patterns: common questions and answers J. Coplien; 25. Software development as science, art, and engineering J. Coplien; 26. The failure of pattern languages R. Gabriel; 27. Potential pattern pitfalls, or how to jump on the patterns bandwagon without the wheels coming off N. Harrison; 28. An introduction to patterns R. Johnson; 29. How patterns work in teams R. Johnson; 30. A report on PLoP'94 R. Johnson; 31. Patterns and frameworks R. Johnson; 32. Patterns and antipatterns A. Koenig; 33. Design reuse: chemical engineering vs. software engineering P. Kogut; 34. Christopher Alexander: an introduction for object-oriented designers D. Lea; 35. Patterns: PLoP, PLoP, Fizz, Fizz R. Martin; 36. A design patterns experience report R. Ramirez; 37. Design patterns to construct the hot spot of a manufacturing framework H. A. Schmid; 38. Using design patterns to evolve system software from UNIX to Windows NT D. Schmidt and P. Stephenson; 39. Pattern hatching - perspectives from the 'Gang of Four' J. Vlissides; Appendix A. Annotated bibliography; Appendix B. Web sites.
From the B&N Reads Blog

Customer Reviews