100 Sci-Fi & Fantasy Shop Costumes Learn more nav_sap_SWP_6M_fly_beacon $5 Albums All-New Fire TV Stick with Voice Remote Introducing Handmade New Kitchen Scale from AmazonBasics Amazon Gift Card Offer redoaks redoaks redoaks  Amazon Echo Starting at $49.99 Kindle Voyage UnchartedBundle Shop Now STEM Toys & Games

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
  • Android

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

Digital List Price: $39.99
Kindle Price: $31.19

Save $23.80 (43%)

These promotions will be applied to this item:

Some promotions may be combined; others are not eligible to be combined with other offers. For details, please see the Terms & Conditions associated with these promotions.

Deliver to your Kindle or other device

Deliver to your Kindle or other device

Flip to back Flip to front
Audible Narration Playing... Paused   You are listening to a sample of the Audible narration for this Kindle book.
Learn more

Refactoring: Ruby Edition (Addison-Wesley Professional Ruby Series) Kindle Edition

9 customer reviews

Rent from
Amazon Price
New from Used from
"Please retry"

Length: 480 pages Enhanced Typesetting: Enabled
  • Due to its large file size, this book may take longer to download

Best Books of the Month
Best Books of the Month
Want to know our Editors' picks for the best books of the month? Browse Best Books of the Month, featuring our favorite new books in more than a dozen categories.

Editorial Reviews

From the Back Cover

The Definitive Refactoring Guide, Fully Revamped for Ruby


With refactoring, programmers can transform even the most chaotic software into well-designed systems that are far easier to evolve and maintain. What's more, they can do it one step at a time, through a series of simple, proven steps. Now, there's an authoritative and extensively updated version of Martin Fowler's classic refactoring book that utilizes Ruby examples and idioms throughout-not code adapted from Java or any other environment.


The authors introduce a detailed catalog of more than 70 proven Ruby refactorings, with specific guidance on when to apply each of them, step-by-step instructions for using them, and example code illustrating how they work. Many of the authors' refactorings use powerful Ruby-specific features, and all code samples are available for download.


Leveraging Fowler's original concepts, the authors show how to perform refactoring in a controlled, efficient, incremental manner, so you methodically improve your code's structure without introducing new bugs. Whatever your role in writing or maintaining Ruby code, this book will be an indispensable resource.


This book will help you

•    Understand the core principles of refactoring and the reasons for doing it

•    Recognize “bad smells” in your Ruby code

•    Rework bad designs into well-designed code, one step at a time

•    Build tests to make sure your refactorings work properly

•    Understand the challenges of refactoring and how they can be overcome

•    Compose methods to package code properly

•    Move features between objects to place responsibilities where they fit best

•    Organize data to make it easier to work with

•    Simplify conditional expressions and make more effective use of polymorphism

•    Create interfaces that are easier to understand and use

•    Generalize more effectively

•    Perform larger refactorings that transform entire software systems and may take months or years

•    Successfully refactor Ruby on Rails code

About the Author

Jay F ields is a software developer for DRW Trading and a frequent conference presenter. Jay has a passion for discovering and maturing innovative solutions. Jay’s website is available at www.jayfields.com.


Shane Harvie has delivered software in Agile environments in the United States, India, and Australia. He works for DRW Trading in Chicago and blogs at www.shaneharvie.com.


Martin Fowler is Chief Scientist at ThoughtWorks and one of the world’s leading experts in the effective design of enterprise software. He has pioneered object-oriented development, patterns, agile methodologies, domain modeling, UML, and Extreme Programming. His books include Refactoring, Analysis Patterns, and UML Distilled. His book, Patterns of Enterprise Application Architecture, won Software Development’s Jolt Productivity Award and Javaworld.com’s best Java book award.


Product Details

  • File Size: 16580 KB
  • Print Length: 480 pages
  • Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
  • Publisher: Addison-Wesley Professional; 1 edition (October 15, 2009)
  • Publication Date: October 15, 2009
  • Sold by: Amazon Digital Services, Inc.
  • Language: English
  • Text-to-Speech: Enabled
  • X-Ray:
  • Word Wise: Not Enabled
  • Lending: Not Enabled
  • Enhanced Typesetting: Enabled
  • Amazon Best Sellers Rank: #432,359 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
  •  Would you like to give feedback on images?

More About the Authors

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews

51 of 52 people found the following review helpful By T. Holahan on January 8, 2010
Format: Hardcover Verified Purchase
I've been reading "Refactoring, Ruby Edition" alongside the original edition, which I bought used a few months ago, not knowing that this book was in the works.

One thing I've learned is that the original is an excellent book, one that probably ranks with "Design Patterns" in practical programming literature. Second, the revising authors added some valuable new material on refactoring in a Ruby environment.

However, "Refactoring, Ruby Edition" seems in some ways to be a sloppy and poorly-edited attempt to cash in on the original. I've found errors on almost every page I've read. It looks as if someone cut and paste the text from the original into a new document, quickly converted the Java examples to Ruby (without testing or review, given some of the errors), and went to press.

My guess is that this was the idea of someone who knows that there are lots of new Ruby programmers who don't have a grounding in Java and are therefore intimidated by the original book. That idea is fine -- Russ Olsen's "Design Patterns in Ruby" seems to be a thorough and careful reworking of that book for a Ruby audience -- but the execution here is really lame. Here are some specifics:

* There are many errors in the code examples and UML diagrams that make them difficult to follow. Until you realize they're errors, you think you're missing something; that kind of thing is tough for novice programmers to identify and correct for. (Ironically, given that the name of the book is "refactoring", these errors aren't in the first edition.)

* The original edition contained illustrative anecdotes about refactoring practice that were clearly presented as call-outs with graphic design techniques like boxing and shaded backgrounds.
Read more ›
17 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
20 of 22 people found the following review helpful By Jeff M. Dean on January 30, 2010
Format: Hardcover Verified Purchase
If you are familiar with the Java version, you won't learn anything new from this book. If you are learning Ruby and are interested in this book, you should at least wait for a later edition that will hopefully fix all of the typos and mistakes.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
3 of 3 people found the following review helpful By newlix on April 23, 2014
Format: Kindle Edition
It's much better to read the original edition even if you have to translate JAVA into Ruby.
There are so many errors.
Many refactorings start at the end of a page and are immediately cut by the page. It is a very unpleasant reading experience.
Strongly recommend go for the classic JAVA edition.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
2 of 2 people found the following review helpful By Costa Michele on February 20, 2014
Format: Paperback
I do not read original book by Fowler, but found the information on this one very useful when dealing with pre-existent (legacy) ruby code and when writing my brand new routines too.

What i dislike more is that it's obvious the book has been written by different authors:
- Fowler clearly wrote first chapters: writing style is elegant and clear, letting you avid for more.
- starting from chapter 4 you immediately notice Martin has left; by the way i found Sandy Metz work on the topic much more enjoyable (practical object-oriented design in ruby, chapter 9)
- when you start patterns implementation chapters (from 5 on) again you found a less expert writer: information are very useful to me, if you are ready for repetitive/buggy examples (more than once i get confused by same snippet used for both confirming/confuting a particular pattern, until i realize refactoring is a matter of developer's sensibility/experience).

At the end this is a useful volume, but i would have preferred it to be written by a single author:
- Fowler: you'd probably end up having a more conceptual, elegant written book, with less (but relevant) examples
- Fields: the entire book would probably consist of chapters 5-13, being more practical and concise (300 pages long)
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
0 of 1 people found the following review helpful By Vlad GURDIGA on July 8, 2013
Format: Kindle Edition Verified Purchase
Even if you’ve read the original “Refactoring”, Ruby is original enough to find many interesting Ruby-specific approaches in this version.

And although the purely technical and immediately practical part of the book is of course invaluable, I liked the most the closing chapter 13: “Putting it all together”. I know this is may be only me, and I don’t mind that. ;)

Here is one of the take-away quotes:

“Stopping is the strongest move in the refactorer’s repertoire.”
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again


Have something you'd like to share about this product?
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions