Bạn đã bao giờ thắc mắc tại sao chỉ cần gắn @Injectable hay @Component, một Class thông thường lại có thể tự động kết nối với toàn bộ hệ thống? Phía sau những dòng "annotation" đó không phải là ma thuật, mà là Metaprogramming — đỉnh cao của việc dùng code để mô tả hành vi của code khác.
Khóa học này được thiết kế để bạn không chỉ biết dùng, mà còn có thể tự tay xây dựng lại lõi của các Framework lớn như Angular hay NestJS.
Khóa học này dành cho ai?
Frontend Developer (Mid-level): Muốn xóa bỏ cảm giác "mơ hồ" khi sử dụng Angular, làm chủ hoàn toàn TypeScript ở tầng sâu nhất.
Kỹ sư định hướng Fullstack: Cần một nhịp cầu nối liền tư duy Inversion of Control (IoC) và Dependency Injection (DI) giữa môi trường TypeScript/NodeJS và Java Spring Boot.
Ứng viên phỏng vấn Senior/Middle: Cần nắm chắc các "góc khuất" như Execution Order, Property Descriptors và Type Erasure để vượt qua các vòng Technical tại các công ty Top-tier.
Bạn sẽ làm được gì sau khóa học?
Làm chủ 5 loại Decorator: Phân biệt rõ ràng mục đích và cách thức hoạt động của Class, Method, Accessor, Property và Parameter Decorator.
Nắm vững vòng đời thực thi: Hiểu sâu quy tắc "bóc củ hành" — Evaluate từ trên xuống, Invoke từ dưới lên — để kiểm soát thứ tự logic phức tạp.
Hóa giải "Type Erasure": Sử dụng
reflect-metadatađể giữ lại "linh hồn" của kiểu dữ liệu ở Runtime, giúp hệ thống vẫn hiểu được class types dù đã biên dịch sang JavaScript.Tự xây dựng DI Container: Thiết kế hệ thống tự động resolve các dependency đệ quy dựa trên
design:paramtypes, hiểu rõ cách Angular và NestJS vận hành "under the hood".Hệ thống hóa Performance: Tự viết các Utility Decorators thực chiến như
@Memoize(caching),@Debounce(chống spam),@TrackPerformance(giám sát tốc độ xử lý).
Cấu trúc nội dung cốt lõi
Phần 1: Mental Model & "Hàm bọc hàm"
Hiểu Decorator dưới dạng "Người gác cổng": Kiểm soát và ghi lại hành vi mà không sửa đổi Business Logic.
Cơ chế Wrapper: Cách dùng
apply(this, args)để bảo toàn ngữ cảnh thực thi và tránh lỗi mấtthis.
Phần 2: Góc nhìn Compiler & Runtime
Giải mã helper
__decorate: Cách compiler chuyển đổi code của bạn thành các lệnh JavaScript tuần tự.Sự khác biệt giữa Legacy (Experimental) và Standard TC39 Decorators.
Phần 3: Metadata & Reflection API
Khai thác 3 loại metadata mặc định:
design:type,design:paramtypes, vàdesign:returntype.Kỹ thuật đọc/ghi Metadata thủ công để tạo ra các nhãn (tags) cấu hình tùy chỉnh.
Phần 4: Thực chiến Validation Framework & Utilities
Tự build thư viện Validation mini (giống
class-validator): Dùng Decorator đánh dấu rules và một bộ máy Validator để kiểm tra ở Runtime.Xử lý bài toán Shared State và Memory Leaks khi làm Cache Decorator.
Phần 5: Kiến trúc DI Container & Tư duy hệ thống
Xây dựng Dependency Graph: Tự động khởi tạo toàn bộ "cây" dịch vụ chỉ với một lệnh
resolve().So sánh trực quan: Annotation trong Spring Boot (Java) vs. Decorator trong TypeScript.
Phần 6: Chiến thuật Phỏng vấn & Cheat Sheet
Giải quyết các câu hỏi "xoáy": "Tại sao Decorator không chạy với Arrow Function?" hay "Làm sao để Inject Interface?".
Tổng hợp Pitfalls và Best Practices để tối ưu bộ nhớ và hiệu năng trong dự án thực tế.
Khóa học này không dạy bạn cách dùng Framework, nó dạy bạn cách người ta tạo ra Framework.
