So you've just graduated from a bootcamp and you're starting your first real job in software development. You've got several Rails apps under your belt and you're excited to get started. But few jobs offer the opportunity to build new apps; it's much more likely that you will be part of a team charged with maintaining and growing a legacy application. How can you get started working on an aging codebase when the sum of your experience so far was with greenfield apps?
This talk will cover a variety of scenarios related to getting to know a legacy codebase, including understanding the domain models, coping with a monolithic application, dealing with custom gems and monkey patches, and finding (or creating) the documentation necessary to really get a full grasp of the system you are charged with maintaining.
The approach will focus on practical and step-by-step techniques. For example, for solving the challenge of understanding of the legacy application's domain models, I will explore how a combination of code reading strategies, analysis of inheritance patterns, and object model graphing tools can help clarify the role of each class in the overall application. These techniques can hopefully create a starting point for understanding a given application's inherent architecture and design philosophy.