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

Định luật Postel

Postel's Law

Khi phát dữ liệu hãy chặt chẽ, khi nhận dữ liệu hãy chịu lỗi hợp lý để tăng khả năng tương thích.

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

Tổng quan

Postel khuyên khi gửi dữ liệu hãy chặt chẽ, khi nhận dữ liệu hãy khoan dung hợp lý. Nguyên tắc này giúp hệ thống tương thích tốt hơn, nhưng trong bối cảnh hiện đại cần cân bằng với bảo mật và tính rõ ràng.

Ý chính

  • Output của hệ thống nên tuân thủ protocol và spec càng nghiêm càng tốt.
  • Input từ bên ngoài có thể có sai lệch nhỏ; parser hoặc API nên xử lý lỗi có kiểm soát.
  • Quá khoan dung có thể che bug, tạo ambiguity hoặc mở lỗ hổng bảo mật.

Ví dụ từ nguồn

Trình duyệt web thường sửa HTML malformed để vẫn render trang, phản ánh tinh thần khoan dung với input.

Một API có thể chấp nhận header case khác nhau, nhưng không nên im lặng chấp nhận payload sai schema nghiêm trọng.

Nguồn gốc

Jon Postel viết nguyên tắc robustness trong đặc tả TCP RFC 760 năm 1980: nghiêm khi gửi, rộng lượng khi nhận.

Lưu ý khi áp dụng

Trong API hiện đại, hãy khoan dung ở lớp compatibility nhưng log, cảnh báo và dần siết contract khi cần bảo mật hoặc dữ liệu chính xác.

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