El Principio de Menos Asombro es aplicable a una amplia gama de actividades de diseño, y no solo en informática (aunque a menudo es donde ocurren las cosas más sorprendentes).
Considere un elevador con un botón al lado que dice "llamar". Cuando presiona el botón, suena el teléfono público (en lugar de llamar al ascensor a ese piso). Esto se consideraría sorprendente. El diseño correcto sería colocar el botón de llamada al lado del teléfono en lugar del elevador.
A continuación, piense en una página web que tiene una ventana emergente que muestra un error de estilo de Windows con un botón 'ok'. La gente hace clic en el botón 'ok' pensando que es para el sistema operativo y en su lugar va a otra página web. Esto asombra al usuario.
Cuando se trata de una API ...
- Piense en un método toString () que en lugar de imprimir los campos devuelve "para ser implementado".
- Un método equals () que funciona con información oculta.
- A veces, las personas intentan implementar una clase de lista ordenada cambiando el método add para llamar a sort () en la matriz después, lo cual es sorprendente porque se supone que el método add se agrega a la lista, esto es especialmente sorprendente cuando uno recupera un objeto List sin saber que en algún lugar en el fondo, alguien violó el contrato de interfaz.
Tener un método que haga una cosa distinta contribuye a reducir el asombro, sin embargo, estos son principios separados en el diseño de API. Los cuatro principios a menudo promocionados como "buen diseño de API" son (de este pdf , solo una instancia de tal presentación. Los enlaces al final de este particular hacen una buena lectura):
Es potencialmente sorprendente que alguien tenga una clase que intente hacer todo, o que necesite dos clases para hacer una sola cosa. También es potencialmente sorprendente que alguien se meta con los elementos internos de manera extraña debajo de las sábanas (creo que las clases abiertas en Ruby son una fuente de asombro interminable). También es sorprendente encontrar dos métodos que aparentemente hacen lo mismo.
Como tal, el principio de menor asombro subyace a los otros diseños de API, pero, en sí mismo, no es suficiente para decir simplemente "no tenga una API sorprendente".
Lecturas adicionales (desde la perspectiva de la interfaz de usuario): un blog para desarrolladores de IBM titulado El usuario malhumorado: El principio del menor asombro