A comprehensive guide to data source patterns from Martin Fowler's PoEAA: Active Record for simple domains, Data Mapper for complex domains, Table Data Gateway and Row Data Gateway for explicit data access. Includes code examples in TypeScript and Java.
A comprehensive guide to domain logic patterns from Martin Fowler's PoEAA: Transaction Script for simple operations, Domain Model for complex business rules, Table Module for data-centric apps, and Service Layer for coordination. Includes code examples in TypeScript and Java.
Master Martin Fowler's enterprise patterns — domain logic, data source, ORM, distribution, concurrency, and session state patterns. A comprehensive roadmap for building maintainable enterprise applications.
A comprehensive guide to Domain-Driven Design: bounded contexts, ubiquitous language, context mapping, entities, value objects, aggregates, repositories, domain events, aggregate design rules, anti-corruption layer, event storming, DDD with microservices, and when DDD is overkill.
A comprehensive guide to hexagonal architecture: ports and adapters, driving vs driven sides, dependency inversion at the core, practical folder structure, testing with mock adapters, comparing to layered architecture, and real-world examples of swapping infrastructure.
A comprehensive guide to microservices architecture: core principles, service boundaries, inter-service communication, data management patterns, API gateways, testing strategies, organizational alignment, and when NOT to use microservices.
Master Clean Architecture with the dependency rule, concentric layers (entities, use cases, interface adapters, frameworks), practical Spring Boot and Node.js implementations, and comparisons with Hexagonal and Onion architectures.
Understand Dependency Injection and Inversion of Control from Martin Fowler's foundational article. Learn Constructor, Setter, and Interface Injection with practical examples in TypeScript, and compare DI with Service Locator.
Master the Adapter and Facade structural design patterns with TypeScript, Python, and Java examples. Learn to integrate incompatible interfaces, simplify complex subsystems, and choose between these two essential patterns.
A comprehensive comparison of MVC, MVP, and MVVM architectural patterns — their origins, how they separate concerns in UI code, practical implementations in Spring MVC, Android, Angular, and React, and how to choose the right pattern for your project.