What's this about?
For the longest time, Ruby and Rails developers had gems and engines as their main tools for creating structure to manage large-scale structures within their applications. This book is about a new tool in their toolbelt: packages.
Based on the work on packwerk by Shopify packages allow a much more fluid move to modularization then components ever did. The effects are astounding: discussions about where to draw boundaries can be far less technical and focus more on the business because the underlying technology gets out of the way.
The concept underlying this is gradual modularization, which the author expects we will see spread into other languages and frameworks over the coming years. Why? Because gradual modularization allows for a not-before seen level of approachability and flexibility to modularization work. Work that required difficult decisions that were hard to reverse changes. Those decisions are now the extreme points on a spectrum of options where the right thing for the team can be somewhere in between.
You'll Learn
Author
Stephan Hagemann
Stephan has built a career helping organizations like Humana and Volkswagen rethink their approach to software and cloud based architectures.
Stephan prides himself in building robust systems that stand the test of time and are only as complex as they need to be to accomplish the task. He likes his programming language to get out of the way. He has most experience with Ruby, JavaScript, Java, and Go but he is happy to dabble in any language. In his book, Component-based Rails Applications, he outlines best practices for pushing Ruby to new levels of performance and maintainability. His new book, Gradual Modularization for Ruby and Rails, revamps and expands on the ideas of components based on recent the development of package-based modularization.
Native to Germany, Stephan received his master and doctorate in Information Systems from the University of Muenster. He is part of Engineering at Gusto. He lives with his wife and dog in Boulder, Colorado.