General info
Theory to practice ratio: 95% practice
Duration: 3 days
Goal
This training is design to widen the scope of what software architects can do and give them tools to execute by:
- showing how to use DI container and ORM conventions for application extensive problem-solving.
- giving tools to mitigate serious performance problems in the development phase.
- showing different styles of application architecture and when to use them
Program
- Introduction
- What are the responsibilities of application architecture
- Critical areas of influence in application architecture
- Application object lifecycle - DI containers
- Understanding how a DI container works.
- Defining the responsibilities of a container.
- How to organize registrations.
- Proper lifecycle management.
- Design and performance pitfalls.
- Useful features
- Data modeling and ORM
- Understanding how an ORM framework works.
- Modeling hierarchies.
- Modeling value and reference types.
- Auditing objects with listeners.
- Architectural level mitigations of the N+1 problem.
- Full vs. lightweight ORMs.
- Application level architecture
- Layered
- Hexagonal/Onion Architecture
- Railway orientated Programming
- Dataflow
- Event architecture
- Reactive
- Background processing
- CQRS
- Avoiding performance problems with MiniProfiler
- Installation and configuration
- Scopes and use in background jobs.
- Good and bad practices.
- Time machine.
- Security and performance cost.
- Recording performance issues from testing environments and automating issue reporting.
Materials
After the training all attendees get a before and after zip package with all excercises done during the workshop.