£19.66
FREE Delivery in the UK.
In stock.
Dispatched from and sold by Amazon. Gift-wrap available.
Practical Object-Oriented... has been added to your Basket
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby) Paperback – 15 Sep 2012

4.9 out of 5 stars 21 customer reviews

See all formats and editions Hide other formats and editions
Amazon Price
New from Used from
Kindle Edition
"Please retry"
Paperback
"Please retry"
£19.66
£15.79 £25.06
Promotion Message 10% Bulk Discount 1 Promotion(s)

Note: This item is eligible for click and collect. Details
Pick up your parcel at a time and place that suits you.
  • Choose from over 13,000 locations across the UK
  • Prime members get unlimited deliveries at no additional cost
How to order to an Amazon Pickup Location?
  1. Find your preferred location and add it to your address book
  2. Dispatch to this address when you check out
Learn more
£19.66 FREE Delivery in the UK. In stock. Dispatched from and sold by Amazon. Gift-wrap available.
click to open popover

Special Offers and Product Promotions

  • Save 10% on Books for Schools offered by Amazon.co.uk when you purchase 10 or more of the same book. Here's how (terms and conditions apply) Enter code SCHOOLS2016 at checkout. Here's how (terms and conditions apply)

Frequently Bought Together

  • Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby)
  • +
  • The Well-Grounded Rubyist
  • +
  • Eloquent Ruby (Addison-Wesley Professional Ruby)
Total price: £63.05
Buy the selected items together

Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

  • Apple
  • Android
  • Windows Phone

To get the free app, enter your mobile phone number.




Product details

  • Paperback: 272 pages
  • Publisher: Addison-Wesley Professional; 1 edition (15 Sept. 2012)
  • Language: English
  • ISBN-10: 0321721330
  • ISBN-13: 978-0321721334
  • Product Dimensions: 17.5 x 1.8 x 22.9 cm
  • Average Customer Review: 4.9 out of 5 stars  See all reviews (21 customer reviews)
  • Amazon Bestsellers Rank: 23,007 in Books (See Top 100 in Books)
  • See Complete Table of Contents

Product Description

Review

 “This is great stuff! Your descriptions are so vibrant and vivid that I’m rediscovering the truth buried in OO principles that are otherwise so internalized that I forget to explore them. Your thoughts on design and knowing the future are especially eloquent.”

—Ian McFarland, President, New Context, Inc.

 

“As a self-taught programmer, this was an extremely helpful dive into some OOP concepts that I could definitely stand to become better acquainted with! And, I’m not alone: there’s a sign posted at work that reads, ‘WWSMD? – What Would Sandi Metz Do?’”

—Jonathan Mukai, Pivotal in NYC

 

“Meticulously pragmatic and exquisitely articulate, Practical Object Oriented Design in Ruby makes otherwise elusive knowledge available to an audience which desperately needs it. The prescriptions are appropriate both as rules for novices and as guidelines for experienced professionals.”

—Katrina Owen, developer, Bengler

 

“I do believe this will be the most important Ruby book of 2012. Not only is the book 100% on-point, Sandi has an easy writing style with lots of great analogies that drive every point home.”

—Avdi Grimm, Author of Exceptional Ruby and Objects on Rails



“While Ruby is an object-oriented language, little time is spent in the documentation on what OO truly means or how it should direct the way we build programs. Here Metz brings it to the fore, covering most of the key principles of OO development and design in an engaging, easy-to-understand manner. This is a must for any respectable Ruby bookshelf.”

–Peter Cooper, editor, Ruby Weekly

 

“So good, I couldn’t put it down! This is a must-read for anyone wanting to do object-oriented programming in any language, not to mention it has completely changed the way I approach testing.”

–Charles Max Wood, video and audio show host, TeachMeToCode.com

 

“Distilling scary OO design practices with clear-cut examples and explanations makes this a book or novices and experts alike. It is well worth the study by anyone interested in OO design being done right and ‘light.’ I thoroughly enjoyed this book.”

–Manuel Pais, editor, InfoQ.com

 

“If you call yourself a Ruby programmer, you should read this book. It’s jam-packed with great nuggets of practical advice and coding techniques that you can start applying immediately in your projects.”

–Ylan Segal, San Diego Ruby User Group

 

“This is the best OO book I’ve ever read. It’s short, sweet, but potent. It slowly moves from simple techniques to more advanced, each example improving on the last. The ideas it presents are useful not just in Ruby but in static languages like C# too. Highly recommended!”

–Kevin Berridge, software engineering manager, Pointe Blank Solutions, and organizer, Burning River Developers Meetup

 

“The book is just perfect! The elegance of Ruby shines but it also works as an A to Z of object-oriented programming in general.”

–Emil Rondahl, C# & .NET consultant

 

“This is an exceptional Ruby book, in which Metz offers a practical look at writing maintainable, clean, idiomatic code in Ruby. Absolutely fantastic, recommended for my Ruby hacker friends.”

–Zachary “Zee” Spencer, freelancer & coach

 

“This is the best programming book I’ve read in ages. Sandi talks about basic principles, but these are things we’re probably still doing wrong and she shows us why and how. The book has the perfect mix of code, diagrams, and words. I can’t recommend it enough and if you’re serious about being a better programmer, you’ll read it and agree.

–Derick Hitchcock, senior developer, SciMed Solutions

 

“I predict this will become a classic. I have an uncomfortable familiarity with programming literature, and this book is on a completely different level. I am astonished when I find a book that offers new insights and ideas, and even more surprised when it can do so, not just once, but throughout the pages. This book is excellently written, well-organized, with lucid explanations of technical programming concepts.”

–Han S. Kang, software engineer and member of the LA Rubyists

 

“You should read this book if you write software for a living. The future developers who inherit your code will thank you.”

–Jose Fernandez, senior software engineer at New Relic

 

“Metz’s take on the subject is rooted strongly in theory, but the explanation always stays grounded in real world concerns, which helped me to internalize it. The book is clear and concise, yet achieves a tone that is more friendly than terse.”

–Alex Strasheim, network administrator, Ensemble Travel Group

 

“This is an amazing book about just how to do object-oriented thinking when you’re programming in Ruby. Although there are some chapters that are more Ruby-specific, this book could be a great resource for developers in any language. All in all, I can’t recommend this book enough.”

–James Hwang, thriceprime.com

 

“Whether you’re just getting started in your software development career, or you’ve been coding for years (like I have), it’s likely that you’ll learn a lot from Ms. Metz’s book. She does a fantastic job of explaining the whys of well-designed software along with the hows.”

–Gabe Hollombe, software craftsman, avantbard.com

 

“In short, this is in my top five programming books I’ve ever read. I believe that in twenty years this will be considered one of the definitive works on object-oriented programming. I plan to re-read it at least once a year to keep my skills from falling into atrophy. If you’re a relatively new, intermediate, or even somewhat advanced OO developer in any language, purchasing this book is the best way I know to level up your OO design skills.”

–Brandon Hays, freelance software developer

About the Author

Sandi Metz has thirty years of experience working on projects that survived to grow and change. She now writes code every day as a software architect at Duke University, where her team solves real problems for customers who have large object-oriented applications that have been evolving for more than fifteen years. She has spoken at Ruby Nation and speaks regularly at the Gotham Ruby Users Conference.

 


Customer Reviews

4.9 out of 5 stars
5 star
19
4 star
2
3 star
0
2 star
0
1 star
0
See all 21 customer reviews
Share your thoughts with other customers

Top Customer Reviews

Format: Paperback Verified Purchase
There are very few books out there that change the way you think about how to develop software and this is one of them, it's wonderfully written and I love the fact that the author uses practical examples throughout to really help how this can relate to code your working on right now.

Two of the really stand out moments in the book for me:

1. I have known about SRP and the act of assigning responsibilities to objects so this was not new, but in chapter 4 the emphasis is switched to the messages passing between objects and using this to drive out what objects are needed this was a real eye opener for me and has changed the way I go about designing software

2. Unit testing has always felt like a tricky balance between going overboard and creating unit tests that are so ingrained with how each object does it's work that making a change requires all the related tests to be changed which then leads to the other end of the spectrum were we are so burned by this that we start to leave out unit tests for fearing what will happen when we want to make a change to an objects behaviour. In chapter 9 the author writes what I would consider should be compulsory reading for anyone before embarking on using unit tests especially TDD/BDD to know from the start how to go about writing unit tests correctly.

If your worried about it using Ruby, don't be I come from a C# background and have never written a line of Ruby, it's such an expressive language it shouldn't matter what language background you come from you will get tremendous value from this book.
Comment 3 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Kindle Edition Verified Purchase
The book content is excellent, I recommend it for all programmers interested in good development techniques even if they aren't using Ruby.

I've rated it 4 stars however because the eBook doesn't have proper page numbers, so comparing notes with those with a physical book is impossible (which is such a shame).
Comment One person found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
No matter your skill level this book is a must read. It's very well written and engaging throughout. If you care about writing good code this book is for you.

I recommend searching for Sandi Metz's talks on Hashrocket's "Lunch n' Learn". Especially the "Defining Object-Orientated Design" talk. Excellent stuff.
Comment 3 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
Well written, easy to understand examples explain Sandi's well thought out guide to agile working and building programs in Ruby with design in mind.

A focus on making the pieces of your app easy to change and reuse make this an extremely useful book for programmers of all levels.

This book has really helped me to step up my understanding of OOP and has opened my eyes to a number of concepts that I'd never considered that will greatly improve my code going forward.

Can't recommend this book enough.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
This book is brilliant. After reading it I returned to my code and started applying what I learned. The result is really amazing!! I will be returning to this book again and again to go deeper into its meaning. I can not wait until I get to design something new as it will be even more efficient than working with existing poorly designed code!
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
This book made me improve a lot as a software engineer. It solves many questions we get when we're junior ruby devs and makes de difference between ruby code that workst but is a mess and good designed ruby architecture that is easy to change.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
It's worth 5 stars just for the prose. It's a joy to read. Out-smokes books three times its length. Doesn't contain anything particularly new, but it does everything very well. A good book to have if you want to read about well-crafted software from a design and coding point of view.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
A very well written exploration of object orientated design approaches for a strongly dynamically typed language.
Written for Ruby - it is equally applicable to Python.
When to use duck typing or composition, dependency injection or mixins, etc.
The code samples are minimal, as is any practical application. So this is the opposite of a Cookbook, or Manual.
But having read plenty of those recently, I felt it was all the better for that.
A pleasure to read, I would recommend this book to anyone for the clarity of its walk through of OOP design approaches available in a Ruby / Python type of language.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews



Feedback