O princípio do mínimo de espanto é aplicável a uma ampla gama de atividades de design - e não apenas na computação (embora seja frequentemente onde as coisas mais surpreendentes acontecem).
Considere um elevador com um botão próximo a ele que diz "ligar". Quando você pressiona o botão, o telefone público toca (em vez de chamar o elevador para esse andar). Isso seria considerado surpreendente. O design correto seria colocar o botão de chamada ao lado do telefone e não no elevador.
Em seguida, pense em uma página da web que tenha uma janela pop-up que mostra um erro de estilo do Windows com um botão 'ok'. As pessoas clicam no botão 'ok' achando que é para o sistema operacional e, em vez disso, vão para outra página da web. Isso surpreende o usuário.
Quando se trata de uma API ...
- Pense em um método toString () que, em vez de imprimir os campos, retorne "a ser implementado".
- Um método equals () que trabalha com informações ocultas.
- Às vezes, as pessoas tentam implementar uma classe de lista classificada alterando o método add para chamar sort () na matriz posteriormente - o que é surpreendente porque o método add deve ser anexado à lista - isso é especialmente surpreendente quando se recupera um objeto List. sem o conhecimento de que em algum lugar profundo, alguém violou o contrato de interface.
Ter um método que faça uma coisa distinta contribui para a redução do espanto, no entanto, esses são princípios separados no design da API. Os quatro princípios frequentemente apresentados como "bom design de API" são ( deste pdf - apenas uma instância dessa apresentação. Os links no final deste particular contribuem para uma boa leitura):
É potencialmente surpreendente alguém ter uma aula que tenta fazer tudo - ou precisar de duas aulas para fazer uma única coisa. Da mesma forma, é potencialmente surpreendente que alguém mexa com os internos de maneiras estranhas sob as cobertas (acho que as aulas abertas no Ruby são uma fonte de espanto sem fim). Também é surpreendente encontrar dois métodos que aparentemente fazem a mesma coisa.
Como tal, o princípio de menor espanto subjacente aos outros designs de API - mas, por si só, não é suficiente para simplesmente dizer "não tem uma API surpreendente".
Leitura adicional (da perspectiva da interface do usuário) - um blog de desenvolvedores da IBM intitulado O usuário irritadiço: O princípio do mínimo de espanto