Tổng quan
Kernighan nhắc rằng debug khó gấp đôi viết code. Nếu bạn viết code ở ngưỡng thông minh tối đa của mình, bạn sẽ không đủ khả năng debug nó khi sự cố xảy ra.
Ý chính
- Code thông minh quá mức thường chuyển chi phí sang tương lai khi cần hiểu vì sao nó sai.
- Debug cần hiểu cả ý định lẫn hành vi thực tế của code, nên phức tạp hơn viết happy path.
- Đơn giản, đặt tên rõ và test tốt là đầu tư trực tiếp vào khả năng sửa lỗi.
Ví dụ từ nguồn
Một hàm chain nhiều operation trong một dòng có thể nhìn ấn tượng nhưng khó đặt breakpoint và khó biết bước nào sai.
Một thuật toán clever không có test case giải thích invariant sẽ làm người sau ngại sửa dù bug đã rõ.
Nguồn gốc
Brian Kernighan diễn đạt ý này trong The Elements of Programming Style cùng P.J. Plauger, và nó trở thành lời nhắc kinh điển về tính dễ debug.
Lưu ý khi áp dụng
Hãy viết code cho người sẽ debug lúc 2 giờ sáng, không phải cho phiên bản sắc bén nhất của bạn trong lúc đang viết.