Kursavgift: kr 13 900 | Varighet: 2 dager
This course is aimed at people who are competent software developers, and want to broaden their skills to include system architecture. Previous experience of system development is recommended.
Printed course material included.
The Role of The Architect
- What the architect does and doesn't do.
- The architect's place in the team.
- Why architecture is hard.
- DDD: domain models, bounded contexts, ubiquitous language
- CRUD vs semantic operations
- Layered architecture
- Messages busses and queues
- State (CQS, mutable and immutable designs)
Data Access Architecture
- SOLID principles
- Inversion of Control, Dependency Injection
- Object Oriented API patterns
- Higher Order Programming API patterns
- Extensibility and maintainability
Service Oriented Architecture
- CAP, ACID and eventual consistency
- ORMs: what they are, benefits, pitfalls
- Data Access Layers and Data Transfer Objects
- Database-centric vs model-centric design
- SQL vs noSQL
- Event sourcing
- Service orientation
- Interoberability and integration
- Web services
- Task based UI
- The economics of security
- Common vulnerabilities and how to architect against them
- Web vulnerabilities
- General security guidelines
- Organizing a test suite
- Unit tests vs integration tests
- Testable design: how to architect to make testing easy
- Vertical vs Horizontal scaling
- Scalability gotchas
- Separated read/write architectures
- Session state management