Time-tested solutions to common software problems. Learn the what, why, and when.
Master the Gang of Four patterns — creational, structural, and behavioral solutions
A clean interface between your code and your data
Invert control for testable, flexible code
Separate read and write models
Store events, derive state
Manage distributed transactions