Cantitate/Preț
Produs

Practical Object-Oriented Design

Autor Sandi Metz
en Limba Engleză Paperback – 22 aug 2018

Observăm că succesul unui software nu depinde doar de funcționalitatea sa inițială, ci de capacitatea sa de a fi modificat fără costuri exorbitante. În Practical Object-Oriented Design, Sandi Metz propune o structură progresivă care ghidează cititorul de la micro-designul unei clase la arhitectura interacțiunilor complexe. Analiza începe cu principiul responsabilității unice (Single Responsibility), oferind criterii tehnice clare pentru a decide ce logică aparține unei clase și ce trebuie extras. Apreciem modul în care ediția a doua integrează specificațiile Ruby 2.5, folosind acest limbaj ca un vehicul didactic pentru a ilustra concepte universale. De la capitolul dedicat gestionării dependențelor, unde se pune accent pe cuplajul slab (loose coupling), până la definirea interfețelor flexibile, textul oferă soluții pentru evitarea codului rigid. Pe linia practică a volumului Principles of Package Design, dar cu focus pe designul intern al aplicațiilor și pe mecanisme precum duck typing sau compoziția, cartea demonstrează cum se pot construi sisteme care „supraviețuiesc succesului”. Spre deosebire de Introduction to Software Design with Java, care adoptă o abordare academică și narativă, lucrarea lui Metz este un ghid de implementare directă. Capitolele sunt organizate pentru a rezolva probleme specifice de mentenanță: cum să reducem supraîncărcarea prin tehnici de tip compoziție și cum să aplicăm corect moștenirea. Este o resursă tehnică ce transformă teoria abstractă a obiectelor în reguli de design aplicabile imediat în fluxul de producție.

Citește tot Restrânge

Preț: 28538 lei

Preț vechi: 35673 lei
-20%

Puncte Express: 428

Carte disponibilă

Livrare economică 02-16 mai
Livrare express 18-24 aprilie pentru 3619 lei


Specificații

ISBN-13: 9780134456478
ISBN-10: 0134456475
Pagini: 288
Dimensiuni: 177 x 231 x 20 mm
Greutate: 0.54 kg
Ediția:2nd edition
Editura: Pearson Education

De ce să citești această carte

Recomandăm această carte programatorilor care doresc să scrie cod sustenabil și ușor de testat. Cititorul câștigă o metodologie clară pentru organizarea logicii de business, învățând să identifice rapid când un obiect preia prea multe responsabilități. Este un curs intensiv de bune practici care transformă programarea dintr-o serie de soluții ad-hoc într-un proces de design riguros și eficient.


Despre autor

Sandi Metz este un consultant software și autor recunoscut pentru expertiza sa în arhitectura orientată pe obiecte. Cu o carieră de peste 30 de ani în dezvoltarea de aplicații complexe, Metz s-a specializat în transformarea codului greu de întreținut în sisteme flexibile. Este o prezență influentă în comunitatea Ruby, fiind celebră pentru capacitatea de a explica principii de design dificile prin analogii simple și exemple practice. Activitatea sa educațională se concentrează pe reducerea costurilor de dezvoltare prin aplicarea corectă a tiparelor de design.


Notă biografică

Sandi Metz is a programmer, teacher, author, and sometime consultant. In the past 30+ years she has written innumerable applications and creates practical solutions that produce working software that is easy to change. She has spoken about object-oriented design and refactoring at international Ruby conferences since 2009.

Cuprins

Introduction xv
Acknowledgments xix
About the Author xxi
Chapter 1: Object-Oriented Design 1
1.1 In Praise of Design 2
1.2 The Tools of Design 4
1.3 The Act of Design 6
1.4 A Brief Introduction to Object-Oriented Programming 10
1.5 Summary 13
Chapter 2: Designing Classes with a Single Responsibility 15
2.1 Deciding What Belongs in a Class 16
2.2 Creating Classes That Have a Single Responsibility 17
2.3 Writing Code That Embraces Change 24
2.4 Finally, the Real Wheel 33
2.5 Summary 35
Chapter 3: Managing Dependencies 37
3.1 Understanding Dependencies 38
3.2 Writing Loosely Coupled Code 41
3.3 Managing Dependency Direction 53
3.4 Summary 59
Chapter 4: Creating Flexible Interfaces 61
4.1 Understanding Interfaces 61
4.2 Defining Interfaces 63
4.3 Finding the Public Interface 65
4.4 Writing Code That Puts Its Best (Inter)Face Forward 77
4.5 The Law of Demeter 80
4.6 Summary 84
Chapter 5: Reducing Costs with Duck Typing 85
5.1 Understanding Duck Typing 85
5.2 Writing Code That Relies on Ducks 95
5.3 Conquering a Fear of Duck Typing 100
5.4 Summary 103
Chapter 6: Acquiring Behavior through Inheritance 105
6.1 Understanding Classical Inheritance 105
6.2 Recognizing Where to Use Inheritance 106
6.3 Misapplying Inheritance 114
6.4 Finding the Abstraction 116
6.5 Managing Coupling between Superclasses and Subclasses 129
6.6 Summary 139
Chapter 7: Sharing Role Behavior with Modules 141
7.1 Understanding Roles 142
7.2 Writing Inheritable Code 158
7.3 Summary 161
Chapter 8: Combining Objects with Composition 163
8.1 Composing a Bicycle of Parts 163
8.2 Composing the Parts Object 168
8.3 Manufacturing Parts 176
8.4 The Composed Bicycle 181
8.5 Deciding between Inheritance and Composition 185
8.6 Summary 191
Chapter 9: Designing Cost-Effective Tests 193
9.1 Intentional Testing 194
9.2 Testing Incoming Messages 202
9.3 Testing Private Methods 215
9.4 Testing Outgoing Messages 217
9.5 Testing Duck Types 221
9.6 Testing Inherited Code 233
9.7 Summary 244
Afterword 245
Index 247

Descriere

The Complete Guide to Writing Maintainable, Manageable, Pleasing, and Powerful Object-Oriented Applications Object-oriented programming languages exist to help you create beautiful, straightforward applications that are easy to change and simple to extend. Unfortunately, the world is awash with object-oriented (OO) applications that are difficult to understand and expensive to change. Practical Object-Oriented Design, Second Edition, immerses you in an OO mindset and teaches you powerful, real-world, object-oriented design techniques with simple and practical examples. Sandi Metz demonstrates 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 in the easy-to-understand Ruby programming language, all downloadable from the companion website, poodr.com. Fully updated for Ruby 2.5, this guide shows how to Decide what belongs in a single 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 Whatever your previous object-oriented experience, this concise guide will help you achieve the superior outcomes you're looking for. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.