Component-Based Rails Applications
Autor Stephan Hagemannen Limba Engleză Paperback – 22 iun 2018
Adresată dezvoltatorilor Rails de nivel intermediar și avansat, precum și arhitecților software care se confruntă cu dificultăți în scalarea monoliților, această lucrare propune o soluție structurală pentru una dintre cele mai mari provocări ale ecosistemului Ruby: mentenabilitatea pe termen lung. Observăm în Component-Based Rails Applications o trecere necesară de la entuziasmul inițial al dezvoltării rapide către rigoarea unei arhitecturi modulare. Autorul, Stephan Hagemann, nu se limitează la teorie, ci oferă o metodologie practică, pas cu pas, pentru a transforma aplicațiile „indispensabile, dar greu de gestionat” în sisteme compuse din părți vizibile și testabile individual. Pe linia practică a volumului Layered Design for Ruby on Rails Applications de Vladimir Dementyev, dar cu un focus specific pe componentizarea prin engine-uri și gem-uri, Hagemann demonstrează cum pot fi izolate responsabilitățile în cadrul unei baze de cod complexe. Subliniem abordarea progresivă a cărții: după o introducere în conceptul de „Component-Based Ruby”, textul ghidează cititorul prin crearea unei aplicații de la zero, urmată de tehnici de refactorizare prin extracție. Descoperim aici soluții pentru probleme tehnice granulare, de la gestionarea activelor (assets) și a migrațiilor bazei de date în interiorul componentelor, până la strategii de testare unitară și integrare. Structura este logică și orientată spre fluxul de lucru real: capitolele despre instrumente (tooling) și deployment preced tehnicile avansate de refactorizare. Comparativ cu Crafting Rails 4 Applications, unde accentul cade pe extinderea framework-ului, lucrarea de față se concentrează pe organizarea logicii de business prin pattern-uri precum arhitectura hexagonală. Deși ancorată în universul Rails, tehnicile de decuplare prezentate sunt valabile pentru orice programator interesat de modularitate.
Preț: 294.61 lei
Preț vechi: 368.25 lei
-20%
Carte disponibilă
Livrare economică 01-07 mai
Livrare express 21-25 aprilie pentru 35.52 lei
Specificații
ISBN-10: 0134774582
Pagini: 304
Dimensiuni: 178 x 235 x 17 mm
Greutate: 0.54 kg
Editura: Pearson Education
De ce să citești această carte
Recomandăm această carte inginerilor software care doresc să depășească limitările arhitecturii MVC standard. Cititorul câștigă un set clar de reguli pentru a descompune o aplicație Rails masivă în componente gestionabile, reducând timpul de testare și facilitând evoluția codului. Este resursa ideală pentru a învăța cum să aplici arhitectura hexagonală și DCI într-un context Ruby real, transformând un monolit rigid într-un sistem flexibil și modern.
Despre autor
Stephan Hagemann este un expert în dezvoltare software cu o experiență vastă în ecosistemul Ruby on Rails și arhitecturi de date. Interesul său pentru structura informației și eficiența sistemelor este vizibil și în lucrările sale anterioare, precum Ma Zahlen Fur Die Assoziationsanalyse Im Data Mining, unde explorează extragerea cunoștințelor din volume mari de date, sau Unleashing Web 2.0, axată pe aplicații internet bogate. În calitatea sa de consultant și dezvoltator, Hagemann s-a specializat în modernizarea sistemelor legacy, devenind o voce autoritară în transformarea aplicațiilor Rails prin modularizare și design bazat pe componente.
Cuprins
Preface xiii
Acknowledgments xxi
About the Author xxiii
Chapter 1: Introduction to Component-Based Rails Applications 1
1.1 Component-Based Rails 2
1.2 Benefits of Component-Based Applications 4
1.3 Component-Based Ruby 13
1.4 The Application Continuum 14
1.5 Related Works 15
Chapter 2: Creating a Component-Based Application 17
2.1 The Entire App Inside a Component 18
2.2 ActiveRecord and Handling Migrations within Components 27
2.3 Handling Dependencies within Components 34
Chapter 3: Tooling for Components 49
3.1 Testing a Component 50
3.2 Testing the Main Application 65
3.3 Asset Loading for Components 74
3.4 Switching Databases 82
3.5 Deploying to Platforms-as-a-Service 86
3.6 Updating Application Dependencies 90
3.7 Proposal for a Different Application Root-Showcasing the Difference of Components' Structure 99
Chapter 4: Component Refactorings: Extracting Components Out of Components 111
4.1 Determining What to Extract: Bottom-Up 112
4.2 Refactoring: Extract Domain Gem-Predictor 120
4.3 Determining What to Extract: Top-Down 139
4.4 Refactoring: Pulling Up a UI Component-TeamsAdmin, GamesAdmin, PredictionUI, WelcomeUI 150
4.5 Refactoring: Pushing Down a Model Component-Teams, Games 168
4.6 Refactoring: Improve Naming of Component-AppComponent to WebUI 183
4.7 More Component Refactoring Patterns 189
Chapter 5: From Ball of Mud to First Components 195
5.1 Small Steps 196
5.2 One Big Step 196
Chapter 6: Component-Based Rails in Relation to Other Patterns 211
6.1 Hexagonal Architecture 212
6.2 Data-Context-Integration (DCI) 227
Chapter 7: Components in Other Languages 237
7.1 Kotlin, Java, and Gradle 238
7.2 .NET / C 241
7.3 Conclusion 243
Appendix 245
A.1 Plain versus --full versus --mountable Engines 245
A.2 How Do Engine Routes and Engine Mounting Work? 254
A.3 Additional Testing with Older Versions of Rails 261
Index 265
Descriere scurtă
The first and only guide to componentising Rails, this book offers hands-on, step-by-step coverage of
- Creating a full-fledged component-based Rails application from the ground up
- Refactoring an existing Rails application to extract components
- Using gems and engines to implement components in Ruby and Rails code bases
- Applying modern patterns such as DCI and hexagonal architecture
- Overcoming the unique challenges that arise during componentisation of Rails applications