Information Holder model Structurer Service Provider Coordinator signal handler Controller Interfacer
20
1. Introduce Interfacers 2. Consolidate Controller role 3. Strip side effects off Information Holders
21
Heuristics not commandments
22
No long refactoring journeys Do it daily
Description:
Explore refactoring techniques for legacy Django applications using Object-Oriented Programming principles in this 40-minute EuroPython 2021 conference talk. Learn how to leverage OOP concepts to improve code quality and manage complex logic without resorting to outdated practices. Discover three key OOP stereotypes - Controller, Interfacer, and Information Holder - and their practical application in real-world legacy project refactoring. Gain insights into refactoring strategies, the importance of gradual improvements, and how to avoid common pitfalls like big-bang rewrites. Understand the role of essential complexity in software development and explore concepts such as inheritance, composition, encapsulation, abstraction, and polymorphism. Delve into practical heuristics for code organization, including the "Tell, Don't Ask" principle and the application of role stereotypes. Suitable for intermediate to advanced developers with experience in web application development and basic knowledge of Django.
Read more