In this series, I talk about design patterns and principles and show you how you can use them to improve the quality of your code. All examples are in Python.
Curated by: ArjanCodes (101 videos)
🧱 Build software that lasts. Join the Software Design Mastery program → https://arjan.codes/mastery. In this video, I walk through 6 common OOP practices that seem like good design but often make your code worse, including misusing inheritance, creating unnecessary hierarchies, violating the Liskov Substitution Principle, and abstracting too early. More importantly, I'll show what to do instead so your code stays simpler, more flexible, and easier to maintain. 🔥 GitHub Repository: https://git.arjan.codes/2026/oop. 💬 Join my Discord server: https://discord.arjan.codes. ⌨️ Keyboard I’m using: https://amzn.to/49YM97v. 🔖 Chapters: 0:00 Intro 0:57 Mistake 1: Inheriting Just to Reuse Code 3:02 Mistake 2: Turning Values Into Types 6:19 Mistake 3: Modeling Independent Features With a Hierarchy 8:33 Mistake 4: Creating a Base Class That Forces One Shape on Everything 12:30 Mistake 5: Creating Subtypes That Cannot Behave Like Their Parent 15:18 Mistake 6: Abstracting Before You Understand the Similarity 17:56 What Good OOP Actually Looks Like 18:41 Final Thoughts #arjancodes #softwaredesign #python