---
title: "Software design and architecture — ZudoJS Academy"
description: "Give code a shape that survives growth: design principles, SOLID and design patterns solving real problems, layered and clean architecture, architecture styles, and a small framework you build yourself so no framework is magic."
source: https://zudojs.oyinlola.site/learn/software-architecture
---

LEVEL 11 · BACKEND ENGINEERING

Course Core

# Software design and architecture

Give code a shape that survives growth: design principles, SOLID and design patterns solving real problems, layered and clean architecture, architecture styles, and a small framework you build yourself so no framework is magic.

- **2 lessons**
- **75 min** to read and try
- **Before this:** [TypeScript](https://zudojs.oyinlola.site/learn/typescript), [Backend engineering](https://zudojs.oyinlola.site/learn/backend)

0 of 2 lessons done

[Start lesson 1 →](https://zudojs.oyinlola.site/learn/backend-architecture)

## When you finish, you can

- Spot high coupling and low cohesion, and refactor it
- Apply SOLID, DRY, KISS and YAGNI with judgement
- Use factory, builder, adapter, decorator, proxy, strategy, observer, command and chain of responsibility where they solve a problem
- Structure a backend in layers with ports and adapters
- Compare monoliths, modular monoliths, microservices and event-driven systems
- Build and explain the parts of a backend framework

**You build:** A miniature TypeScript framework with a container, router, middleware and validation

MODULE 1

## Architecture

1. [1**Backend architecture**Give backend code a shape. Learn controllers, services, repositories, models and DTOs, middleware, dependency injection and configuration, the difference between domain, application and infrastructure code, and which way dependencies must point. Then refactor the BookStore's orders into those layers.45 min](https://zudojs.oyinlola.site/learn/backend-architecture)

MODULE 2

## Framework engineering

1. [2**What a framework does**The difference between a library and a framework, inversion of control, and the jobs a backend framework takes over: lifecycle, dependency injection, routing, configuration, validation, database access, testing and application structure. Build a tiny framework to see how it works inside.30 min](https://zudojs.oyinlola.site/learn/frameworks)

## Course checkpoint

Prove you can move on. The checkpoint picks 10 questions at random from every lesson in this course. Get 8 right to pass. Your result is saved in this browser only.
