Minh họa cho Định luật Murphy
Law #27 Chất lượng

Định luật Murphy

Murphy's Law / Sod's Law

Nếu có cách để sự cố xảy ra, hãy giả định nó sẽ xảy ra và chuẩn bị cho trường hợp đó.

Nguồn tham khảo: Laws of Software Engineering

Tổng quan

Định luật Murphy nhắc rằng nếu có cách để điều gì đó hỏng, hãy giả định nó sẽ hỏng. Trong phần mềm, edge case, input kỳ quặc, resource cạn và failure bất ngờ không phải ngoại lệ hiếm như ta tưởng.

Ý chính

  • Code defensively: validate input, xử lý lỗi, timeout, backup và fallback rõ ràng.
  • Production sẽ gặp tổ hợp điều kiện mà môi trường dev không tái hiện đầy đủ.
  • Test nên bao gồm edge case và failure path, không chỉ happy path.

Ví dụ từ nguồn

Form nhập text sẽ có người gửi chuỗi 10.000 ký tự hoặc ký tự lạ nếu bạn không giới hạn và sanitize.

Memory, disk hoặc connection pool thường cạn đúng lúc traffic tăng hoặc job chạy chồng nhau.

Nguồn gốc

Luật thường được gắn với Edward A. Murphy Jr., kỹ sư trong các thử nghiệm rocket sled năm 1949, rồi lan rộng sang hàng không, kỹ thuật và phần mềm.

Lưu ý khi áp dụng

Dùng Murphy để chuẩn bị failure mode cụ thể, không phải để bi quan chung chung. Mỗi rủi ro nên có guardrail hoặc acceptance rõ.

← Quay lại danh sách 56 luật