Minh họa cho Dao cạo Occam
Law #47 Ra quyết định

Dao cạo Occam

Occam's Razor

Khi nhiều giả thuyết cùng giải thích được vấn đề, hãy ưu tiên phương án đơn giản nhất trước.

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

Tổng quan

Dao cạo Occam khuyên khi nhiều lời giải thích cùng phù hợp dữ kiện, hãy ưu tiên lời giải đơn giản hơn. Trong phần mềm, nó hữu ích khi debug, thiết kế và đánh giá kiến trúc.

Ý chính

  • Code và kiến trúc ít thành phần hơn thường ít điểm lỗi hơn.
  • Khi debug, kiểm tra nguyên nhân đơn giản trước khi xây giả thuyết phức tạp.
  • Đơn giản hơn không đồng nghĩa đúng hơn trong mọi trường hợp; nó chỉ là điểm bắt đầu tốt.

Ví dụ từ nguồn

Build vỡ có thể do dependency mới cập nhật hoặc env var thiếu, trước khi giả định compiler có bug hiếm.

Service chậm có thể do query thiếu index, không nhất thiết do vấn đề kernel hoặc network phức tạp.

Nguồn gốc

Nguyên lý này gắn với William of Ockham, triết gia Anh thế kỷ 14, thường được diễn giải là không nên thêm thực thể khi không cần thiết.

Lưu ý khi áp dụng

Dùng Occam để sắp thứ tự giả thuyết, nhưng để dữ liệu quyết định. Nếu lời giải đơn giản không khớp evidence, hãy bỏ nó.

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