Go 11/07/2026 11 phút

Log lỗi ở mọi tầng là bốn dòng cho một sự cố — chỉ tầng ngoài cùng được log

Một lỗi đi lên như một sự việc leo thang qua các cấp: mỗi cấp thêm ngữ cảnh nó biết rồi đẩy lên, chỉ cấp trên cùng lập một biên bản và ra một câu trả lời. Bọc ở đâu, log ở đâu, tách lỗi nghiệp vụ khỏi lỗi hệ thống, và đừng để lộ nội tình ra API.

Go 08/07/2026 10 phút

panic không phải throw, recover không phải catch — và panic trong goroutine giết cả chương trình

panic như nút DỪNG KHẨN của máy: dành cho hỏng hóc cấu trúc chứ không phải chi tiết không vừa, chạy trình tắt rồi ngừng. recover chỉ làm việc từ chòi điều khiển (defer), và mỗi goroutine phải tự lo nút của mình. Ba chỗ được phép panic, ba chỗ được phép recover.