Refactoring: Ruby Edition
by Jay Fields; Shane Harvie; Martin Fowler; Kent Beck
The Rails Way
by Obie Fernandez
Presentation Zen Design: Simple Design Principles and Techniques to Enhance Your Presentations
by Garr Reynolds
Dreamweaver CS4: The Missing Manual, 1st Edition
by David Sawyer McFarland
Learning Web Design, Third Edition
by Jennifer Niederst Robbins
ZAG: The Number-One Strategy of High-Performance Brands
by Marty Neumeier
Praise for Design Patterns in Ruby
"Design Patterns in Ruby documents smart ways to resolve many problems that Ruby developers commonly encounter. Russ Olsen has done a great job of selecting classic patterns and augmenting these with newer patterns that have special relevance for Ruby. He clearly explains each idea, making a wealth of experience available to Ruby developers for their own daily work."
—Steve Metsker, Managing Consultant with Dominion Digital, Inc.
"This book provides a great demonstration of the key 'Gang of Four' design patterns without resorting to overly technical explanations. Written in a precise, yet almost informal style, this book covers enough ground that even those without prior exposure to design patterns will soon feel confident applying them using Ruby. Olsen has done a great job to make a book about a classically 'dry' subject into such an engaging and even occasionally humorous read."
—Peter Cooper
"This book renewed my interest in understanding patterns after a decade of good intentions. Russ picked the most useful patterns for Ruby and introduced them in a straightforward and logical manner, going beyond the GoF's patterns. This book has improved my use of Ruby, and encouraged me to blow off the dust covering the GoF book."
—Mike Stok
"Design Patterns in Ruby is a great way for programmers from statically typed objectoriented languages to learn how design patterns appear in a more dynamic, flexible language like Ruby."
—Rob Sanheim, Ruby Ninja, Relevance
Most design pattern books are based on C++ and Java. But Ruby is different—and the language's unique qualities make design patterns easier to implement and use. In this book, Russ Olsen demonstrates how to combine Ruby's power and elegance with patterns, and write more sophisticated, effective software with far fewer lines of code.
After reviewing the history, concepts, and goals of design patterns, Olsen offers a quick tour of the Ruby language—enough to allow any experienced software developer to immediately utilize patterns with Ruby. The book especially calls attention to Ruby features that simplify the use of patterns, including dynamic typing, code closures, and "mixins" for easier code reuse.
Fourteen of the classic "Gang of Four" patterns are considered from the Ruby point of view, explaining what problems each pattern solves, discussing whether traditional implementations make sense in the Ruby environment, and introducing Ruby-specific improvements. You'll discover opportunities to implement patterns in just one or two lines of code, instead of the endlessly repeated boilerplate that conventional languages often require.
Design Patterns in Ruby also identifies innovative new patterns that have emerged from the Ruby community. These include ways to create custom objects with metaprogramming, as well as the ambitious Rails-based "Convention Over Configuration" pattern, designed to help integrate entire applications and frameworks.
Engaging, practical, and accessible, Design Patterns in Ruby will help you build better software while making your Ruby programming experience more rewarding.
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 18 Ratings
Concise explanation of design patterns, in Ruby. - 2009-04-02
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
If you have been programming for any extended period of time, I am sure you have started to see different patterns emerging out of your tasks. You may find you are doing the same thing over and over again, solving problems that you had previously solved in another project. These patterns can vary from smaller chunks of re-usable code, to manage the sending and receiving of email, all the way to watching over a part of your application and triggering notifications to another part of your application. This book, Design Patterns in Ruby takes several of the principles found in the widely known book, Design Patterns by The Gang of Four, and applies them to Ruby. It's a mixture of the theory behind the design patterns, and then hands-on practice applying it to your Ruby applications. While this book is centered around patterns in Ruby, it is not about teaching you Ruby. There is a brief primer in the beginning, but it comes with the understanding that you already know a little bit about the Ruby language. Now it's time to check out some of the patterns presented in this book.
WHAT ARE PATTERNS?
The book starts off with a chapter devoted to giving background to design patterns and how they can help you build better applications. This chapter isn't a history lesson. The main points of this chapter teach you about awareness. They teach you how to look at your applications, and when and where patterns could best be applied. He gives what he calls Patterns for Patterns while developing:
Separate out the things that change from the things that stay the same.
Program to an interface, not an implementation.
Prefer composition over inheritance.
Delegate, delegate, delegate.
You ain't gonna need it.
These principles provide us the glasses with which to look through as we assess our code. You will want to keep these in the back of your mind as you read through the rest of the book.
WHAT IS RUBY?
As I stated in the beginning, this book isn't about teaching you Ruby. However, the author does take the second chapter to walk you through the basics. This chapter simply shows you a bit of the syntax, types, and constructs. This intro is very brief, but probably enough to provide a reference throughout the rest of the book if you haven't worked with Ruby before. With this primer into Ruby, the author wraps up the first part of the book and we are now ready to move on to the 14 patterns covered in this book.
THE PATTERNS
Spotting patterns might not always be easy, even with the guidelines given in the first chapter. One of the strengths of this book is that each chapter poses a different problem and then tackles is using the suggested pattern. This allows you to see it in action, and allows you to get the wheels spinning on how the pattern is used and where else it could be used. After walking through each of the patterns, we are presented with a nice wrap-up of the pattern.
This book is not very long in length, so I won't go into great detail with each of the patterns, as they are covered very well in each chapter. You need the context to understand how all of the pieces fit together. So, without providing too much information, here is a list of the patterns covered in the book:
Template method
Strategy
Observer
Composite
Iterator
Command
Adapter
Proxy
Decorator
Singleton
Factory
Abstract Factory
Builder
Interpreter
If you are like me, then you will have read these chapters and be left with a desire to instantly start researching, practicing, and applying what you have learned. But we aren't done quite yet, there is still one more section to go. We now know what the patterns look like. We have seen the examples done solely in Ruby. Everything makes sense. But can we do more? Now we shift gears to look at patterns found in the Ruby language itself.
THE PATTERNS + RUBY
The Ruby language itself has several patterns that make programming Ruby fun and elegant. The last part of this book shows us a few of those patterns, as they can be used extensively while building your application patterns. If you have ever browsed through the Ruby on Rails source code, then you will have seen all of the patterns listed above, as well as the patterns in Ruby. Here are a few of those:
Domain-Specific Languages
Meta-programming
Convention over configuration
Ruby is such an elegant language to work with, and it is due in many parts to these patterns found within the language. These aren't patterns solely used by Ruby, but the English-like nature of Ruby makes it fun to both read and write with these patterns.
PARTING THOUGHTS
This book fits nicely with the Addison Wesley Professional Ruby Series, but doesn't require you to read all other books in the series to fully comprehend. While the progression of this book was done very well, starting you off with a discussion of patterns and Ruby, then diving right into the patterns, I did find myself reading this book several times. I didn't read it several times because I didn't understand it, but simply to read with a new outlook on how and where these patterns could be applied, or are currently applied out in the wild. I find this book not only to be very informative, but also an excellent reference as I look to solve different problems. If you are a programmer, you should definitely read Design Patterns. If you are a Ruby programmer, you should then read Design Patterns in Ruby.
A worthwile addition to your library - 2009-10-14
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Russ Olsen delivers an approachable introduction to design patterns using Ruby in a book that is as good for those unfamiliar with design patterns as it is for those unfamiliar with Ruby.
I enjoyed the, no-assumptions, opening that eases you into the basisc of Ruby; though I would caution Ruby new-comers from jumping into this book for their introduction to Ruby. Following the Ruby overview Russ takes you right into Gang of Four ( [...] ) design patterns.
I was particularly pleased with the final section of the book, patterns for ruby, which applies the strengths of both Ruby the language and the values created within the community of developers who love working with Ruby. The convention over configuration chapter wraps up the book with an appropriate demonstration of the power of Ruby to make life easier by embracing convention, a popular technique in the community.
While no design pattern should be generically applied to a problem this book helps ehance your understanding of the capabilities of Ruby when applied appropriately.
An entertaining way to read about Ruby - 2008-12-27
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
This book is about using Ruby to implement most of the Design Patterns described in the GoF book ([...]
If GoF is a reference, this book is almost like a novel: each chapter is dedicated to a pattern and is based on the author's past experiences (not just professional) to give it a reassuring justification.
The reason why I read the book? I was curious to find how Ruby's unique features could be used to implement those Design Patterns. Was I satisfied? Please find all stars in my ranking. And since the journey is not the destination, I also found interesting concepts along the way.
One of the things I would like to mention about the journey is how well the book highlights when, in designing your architecture, inheritance provides a too-strong coupling. All those dynamic features of Ruby are explained that can help in modularizing your architecture using composition and delegation instead of using inheritance.
The book concludes by briefly touching on meta-programming, domain-specific languages (DSL) and convention over configuration, three patterns not mentioned in the GoF book, but that "feel at home" within a Ruby environment.
Excellent introduction to Ruby for existing programmers - 2008-08-05
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
If you're already a programmer, this book an excellent way to learn Ruby. It shows how to apply a variety of common and largely language-independent programming structures ("design patterns") in "the Ruby way". Along the way, you get a great introduction to what makes Ruby unique, and the idioms commonly used in the Ruby community. I especially liked that the author often showed multiple implementations of each pattern, each implementation being more elegant and Ruby-esque than the last, and included a discussion of when each might (and might not!) be appropriate. I also appreciated the helpful discussion of the ways you might shoot yourself in the foot with each pattern in Ruby, as well as the pointers to where you could find the pattern used in Ruby "in the wild" (in various software freely available on the Internet).
Advanced Ruby programming styles and idioms - 2008-07-31
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
This is a marvelous book, ideal if you're an experienced object-oriented programmer who wants to learn to use Ruby with the idioms particular to it, and not remain frozen in the techniques of traditional, statically typed object-oriented languages. Ruby is a dynamically typed language with many unique features, and this book was invaluable in my learning to use it as such. There are 16 design patterns covered, 3 of which are particular to the Ruby development environment. With each pattern is presented first the traditional approach using Ruby as a straightforward OO language, followed by the Ruby approach which takes advantage of the idioms and techniques particular to the Ruby language. With each pattern is introduced a new Ruby idiom, making the book a tutorial in advanced Ruby programming techniques.
Top Level Categories:
Internet/Online
Programming
Sub-Categories:
Internet/Online > Web Design
Programming > Ruby
Some information on this page was provided using data from Amazon.com®. View at Amazon >