Bốn trụ cột OOP, năm nguyên lý SOLID, và toàn bộ 23 mẫu thiết kế Gang of Four — kèm anti-pattern thường gặp, refactoring thực chiến, và những khái niệm cốt lõi của Domain-Driven Design. Ví dụ minh họa bằng TypeScript (chính) và Java/Python khi idiomatic. Mỗi chương có ~600–900 dòng nội dung chi tiết với UML diagram, code, bài tập, và quiz cuối chương.
Đọc theo thứ tự để xây nền OOP vững → SOLID → ứng dụng vào pattern thật. Pattern không phải để học thuộc tên, mà để nhận ra khi nào và tại sao dùng.
Class/object, encapsulation, abstraction, inheritance, polymorphism. Lịch sử OOP từ Smalltalk → C++ → Java → modern. Static vs dynamic dispatch.
Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion — với ví dụ refactor trước/sau cho từng nguyên lý.
Composition vs Inheritance, immutability, value vs reference, equals/hashCode, interface design, dependency injection, law of Demeter.
Factory Method · Abstract Factory · Builder · Prototype · Singleton. Khi nào dùng cái nào, tradeoff, và những biến thể hiện đại (DI container thay Factory).
Adapter · Bridge · Composite · Decorator · Facade · Flyweight · Proxy. Cách 7 pattern ghép các đối tượng thành cấu trúc lớn linh hoạt.
Chain of Responsibility · Command · Iterator · Mediator · Memento · Observer. Cách object giao tiếp và phân chia trách nhiệm runtime.
State · Strategy · Template Method · Visitor · Interpreter. Hoàn tất 23 GoF pattern. Phân biệt Strategy vs State, Template vs Strategy.
God Object, Feature Envy, Shotgun Surgery, Spaghetti, etc. Refactoring catalog (Extract Method, Replace Conditional with Polymorphism). DDD: Entity, Value Object, Aggregate, Repository.
"Patterns không phải đích đến — chúng là vốn từ vựng để bạn nói chuyện với đồng nghiệp về thiết kế. Học để nhận ra, không phải để cố ép."