Главная
Study mode:
on
1
Intro
2
Refactoring improving the design af odsting code
3
Refactoring is a journey
4
No Refactoring
5
Big-Bang rewrite != refactoring
6
The best moment to refactor? Right before implementing a new feature
7
@staticmethod considered a code smell
8
how could this happen?
9
Essential complexity No way to escape - one needs to manage it
10
Writing classes != OOP
11
Cells creating an organism
12
Community members
13
Actors performing a play
14
Inheritance Composition Encapsulation Abstraction Polymorphism
15
Roles Responsibilities Collaborations
16
Where to put that code?
17
Role Stereotypes
18
Tell, Don't Ask
19
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

Refactoring Legacy Django App Using OOP

EuroPython Conference
Add to list
0:00 / 0:00