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ó.