**As a Dev, I need to Refactor, to make codebase Refactorable**. Let's achieve this goal through a least spoken, yet most effective Method - **Component Isolation**. Let's discuss how to overcome major **Obstacles** that hinder this goal, and **Metrics** that help measure our success.
## Audience & Take-aways
- This applies to software developers at all levels. I use **Java** to demonstrate the code snippets, but this talk is about Software Design and is agnostic of programming language.
- Refactoring is **NOT** moving lines of code around with IDE shortcuts. The **USP** for this talk is, it takes a unique approach to Refactoring i.e., Component Isolation and provides persuasive arguments against factors that cause __quantum-entanglement__ among components.
- Take-aways for the audiences are:
- How isolated components can build long-lasting structures, keeping rate of entropy growth in check.
- How to use **MOM** process (Methods, Obstacles and Metrics), to build a case for your Refactoring story and pitch it to your team and Manager for funding.
- How to eliminate __Exceptions__ from your code using **ADTs (Algebraic Data Types)**.
- How to replace __Shared Global mutable state on your Shared Code__ with **Immutability** and **Data Transformations**.
- Demo a hello-real-world service with these problems and how applying these simple methods can change the face of this service, thereby reducing the cognitive complexity and organically boosting the testability.
- Metric-driven approach to objectively realize the results and improvements achieved.