Design principles and OOP
Build a practical understanding of design principles and oop from the underlying principles.
DESIGN · 71 ARTICLES
Good design begins with reducing the cost of change. Connect object-oriented principles, design patterns, dependencies, and modularization into one practical flow.
Topic map
Build a practical understanding of design principles and oop from the underlying principles.
Build a practical understanding of design patterns from the underlying principles.
Build a practical understanding of dependency design from the underlying principles.
Build a practical understanding of modularization from the underlying principles.
Start here
A guided path from fundamentals to the next step.
You have probably been asked at least once in an interview, “Could you explain the SOLID principles?”
Read articleThe question “Do we still need to study design patterns?” comes up regularly in developer communities.
Read articleAs projects grow, changing one file becomes increasingly intimidating. It is hard to tell how far the impact will spread.
Read articleAll articles
Factory is a Swift DI library that catches missing dependency registrations at compile time. As of July 2026, this guide covers version 3.3.1, basic usage, scope declarations, test and preview injection, and differences from Swinject.
Read articleKnuth’s statement that “premature optimization is the root of all evil” is a truncated quote. This article explains the original context—forget the 97% and focus on the 3%—and the practical rule of optimizing after confirming bottlenecks with a profiler.
Read articleProtocol-oriented programming (POP) designs types around what they can do, not what they inherit. This article covers where inheritance falls short, how to solve it by composing protocols, and when to avoid it, with Swift examples.
Read articleMediator coordinates tangled object relationships centrally, Observer broadcasts state changes one-to-many, and Facade wraps complex internals behind a simple entry point. Compare the three patterns and selection criteria with Swift examples.
Read articleDI, IoC, and DIP are concepts at different levels. DIP is the principle that determines what to depend on, IoC is about who holds control, and DI is the technique of supplying dependencies. This guide covers the distinctions with examples and interview answers.
Read articleWhen studying OOP, we always start by memorizing inheritance, encapsulation, and polymorphism.
Read articleHave you ever gotten stuck trying to build an undo feature yourself?
Read articleYou’ve probably heard someone say in a code review, “Please add final to this class.”
Read articleHave you ever had this moment while studying design patterns?
Read articleWhen studying object-oriented programming (OOP), you inevitably encounter a major stumbling block.
Read articleThe GoF Factory Method delegates the decision of an object's concrete type to subclasses, while Abstract Factory creates families of related products together. This article compares their intent and selection criteria with Swift examples.
Read articleAt some point while developing for iOS, this question comes up.
Read article