Practical Object Oriented Design in Ruby
Seiten
2012
Addison-Wesley Educational Publishers Inc (Verlag)
978-0-321-72133-4 (ISBN)
Addison-Wesley Educational Publishers Inc (Verlag)
978-0-321-72133-4 (ISBN)
- Titel erscheint in neuer Auflage
- Artikel merken
Zu diesem Artikel existiert eine Nachauflage
The Complete Guide to Writing More Maintainable, Manageable, Pleasing, and Powerful Ruby Applications
Ruby's widely admired ease of use has a downside: Too many Ruby and Rails applications have been created without concern for their long-term maintenance or evolution. The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples. Sandi Metz has distilled a lifetime of conversations and presentations about object-oriented design into a set of Ruby-focused practices for crafting manageable, extensible, and pleasing code. She shows you how to build new applications that can survive success and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples, all downloadable from the companion Web site, poodr.info. The first title to focus squarely on object-oriented Ruby application design, Practical Object-Oriented Design in Ruby will guide you to superior outcomes, whatever your previous Ruby experience.
Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues.
This guide will help you
Ruby's widely admired ease of use has a downside: Too many Ruby and Rails applications have been created without concern for their long-term maintenance or evolution. The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples. Sandi Metz has distilled a lifetime of conversations and presentations about object-oriented design into a set of Ruby-focused practices for crafting manageable, extensible, and pleasing code. She shows you how to build new applications that can survive success and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples, all downloadable from the companion Web site, poodr.info. The first title to focus squarely on object-oriented Ruby application design, Practical Object-Oriented Design in Ruby will guide you to superior outcomes, whatever your previous Ruby experience.
Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues.
This guide will help you
- Understand how object-oriented programming can help you craft Ruby code that is easier to maintain and upgrade
- Decide what belongs in a single Ruby class
- Avoid entangling objects that should be kept separate
- Define flexible interfaces among objects
- Reduce programming overhead costs with duck typing
- Successfully apply inheritance
- Build objects via composition
- Design cost-effective tests
- Solve common problems associated with poorly designed Ruby code
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.
Foreword xv
Introduction xvii
Acknowledgments xxi
About the Author xxiii
Chapter 1: Object-Oriented Design 1
- In Praise of Design 2
- The Tools of Design 4
- The Act of Design 7
- A Brief Introduction to Object-Oriented Programming 11
- Summary 14
- Deciding What Belongs in a Class 16
- Grouping Methods into Classes 16
- Organizing Code to Allow for Easy Changes 16
- Creating Classes That Have a Single Responsibility 17
- Writing Code That Embraces Change 24
- Finally, the Real Wheel 33
- Summary 34
- Understanding Dependencies 36
- Writing Loosely Coupled Code 39
- Managing Dependency Direction 51
- Summary 57
- Understanding Interfaces 59
- Defining Interfaces 61
- Public Interfaces 62
- Private Interfaces 62
- Responsibilities, Dependencies, and Interfaces 62
- Finding the Public Interface 63
- Writing Code That Puts Its Best (Inter)Face Forward 76
- The Law of Demeter 80
- Summary 83
- Understanding Duck Typing 85
- Writing Code That Relies on Ducks 95
- Conquering a Fear of Duck Typing 100
- Summary 104
- Understanding Classical Inheritance 105
- Recognizing Where to Use Inheritance 106
- Misapplying Inheritance 114
- Finding the Abstraction 116
- Managing Coupling Between Superclasses and Subclasses 129
- Summary 139
- Understanding Roles 142
- Writing Inheritable Code 158
- Summary 162
- Composing a Bicycle of Parts 164
- Composing the Parts Object 168
- Manufacturing Parts 176
- The Composed Bicycle 180
- Deciding Between Inheritance and Composition 184
- Summary 190
- Intentional Testing 192
- Testing Incoming Messages 200
- Testing Private Methods 213
- Testing Outgoing Messages 215
- Testing Duck Types 219
- Testing Inherited Code 229
- Summary 240
Afterword 241
Index 243
Erscheint lt. Verlag | 20.9.2012 |
---|---|
Reihe/Serie | Addison-Wesley Professional Ruby Series |
Zusatzinfo | illustrations |
Verlagsort | New Jersey |
Sprache | englisch |
Maße | 178 x 232 mm |
Gewicht | 500 g |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Informatik ► Software Entwicklung ► Objektorientierung | |
ISBN-10 | 0-321-72133-0 / 0321721330 |
ISBN-13 | 978-0-321-72133-4 / 9780321721334 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
Mehr entdecken
aus dem Bereich
aus dem Bereich
objektorientierte Entwicklung modularer Maschinen für die digitale …
Buch | Hardcover (2024)
Hanser (Verlag)
44,99 €
Entwicklung von GUIs für verschiedene Betriebssysteme
Buch (2023)
Hanser, Carl (Verlag)
39,99 €
Principles and Practice Using C++
Buch | Softcover (2024)
Addison Wesley (Verlag)
85,95 €