Design practice

Software Design Essentials

Design patterns, SOLID, clean and hexagonal architecture and domain-driven design: how to structure code so it stays easy to change.

7 lessons1 h 15 minIntermediate

0/7

What you'll learn

0 of 7 lessons complete

Who this is for and what you will be able to do

Who this is for

Developers who can write working programs and want to structure them well: for larger codebases, for reviews and for design interviews.

After this course you will be able to

  • Learn design patterns efficiently, and know when not to use them
  • Apply the SOLID principles to spot and fix rigid, fragile code
  • Recognise and use the common creational, structural and behavioural patterns
  • Organise an application with clean and hexagonal architecture
  • Model a business domain with domain-driven design concepts

How a lesson works

  • Interactive diagram

    See how each component connects, then run a request through it.

  • Plain-words toggle

    Switch between the technical explanation and a plain-language one.

  • Practice design

    Change a design of your own in the builder and see how it holds up.

  • Quiz and exercise

    Test your understanding before moving on.

Go deeper

These lessons are written from scratch. The books below are excellent next reads.