SlaveCode
.
Academy
DSA
Resources
System Design
More
Toggle theme (Current: Custom)
Software Design and Architecture Roadmap | SlaveCode
Software Design and Architecture
Step by step guide to learn software design and architecture
Back
Roadmap
Vedios and Other Resources
Projects
AI Tutor
Software Design & Architecture
Minimap of Topics
Primary Principles
Paradigm Features
Also visit Khalil's guide covering how to
learn Software Design & Architecture
Continue learning with following roadmaps
Backend Developer Roadmap
Software Design and Architecture
Backend
System Design
Clean Code
Programming Paradigms
Object Oriented Programming
Design Principles
Design Patterns
Architectural Principles
Architectural Styles
Architectural Patterns
Enterprise Patterns
Clean Code Principles
Be consistent
Meaningful names over comments
Indentation and Code Style
Keep methods / classes / files small
Pure functions
Minimize cyclomatic complexity
Avoid passing nulls, booleans
Keep framework code distant
Use correct constructs
Tests should be fast and independent
Organize code by actor it belongs to
Command query separation
Keep it simple and refactor often
Programming Paradigms
Structured Programming
Functional Programming
Object Oriented Programming
Object Oriented Programming
Model-Driven Design
Domain Models
Class Variants
Layered Architectures
Domain Language
Anemic Models
Abstract Classes
Concrete Classes
Scope / Visibility
Interfaces
Inheritance
Polymorphism
Abstraction
Encapsulation
Design Principles
Composition over Inheritance
Encapsulate what varies
Program against abstractions
Hollywood Principle
Law of Demeter
Tell, don't ask
SOLID
DRY
YAGNI
Design Patterns
GoF Design Patterns
PoSA Patterns
Architectural Principles
Component Principles
Policy vs Detail
Coupling and Cohesion
Boundaries
Architectural Styles
Messaging
Event-Driven
Publish-Subscribe
Distributed
Client-Server
Peer-to-Peer
Structural
Component-Based
Monolithic
Layered
Architectural Patterns
Domain-Driven Design
Model-View Controller
Microservices
Blackboard Pattern
Microkernel
Serverless Architecture
Message Queues / Streams
Event Sourcing
SOA
CQRS
Enterprise Patterns
DTOs
Identity Maps
Usecases
Repositories
Mappers
Transaction Script
Commands / Queries
Value Objects
Domain Models
Entities
ORMs