Practical Object-Oriented Design in Ruby

An Agile Primer
Nicht lieferbar | Lieferzeit: Nicht lieferbar I
Alle Preise inkl. MwSt. | Versandkostenfrei
Nicht verfügbar Zum Merkzettel
Gewicht:
506 g
Format:
232x179x14 mm
Beschreibung:

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 Chapter 2: Designing Classes with a Single Responsibility 15 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 Chapter 3: Managing Dependencies 35 Understanding Dependencies 36 Writing Loosely Coupled Code 39 Managing Dependency Direction 51 Summary 57 Chapter 4: Creating Flexible Interfaces 59 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 Chapter 5: Reducing Costs with Duck Typing 85 Understanding Duck Typing 85 Writing Code That Relies on Ducks 95 Conquering a Fear of Duck Typing 100 Summary 104 Chapter 6: Acquiring Behavior Through Inheritance 105 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 Chapter 7: Sharing Role Behavior with Modules 141 Understanding Roles 142 Writing Inheritable Code 158 Summary 162 Chapter 8: Combining Objects with Composition 163 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 Chapter 9: Designing Cost-Effective Tests 191 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
Years after the initial relea

Kunden Rezensionen

Zu diesem Artikel ist noch keine Rezension vorhanden.
Helfen sie anderen Besuchern und verfassen Sie selbst eine Rezension.