Refactoring: Ruby Edition: Ruby Edition (Addison-Wesley Professional Ruby Series)
<P style="MARGIN: 0px"> <B>The Definitive Refactoring Guide, Fully Revamped for Ruby </B> </P> <P style="MARGIN: 0px"> </P> <P style="MARGIN: 0px">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.</P> <P style="MARGIN: 0px"> </P> <P style="MARGIN: 0px">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. </P> <P style="MARGIN: 0px"> </P> <P style="MARGIN: 0px">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. </P> <P style="MARGIN: 0px"> </P> <P style="MARGIN: 0px">This book will help you</P> <P style="MARGIN: 0px">€   Understand the core principles of refactoring and the reasons for doing it</P> <P style="MARGIN: 0px">€   Recognize €œbad smells€ in your Ruby code</P> <P style="MARGIN: 0px">€   Rework bad designs into well-designed code, one step at a time</P> <P style="MARGIN: 0px">€   Build tests to make sure your refactorings work properly</P> <P style="MARGIN: 0px">€   Understand the challenges of refactoring and how they can be overcome</P> <P style="MARGIN: 0px">€   Compose methods to package code properly</P> <P style="MARGIN: 0px">€   Move features between objects to place responsibilities where they fit best </P> <P style="MARGIN: 0px">€   Organize data to make it easier to work with</P> <P style="MARGIN: 0px">€   Simplify conditional expressions and make more effective use of polymorphism</P> <P style="MARGIN: 0px">€   Create interfaces that are easier to understand and use </P> <P style="MARGIN: 0px">€   Generalize more effectively</P> <P style="MARGIN: 0px">€   Perform larger refactorings that transform entire software systems and may take months or years</P> <P style="MARGIN: 0px">€   Successfully refactor Ruby on Rails code</P>