Software Design and Architecture Roadmap

Step by step guide to becoming an Android developer.

Back to home

Legend

Propose
Alternatives
Options

1 Clean Code Principles

Consistency
Meaningful Names
Indentation and Style
Keep it Small
Pure Functions
Minimize Complexity

2 Programming Paradigms

Structured Programming
Functional Programming
Object-Oriented Programming

3 Object-Oriented - In Depth

Inheritance
Polymorphism
Abstraction
Encapsulation

4 Core Design Principles

SOLID
DRY
KISS
YAGNI

5 Design Patterns

GoF Design Patterns
POSA Patterns
Model-Driven Design
Domain-Driven Design (DDD)

6 Architectural Principles

Coupling and Cohesion
Component Principles
Policy vs Detail
Boundaries

7 Architectural Styles

Monolithic Architecture
Layered Architecture
Microservices Architecture
Event-Driven Architecture
Serverless Architecture

8 Architectural Patterns

Model-View-Controller (MVC)
Microkernel
Blackboard Pattern
Publish-Subscribe Pattern

9 Enterprise Patterns

Transaction Script
Repositories
Mappers
Value Objects
ORMs

10 Domain-Driven Design (DDD)

Domain Model
Entities
Value Objects
Ubiquitous Language
Bounded Context

11 Advanced Concepts

CQRS
Event Sourcing
Queues / Message Streams
CORS

12 Learn More

Backend Roadmap
System Design Roadmap

Visit the following related paths and keep learning.