👋 Chào mừng đến với Nocoem — kiến thức Backend, System Design và lập trình. Khám phá ngay
Bài đăng

Chọn design pattern nào? Bảng tra nhanh theo vấn đề

TL;DR: Bài này là bảng tra nhanh: bạn đi từ vấn đề đang gặp để ra pattern nên nghĩ tới, kèm cột đừng dùng khi để không áp nhầm. Đây là trang nên …

Visitor Pattern trong Python: tách thuật toán khỏi cấu trúc đối tượng

TL;DR: Visitor (nhóm Behavioral) tách thuật toán ra khỏi cấu trúc đối tượng mà nó chạy trên đó. Mỗi element có method accept(visitor) gọi ngược …

Memento Pattern: chụp lại trạng thái để quay lui mà không phá vỡ đóng gói

TL;DR: Memento (nhóm Behavioral) cho phép bạn lưu lại một ảnh chụp (snapshot) trạng thái nội bộ của một đối tượng ra bên ngoài, để sau này khôi ph…

Mediator Pattern: một trung gian điều phối, hết cảnh gọi chéo nhau

TL;DR: Mediator đặt một đối tượng trung gian đứng giữa nhiều đối tượng (colleague) để điều phối giao tiếp, thay vì để chúng gọi thẳng lẫn nhau. Mạn…

Interpreter Pattern: dựng một ngôn ngữ nhỏ cho những luật hay thay đổi

TL;DR: Interpreter (nhóm Behavioral) định nghĩa một ngữ pháp (grammar) cho một ngôn ngữ nhỏ, rồi biến mỗi luật ngữ pháp thành một class. Ghép các …

Flyweight Pattern: chia sẻ trạng thái chung để tiết kiệm bộ nhớ

TL;DR: Flyweight (đối tượng hạng nhẹ) giải quyết bài toán "có quá nhiều object nhỏ giống nhau ăn hết RAM". Cách làm: tách phần trạng thái …

Các anti-pattern thường gặp và cách tránh: 7 cạm bẫy quen mặt trong code

TL;DR: Anti-pattern là một "lời giải" trông hợp lý, hay được dùng, nhưng thực ra gây hại nhiều hơn lợi. Bài này điểm 7 cái quen mặt nhất: …