YoVDO

Refactoring Legacy Django App Using OOP

Offered By: EuroPython Conference via YouTube

Tags

EuroPython Courses Web Development Courses Django Courses Object-oriented programming Courses Polymorphism Courses Encapsulation Courses Inheritance Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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.

Syllabus

Intro
Refactoring improving the design af odsting code
Refactoring is a journey
No Refactoring
Big-Bang rewrite != refactoring
The best moment to refactor? Right before implementing a new feature
@staticmethod considered a code smell
how could this happen?
Essential complexity No way to escape - one needs to manage it
Writing classes != OOP
Cells creating an organism
Community members
Actors performing a play
Inheritance Composition Encapsulation Abstraction Polymorphism
Roles Responsibilities Collaborations
Where to put that code?
Role Stereotypes
Tell, Don't Ask
Information Holder model Structurer Service Provider Coordinator signal handler Controller Interfacer
1. Introduce Interfacers 2. Consolidate Controller role 3. Strip side effects off Information Holders
Heuristics not commandments
No long refactoring journeys Do it daily


Taught by

EuroPython Conference

Related Courses

Software as a Service
University of California, Berkeley via Coursera
Intro to Computer Science
University of Virginia via Udacity
Web Development
Udacity
Software Engineering for SaaS
University of California, Berkeley via Coursera
CS50's Introduction to Computer Science
Harvard University via edX