Learn how software architecture can help you build better software. Review the role of the software architect, key theories and concepts, and common architectural patterns.
Overview
Syllabus
Introduction
- The importance of software architecture
- What you need to know
- What is software architecture?
- What's the job? Traditional architects
- What's the job? Modern architects
- A day in the life of an architect: Morning
- A day in the life of an architect: Afternoon
- From developer to architect
- Conway's law: Architecture and organizational structure
- Incremental vs. big up-front design
- Top down vs. bottom up
- The role of the domain (bounded contexts)
- Requirements gathering: Problem statements and user stories
- Narrowing: Vertical vs. horizontal splitting
- Identifying bounded contexts and entities
- System vs. enterprise architecture
- Design patterns
- Monoliths
- Microkernel (plugin) architecture
- Message-based architectures
- Microservices and miniservices
- Reactive and choreographed systems
- Next steps
Taught by
Allen Holub