Real World Software Architecture

Real World Software Architecture is dedicated to providing information and experiences from the field of Software Architecture.



Subscribe with RSS or ATOM Add to Google

Links

  • Home Page
  • Real World Software Process Engineering
  • Suggested Reading
  • .NET Dev and Arch Collection
  • SEI Essays on SA
  • Software Architecture
  • Bredemeyer
  • wwisa
  • Product Line Engineering
  • PLEES
  • Software Product Lines
  • MSDN Architecture Center
  • patterns & practices






Thursday, May 03, 2012

Elemental Design Patterns Book Review

Elemental Design Patterns are the underlying core concepts of programming and software design that have remained described.

This book is a book I wish I had 15 years ago to help me put the basics of programming into their proper context. Learning how to make use of patterns over the years would have been much simpler had I read this book first.

I have listed the chapters of the book below along with the patterns in the catalog. Take a look at he names of the patterns and you can see how low level these patterns are.

Chapter 1: Introduction to Design Patterns
Chapter 2: Elemental Design Patterns
Chapter 3: Pattern Instance Notation
Chapter 4: Working with EDPs
Chapter 5: EDP Catalog
Create Object
Retrieve
Inheritance
Abstract Interface
Delegation
Redirection
Conglomeration
Recursion
Revert Method
Extend Method
Delegated Conglomeration
Redirected Recursion
Trusted Delegation
Trusted Redirection
Deputized Delegation
Deputized Redirection
Chapter 6: Intermediate Pattern Compositions
Fulfill Method
Retrieve New
Retrieve Shared
Objectifier
Object Recursion
Chapter 7: Gang of Four Pattern Compositions
7.1 Creational Patterns
7.2 Structural Patterns
7.3 Behavioral Patterns
Appendix A: Rho-Calculus

My goal with a solution's architecture is always to make it the simplest solution possible in order to maximize maintainability. That means i must accomplish providing the highest level of transparency possible. That means providing the right level of detail at the right level of abstraction. When they are used patterns allow for a common language to be used. This book provides a language to allow you to go to a lower level of abstraction getting to the core concepts of programming.

My favorite part of this book is how explicitly names and sheds light on all the logic we take for granted when we are programming. Don't however expect to breeze through this book. Although the author is bringing to light concepts that you use everyday, this is the first time you'll be thinking about them with intensity. You have to following along with the author's logical introduction throughout the first few chapters to get the why of the rest of the book.

I think the Pattern Instance Notation (PIN) and the different PINboxes is a really cool way to visually represent patterns, parts of patterns, and the associated patterns.

This thought that kept coming to mind as I read this book is "this is the way I wish I would have learned this in the beginning of my career". This is a refreshing read. It makes you think in an enjoyable way and you really do learn something of value along the way.

Anyone involved with any programming language should read this book.

Elemental Design Patterns

posted by tadanderson at 5:29 PM

0 Comments:

Post a Comment

<< Home

Previous Posts

  • The Scrum Field Guide: Practical Advice for Your F...
  • Designing Silverlight Business Applications: Best ...
  • Java Application Architecture: Modularity Patterns...
  • Programming iOS 5: Fundamentals of iPhone, iPad, a...
  • Software Engineering Best Practices: Lessons from ...
  • Microsoft SharePoint 2010 Web Applications The Com...
  • C# 4.0 The Complete Reference Book Review
  • Why is Scrum so widely adopted and so very dangero...
  • Microsoft SQL Server 2012 A Beginners Guide Book R...
  • Microsoft SQL Server 2012 Reporting Services Book ...



Powered by Blogger