Nguyên lý tối thiểu gây ngạc nhiên được áp dụng cho một loạt các hoạt động thiết kế - và không chỉ trong điện toán (mặc dù đó thường là nơi xảy ra những điều đáng kinh ngạc nhất).
Hãy xem xét một thang máy có một nút bên cạnh có chữ "gọi". Khi bạn nhấn nút, điện thoại sẽ đổ chuông (thay vì gọi thang máy đến tầng đó). Điều này sẽ được coi là đáng kinh ngạc. Thiết kế chính xác sẽ là đặt nút gọi bên cạnh điện thoại thay vì thang máy.
Tiếp theo, hãy nghĩ đến một trang web có cửa sổ bật lên hiển thị lỗi kiểu cửa sổ với nút 'ok' trên đó. Mọi người nhấp vào nút 'ok' nghĩ rằng nó dành cho hệ điều hành và thay vào đó đi đến một trang web khác. Điều này gây ngạc nhiên cho người dùng.
Khi nói đến API ...
- Hãy nghĩ về một phương thức toString () thay vì in ra các trường sẽ trả về "sẽ được thực hiện".
- Một phương thức equals () hoạt động trên thông tin ẩn.
- Đôi khi mọi người cố gắng thực hiện một lớp danh sách được sắp xếp bằng cách thay đổi phương thức add thành gọi sort () trên mảng sau đó - điều đáng ngạc nhiên vì phương thức add được cho là nối vào danh sách - điều này đặc biệt đáng kinh ngạc khi một người lấy lại đối tượng List không biết rằng ở đâu đó sâu bên trong, ai đó đã vi phạm hợp đồng giao diện.
Có một phương pháp thực hiện một điều khác biệt góp phần làm giảm sự ngạc nhiên, tuy nhiên đây là những nguyên tắc riêng biệt trong thiết kế API. Bốn nguyên tắc thường được gọi là "thiết kế API tốt" là (từ pdf này - chỉ là một ví dụ của bản trình bày như vậy. Các liên kết ở cuối của một đặc biệt này giúp đọc tốt):
Nó có khả năng gây ngạc nhiên cho ai đó khi có một lớp cố gắng làm mọi thứ - hoặc cần hai lớp để làm một việc duy nhất. Nó cũng có khả năng gây kinh ngạc khi ai đó gây rối với những người bên trong theo những cách kỳ quặc dưới vỏ bọc (tôi thấy các lớp học mở trong Ruby là một nguồn gây ngạc nhiên không bao giờ kết thúc). Cũng thật đáng kinh ngạc khi tìm thấy hai phương pháp có vẻ giống nhau.
Như vậy, nguyên tắc ít gây ngạc nhiên làm cơ sở cho các thiết kế API khác - nhưng bản thân nó không đủ để nói đơn giản là "không có API đáng kinh ngạc".
Đọc thêm (từ phối cảnh UI) - một blog của nhà phát triển IBM có tiêu đề Người dùng cáu kỉnh: Nguyên tắc tối thiểu ngạc nhiên