Design

Model, View, View-Model

Domain Driven Design

Test Driven Design

Object Oriented Design

Functional Programming

Event Driven Design (Pub/Sub)