Originally published at innoarchitech.com here on August 24, 2014.
Articles in This Series
Software applications are typically broken into layers, or tiers when there are multiple physical machines involved. A traditional 4-layer application architecture might consist of a presentation layer, service layer, business logic layer, and data layer.
Cross-cutting Concerns and Coupling
Coupling between modules and components should be reduced as much as possible in order to promote maximum reusability, scalability, sustainability, maintainability, and testability. Usage of an event-driven pattern such as Pub/Sub (discussed in a later chapter) is a solid way to reduce this coupling.
Industry subject experts such as Addy Osmani and Nicholas Zakas argue that a module should be self-contained and able to fail and/or be removed without breaking the application. In addition, A module should be completely interchangeable with another module implementing the same interface, or event-driven behavior without breaking the application.
The “Wild West” Syndrome
With that, yee-haw and giddy up!