Pergunta

Rotinas, procedimentos, métodos - como você os chama, são importantes blocos de construção para os desenvolvedores dos EUA. Que característica única você classificaria como o mais importante 1?

(Ao fornecer uma característica por resposta, é possível votar neles individualmente. Ou seja, o objetivo desta pergunta não é decidir uma característica, mas sim destacar tudo de os importantes.)

Foi útil?

Solução

Eu acho que os critérios mais importantes seriam que ele tenha um único propósito.

Depois disso, isso satisfaz esse objetivo (e somente esse objetivo) corretamente.

Outras dicas

Nomes de procedimentos de comentarista.

Exemplos: getstorefromaddress getcarsbymake

Deve ser facilmente testado unidade.

O nome da rotina mapeia um a um para sua funcionalidade.

É surpreendente a frequência com que uma função x faz x e também y, ou a maioria de x, mas não todos x.

é Nenhum critério único que distingue uma boa rotina de uma má.

Dentre Os critérios são:

  • Integridade conceitual: faz algo que pode ser descrito de uma forma curta simples, uma frase ou parágrafo;
  • Acoplamento frouxo: seu comportamento não é sensível ao que se passa em código em torno dele;
  • Tamanho razoável: as rotinas longas são mais difíceis de ler e entender e são menos propensas a ter boa integridade conceitual;
  • Critério de Parnas: eles "escondem" uma coisa que pode mudar, para que as mudanças de requisitos tenham efeito limitado no restante do sistema.

Projetado para ser facilmente lido e compreendido pelos humanos - sem isso, é muito mais difícil modificá -lo ter todos os outros atributos maravilhosos que serão listados aqui

Número de coisas que ele tenta fazer.

Se isso não for exatamente 1, você provavelmente terá um problema.

Não deve ter efeitos colaterais inesperados.

Bom manipulação de erros (confiabilidade)

brevidade

(Era para ser uma resposta semi-infun, mas não deixaria postar a única palavra por conta própria!)

Tem que ser atômico

Linhas de código.

Você deve rastrear o número de edições necessárias após o uso da rotina. Uma rotina 'boa' é aquela com poucas edições necessárias. Uma rotina 'ruim' definitivamente prova ser assim, quando há um monte de correções necessárias.

Isso pode ser facilmente realizado com um cabeçalho de comentário em cada chamada de método que é atualizada após cada edição.

Faz uma coisa ou delega várias coisas para outras funções

Clareza - fácil de entender

Eu acho que isso é mais facilmente respondido se você considerar rotinas como parte de uma API. Não há muitas rotinas que permaneçam sozinhas, pelo menos não em um sistema verdadeiramente útil. Honestamente, acho que as coisas mais importantes a considerar ao escrever rotinas são:

  1. Intuíção Quão intuitivo é o meu conjunto de instruções - as pessoas entenderão o objetivo sem precisar percorrer muita documentação?

  2. Ortogonalidade Quão ortogonais são minhas rotinas? Cada um realiza uma tarefa específica ou existem várias maneiras (mas um pouco diferentes) de fazer a mesma coisa? Se houver, isso é ruim, e a API provavelmente precisa ser redesenhada.

  3. Compactação Quanto da API é necessária para realizar tarefas simples? Preciso aprender muitas coisas para fazer algo, ou posso ser suficiente com apenas algumas rotinas que fazem algo intuitivo e poderoso? Você precisa pesar as compensações deste com ortogonalidade para encontrar um bom equilíbrio para o seu domínio específico.

Do nome de rotina, você pode dizer o que a rotina faz (e quando você verifica o código, percebe que estava certo ;-)

A rotina usa um nível consistente de abstração por toda parte.

Eu diria que bem documentado (e realmente aplicado) pré e posta condições.

Um único ponto de retorno

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top