Module · 5 lessons

Design, Architecture & OOP

Software architecture decisions, object-oriented programming in practice, and the design patterns that give recurring problems proven solutions, all through Ledgerly, a small invoicing app.

At a glance

Level
Intermediate
Lessons
5 lessons
Time to complete
1 week
Cost
Free forever · no sign-up

Welcome to Design, Architecture & OOP, the second module of the Software Engineering Fundamentals course. With Module 1’s principles and SOLID in hand, you’re ready to make bigger structural decisions. You’ll learn the difference between architecture and low-level design, work through layered architecture and the MVC pattern, and weigh a monolith against splitting out microservices as Ledgerly — the invoicing app from Module 1 — grows.

From there, you’ll go deeper into object-oriented programming: inheritance and polymorphism through a family of payment gateways, and why composition often beats inheritance for flexibility. The module’s back half covers six of the most useful design patterns — Factory Method, Builder, and Singleton, then Adapter, Decorator, and Facade, then Strategy, Observer, and Command — each solving a real Ledgerly problem rather than a textbook toy example. A guided project closes the module by architecting and building a real refund feature end to end.

Every code example runs for real. Start with Lesson 1, where you’ll decide how Ledgerly’s architecture should evolve as the app grows.

Lessons in this module

Achievement

Complete all 5 lessons to finish the Design, Architecture & OOP module.

Start module
Sponsor

Keep DATATWEETS free. Help fund practical data, AI, and engineering lessons for learners worldwide.

Buy Me a Coffee at ko-fi.com