Join Robert 'Uncle Bob' Martin on this exciting new Clean Architecture course and benefit from his years of experience in the industry and deep understanding of the principles and best practices. From code to design and components, you will learn to bring the concepts of clean architecture together, in order to create robust and easily maintainable software systems which stand the test of time.
Struggling with system complexity? Join this course and learn how to dramatically improve developer productivity throughout the life of any software system, using the universal rules of software architecture.
This course will teach you and your team the robust principles you need to bring professionalism and discipline to the structure of your application design, resulting in strong systems which protect high value business rules from changes to unrelated parts of the system, and endure the challenges of extensive life cycles with numerous contributors.
Through a series of lectures and exercises, explore the SOLID principles, component cohesion and component to coupling, and how to keep system components at various levels from unduly influencing each other. Then learn how to structure those components and boundaries within your application system, and employ various deployment strategies including microservices.
Learn how to:
- Create architectures that keep as many options open as possible
- Partition systems into boundaries that protect high-value business rules from changes to unrelated parts of the system
- Take advantage of the differences between architectures and deployment strategies such as micro-service, multi-process, and monolith
- Create software system structures that minimize the manpower required to develop and maintain them
- Build systems that endure long and chaotic life cycles
Starting with the Bricks
- The Goal of Architecture
- Principles of Module Design
- Component Coupling
- What is Architecture?
- Independence and Decoupling
- Boundary Anatomy
- Policy and Level
- Business Rules
- Screaming Architecture
- The Clean Architecture
- Presenters and Humble Objects
- Partial Boundaries
- Layers and Boundaries
- The Main Component
- Services Great and Small
- The Test Boundary
- The Database
- The Web
This course is for software developers who are experienced coders and are familiar with the concepts of software design, and will help them to organise and apply their current knowledge towards the creation of robust system architectures that endure through long life cycles.