Ergonomia no Design e Arquitetura de Software

Michi Henning escreveu um artigo na ACM Communications de Maio sobre um assunto recorrente neste blog aqui: a importância de levar em conta o usuário na heurística para o bom desenho de uma API.

As principais sugestões de boas práticas para o design de API´s dadas no artigo são:

  • Uma API deve prover funcionalidades suficientes para que o chamador possa realizar suas tarefas;
  • Uma API deve ser mínima, sem impor inconvenientes indevidos ao chamador;
  • APIs não podem ser concebidas sem uma compreensão do contexto de uso;
  • APIs de propósito geral devem ser “ policy-free”; APIs de propósito especial devem ser “ policy-rich”; (aqui entendendo-se política como restrições de parâmetros, da ordem de chamadas, valores defaults, etc.)
  • A API deve ser projetada pela perspectiva do chamador;
  • Boas APIs não passam sua responsabilidade para o usuário;
  • APIs devem ser documentadas antes de implementadas;
  • Boas APIs devem ser ergonômicas;

Vale a leitura.

Três comentários (meus):

  • Estas regras devem ser levadas em consideração também quando no design de classes, frameworks e interfaces com o usuário;
  • Creio que todas estas regras derivam de uma inicial: “A API deve ser projetada pela perspectiva do chamador “. As demais são decorrentes.
  • Uma impressão minha: arquitetos e designers costumam pensar em si mesmos como os usuários de uma API. Eis o grande erro;

Abraços