Принцип найменшого здивування застосовний до широкого спектру дизайнерської діяльності - і не тільки в обчислювальній техніці (хоча там часто трапляються найдивовижніші речі).
Розгляньте ліфт із кнопкою поруч із написом "дзвоніть". Коли ви натискаєте кнопку, таксофон дзвонить (а не викликає ліфт на той поверх). Це було б вражаючим. Правильною конструкцією було б поставити кнопку виклику поруч із телефоном, а не ліфтом.
Далі, придумайте веб-сторінку, яка містить спливаюче вікно, яке відображає помилку стилю Windows із кнопкою «ОК» на ній. Люди натискають кнопку "ОК", думаючи, що це для операційної системи, а замість цього переходять на іншу веб-сторінку. Це дивує користувача.
Що стосується API ...
- Подумайте про метод toString (), який замість роздруківки полів повертається назад "для реалізації".
- Метод equals (), який працює на прихованій інформації.
- Іноді люди намагаються реалізувати відсортований клас списку, змінивши метод додавання на виклик sort () в масиві після цього - що дивно, оскільки метод додавання повинен додаватися до списку - це особливо дивно, коли повертаєш об'єкт списку не знаючи, що десь глибоко всередині хтось порушив договір інтерфейсу.
Наявність методу, який робить одну чітку річ, сприяє зменшенню здивування, проте це окремі принципи в розробці API. Чотири принципи, які часто рекламуються як "хороший дизайн API", є (з цього файлу pdf - лише один екземпляр такої презентації. Посилання в кінці цього конкретного тексту дозволяють добре прочитати):
Для когось потенційно дивовижно мати клас, який намагається зробити все - або потрібні два класи, щоб зробити одну справу. Це також може бути дивовижним для когось возитись із внутрішніми, як незвично, під прикриттями (я вважаю, що відкриті класи в Рубі є джерелом нескінченного здивування). Також дивним є пошук двох методів, які, очевидно, роблять те саме.
Таким чином, принцип найменшого здивування лежить в основі інших розробок API - але він сам по собі недостатній, щоб просто сказати, "не майте дивовижного API".
Подальше читання (з точки зору користувальницького інтерфейсу) - блог розробників IBM під назвою Примхливий користувач: Принцип найменшого здивування