หลักการของความพิศวงน้อยที่สุดใช้ได้กับกิจกรรมการออกแบบที่หลากหลาย - ไม่เพียง แต่ในการคำนวณ (แม้ว่าจะเป็นสิ่งที่น่าประหลาดใจที่สุดเกิดขึ้นบ่อยครั้ง)
พิจารณาลิฟต์ที่มีปุ่มถัดจากที่มีคำว่า "โทร" เมื่อคุณกดปุ่มโทรศัพท์สาธารณะจะดังขึ้น (แทนที่จะเรียกลิฟต์ไปที่ชั้นนั้น) นี้จะถือว่าน่าอัศจรรย์ การออกแบบที่ถูกต้องคือการวางปุ่มโทรติดกับโทรศัพท์แทนลิฟต์
จากนั้นให้นึกถึงหน้าเว็บที่มีหน้าต่างป๊อปอัปที่แสดงข้อผิดพลาดสไตล์หน้าต่างพร้อมปุ่ม 'ตกลง' คนคลิกที่ปุ่ม 'ตกลง' คิดว่ามันเป็นระบบปฏิบัติการและแทนที่จะไปที่หน้าเว็บอื่น สิ่งนี้ทำให้ผู้ใช้ประหลาดใจ
เมื่อพูดถึง API ...
- คิดเกี่ยวกับเมธอด toString () ที่แทนที่จะพิมพ์ฟิลด์กลับคืน "เพื่อนำไปใช้"
- วิธีการ equals () ที่ทำงานกับข้อมูลที่ซ่อนอยู่
- บางครั้งผู้คนพยายามใช้คลาสลิสต์ที่เรียงลำดับโดยการเปลี่ยนวิธีการเพิ่มเพื่อเรียก sort () บนอาเรย์หลังจากนั้น - ซึ่งน่าประหลาดใจเพราะเมธอด addควรจะผนวกเข้ากับรายการ - นี่เป็นสิ่งที่น่าประหลาดใจอย่างยิ่ง ไม่มีความรู้ว่ามีบางส่วนอยู่ด้านในลึกบางคนละเมิดสัญญาอินเตอร์เฟซ
การมีวิธีการที่ทำสิ่งหนึ่งที่แตกต่างมีส่วนช่วยลดความประหลาดใจอย่างไรก็ตามสิ่งเหล่านี้เป็นหลักการแยกต่างหากในการออกแบบ API หลักการทั้งสี่มักจะขนานนามว่า "การออกแบบ API ที่ดี" คือ (จากไฟล์ PDF นี้ - เป็นเพียงตัวอย่างหนึ่งของงานนำเสนอดังกล่าวลิงก์ในตอนท้ายของบทความนี้ทำเพื่อการอ่านที่ดี):
อาจเป็นเรื่องน่าประหลาดใจที่บางคนมีชั้นเรียนที่พยายามทำทุกอย่าง - หรือต้องการเรียนสองชั้นเพื่อทำสิ่งเดียว นอกจากนี้ยังเป็นที่น่าอัศจรรย์สำหรับบางคนที่จะยุ่งกับ internals ในรูปแบบแปลก ๆ ภายใต้ฝาครอบ (ฉันพบชั้นเรียนเปิดใน Ruby เป็นแหล่งของความประหลาดใจที่ไม่มีที่สิ้นสุด) นอกจากนี้ยังเป็นที่น่าอัศจรรย์ในการค้นหาสองวิธีที่ทำสิ่งเดียวกัน
ดังนั้นหลักการของความประหลาดใจอย่างน้อยก็เป็นไปตามการออกแบบ API อื่น ๆ แต่ตัวมันเองนั้นไม่เพียงพอที่จะพูดง่ายๆว่า "ไม่มี API ที่น่าอัศจรรย์"
อ่านเพิ่มเติม (จากมุมมอง UI) - บล็อกผู้พัฒนา IBM ชื่อผู้ใช้ที่บ้าๆบอ ๆ : The Principle of Least Astonishment