Das Prinzip des geringsten Erstaunens lässt sich auf eine Vielzahl von Designaktivitäten anwenden - und zwar nicht nur im Computerbereich (obwohl dort oft die erstaunlichsten Dinge passieren).
Stellen Sie sich einen Aufzug mit einem Knopf daneben vor, auf dem "Ruf" steht. Wenn Sie die Taste drücken, klingelt das Münztelefon (anstatt den Aufzug in diese Etage zu rufen). Das wäre erstaunlich. Das richtige Design wäre, die Anruftaste neben dem Telefon und nicht neben dem Aufzug zu platzieren.
Stellen Sie sich als Nächstes eine Webseite mit einem Popup-Fenster vor, in dem ein Windows-Stilfehler mit der Schaltfläche "OK" angezeigt wird. Die Benutzer klicken auf die Schaltfläche "OK" und gehen stattdessen auf eine andere Webseite. Dies überrascht den Benutzer.
Wenn es um eine API geht ...
- Stellen Sie sich eine toString () -Methode vor, bei der die Felder nicht gedruckt, sondern "implementiert" werden.
- Eine equals () -Methode, die verborgene Informationen verarbeitet.
- Manchmal wird versucht, eine sortierte Listenklasse zu implementieren, indem die Methode add dahingehend geändert wird, dass im Array anschließend sort () aufgerufen wird. Dies ist erstaunlich, da die Methode add an die Liste angehängt werden soll. Dies ist insbesondere dann erstaunlich, wenn ein List-Objekt zurückgegeben wird Ohne zu wissen, dass irgendwo tief im Inneren jemand den Schnittstellenvertrag verletzt hatte.
Eine Methode zu haben, die eine bestimmte Aufgabe erfüllt, trägt zur Verringerung des Erstaunens bei. Dies sind jedoch separate Prinzipien beim API-Design. Die vier Prinzipien, die oft als "gutes API-Design" angepriesen werden, lauten (aus diesem PDF - nur eine Instanz einer solchen Präsentation. Die Links am Ende dieser speziellen sorgen für eine gute Lektüre):
Es ist möglicherweise erstaunlich, dass jemand eine Klasse hat, die versucht, alles zu tun - oder zwei Klassen braucht, um eine einzige Sache zu tun. Es ist ebenfalls möglicherweise erstaunlich, dass sich jemand unter der Decke auf seltsame Weise mit den Interna herumtreibt (ich finde, dass der offene Unterricht in Ruby eine Quelle für immerwährendes Erstaunen ist). Es ist auch erstaunlich, zwei Methoden zu finden, die anscheinend dasselbe tun.
Als solches liegt den anderen API-Designs das Prinzip des geringsten Erstaunens zugrunde - aber es reicht nicht aus, einfach zu sagen, dass es keine erstaunliche API gibt.
Lesen Sie weiter (aus der Sicht der Benutzeroberfläche) - ein IBM-Entwicklerblog mit dem Titel Der launische Benutzer: Das Prinzip des geringsten Erstaunens