design and develop highly modular, flexible, and reusable software solutionsemploy broad range of modularity patterns, techniques and principles when designing complex enterprise systemsmake architectonic decisions that make software solutions easier to maintain, easier to scale, and cheaper in the long termimplement modules using the Java 9 modularity feature

Requirements

object oriented programming and designbasic GoF design patternsexperience with programming of a moderately complex software system

Description

Learn how to break down a complex monolithic system into multiple modules gaining a highly reusable, extensible and easily maintainable software solution. This course will provide you with a deep insight into advanced software design topics, such as modularity tenets, techniques, principles and most importantly modularity patterns.

Using modularity, you will be able to better communicate functional requirements and software design to software developers, business people and customers in very complex systems.

All the presented modularity patterns, tenets, techniques and principles are technology agnostic meaning that you can easily apply them to any of your Maven, OSGi, Java 9+ projects!!!

The topic of modularity is difficult and known only in close circles among software architects. This course, however, has tamed the complexity. The material is presented on many real-world and easy-to-understand examples. It is also supplemented by many exercises, on which you can practice your skills. Moreover, we provide you with our Interactive Tester tool that is able to validate your design solutions automatically.