The author reflects on their aversion towards inheritance in coding and how they unintentionally made coding decisions based on implicit inheritance, leading to a fragile system.
After facing issues and realizing the inflexibility of their design, the author took a step back and identified the root problem.
They recognized that they had hardcoded business logic in models and were unknowingly inheriting those behaviors across classes, leading to a rigid architecture.
To address the issue, the author stopped patching and implemented composition by creating new repository classes, allowing for more flexibility and adaptability in their coding approach.