GuideIntermediate

Design Patterns

Learn to read someone else's code and name what you see — "this is a Strategy," "there's a God object here" — and, above all, to know when a pattern earns its complexity and when NOT to abstract, because every pattern adds indirection and indirection is a cost you pay. This guide isn't a catalog of the 23 GoF patterns to memorize: it covers the ones that actually show up in real code and in reviews, organized by the problem they solve — behavior that varies (Strategy, Template Method, State), creating objects (Factory, Builder, why you should distrust the Singleton), structure and adaptation (Adapter, Facade, Decorator, Composite), and communication between parts (Observer, Command). It also teaches the rule of three, YAGNI, and premature abstraction as the costliest mistake, and how to use patterns as review vocabulary: naming code smells (God object, feature envy, shotgun surgery) so a problem becomes actionable. You work on Boletia, an event-ticketing platform where everything varies — notification channels, payment providers, ticket types — and that also has the opposite problem: a plugin architecture built for something that will only ever have one implementation. It closes with a capstone project where you remove an abstraction that doesn't earn its keep and introduce the pattern that truly emerges from a 300-line checkout, in small, safe steps.

64
lessons
8
modules
English · Spanish
available in
Yes
certificate
Free
access
NIEVA

Outcomes

What you'll be able to do

  • Understand what patterns really are: a named solution to a recurring problem, and shared vocabulary as their real superpower
  • Recognize when NOT to abstract: the rule of three, YAGNI, and premature abstraction as the costliest mistake you can make
  • Apply patterns for behavior that varies: Strategy to swap the "how," Template Method for a shared skeleton, and State when behavior depends on state
  • Apply object-creation patterns: Factory to decide what to build in one place, Builder to assemble something complex step by step, and why to distrust the Singleton
  • Apply structure and adaptation patterns: Adapter for incompatible interfaces, Facade for a simple door to something complex, Decorator, and Composite
  • Apply communication patterns between parts: Observer to notify without knowing who's listening, coupling by event instead of direct call, and Command
  • Use patterns as code review vocabulary: name code smells (God object, feature envy, shotgun surgery) and anti-patterns in an actionable way
  • Run a capstone project: refactor two corners of Boletia — one over-patterned, one under-structured — and defend each decision with its trade-off

Before you start

What you need to bring

It's for you if...

  • Developers already working on code spanning more than one file who feel the friction of touching something and breaking something else far away
  • Devs who want to move from "I know 23 patterns by heart" to actually reading, naming, and judging them in real code
  • People who need to name structural problems in three words during a code review
  • Ideal (not required) for anyone who already completed the Software Development Foundations Guide

Requirements and materials

  • Ability to program and experience working on code spanning more than one file: functions, classes, and objects
  • Recommended (not required): the Software Development Foundations Guide completed (decomposition, coupling, cohesion, trade-offs)
  • No prior knowledge of any design pattern required
  • Examples use object-oriented Python

Content

The syllabus, module by module

Open any of them to see its lessons.

Common questions

What people usually ask

Start whenever you like

Reviews

What students say

These reviews are from enrolled students who completed at least 50% of the course. We moderate reviews only on content grounds (spam, offensive language, personal data), never for being critical or negative.

No approved reviews yet.

Be the first to share your experience!