Codigo limpo: Nomes Significativos Cap 2
-
Upload
inael-rodrigues -
Category
Documents
-
view
527 -
download
4
Transcript of Codigo limpo: Nomes Significativos Cap 2
Código Limpo Cap. 2 "Nomes Significativos"
Achiles, Felipe, Guilherme, Wilker
Use nomes que revelem seu propósito
- O nome de uma variável, classe ou função deve responder a todas as grandes questões, como porque existe, o que faz e como é usado.
- Se um nome requer um comentário, então não revela seu propósito.
Ex: imprimeDanfe(); criaUsuario();
Evite informações erradas
- Deve-se evitar palavras cujos significados podem se desviar do desejado. Ex: Não se referencia a um grupo de contatos como listaDeContatos a não ser que o grupo de fato, seja uma lista. Se o que armazena o grupo não for uma lista, o nome pode confundir os outros.
- Não usar nomes muito parecidos.
Faça distinções significativas
- Se os nomes precisam ser diferentes, então também devem ter significados diferentes.- Usar números sequenciais em nomes (a1, a2... aN) é o oposto da seleção de nomes expressivos. Não geram confusão, mas simplesmente não oferecem informação alguma sobre a intenção de seu criador.- Na ausência de convenções específicas, não há como distinguir moneyAmount de money, customerInfo de customer ou theMessage de message.- Faça a distinção dos nomes de uma forma que o leitor compreenda as diferenças.
Use nomes pronunciáveis
- Use nomes pronunciáveis para facilitar a identificação e comunicação.- Ex: Uma variável chamada genymdhms (generation date, year, month, day, hour, minute, second). Como você chamaria verbalmente a variável? Poderia ser renomeada para generationTimestamp.
Use nomes passíveis de busca
- Evite nomes de uma letra só.
- O tamanho do nome deve ser proporcional ao tamanho do escopo.
Evite codificações
- Codificações de variáveis são altamente não recomendadas
- Até mesmo o próprio programador, após certo tempo, se esquece do significado do código descrito
- Ex: gR() << Gera Relatório; soDeusEntende() << Código do Fromhell
Evite o mapeamento mental
-Ocorre quando não se é levado em consideração os termos domínio do problema e nem os da solução
-Atribuir a variáveis nomes curtos, geralmente 1 ou 2 letras, exige que o mapeamento mental seja enorme, pois terá que se lembrar do que tal variável se trata
Não dê uma de espertinho
- Não use gírias, coloquialismos ou piadas em nomes.
- Diga o que você quer expressar. Expresse o que você quer dizer.
Selecione uma palavra por conceito
- Escolha uma palavra por cada conceito abstrato e fique com ela. Por exemplo, é confuso ter pegar, recuperar e obter como métodos equivalentes de classes diferentes.
Não faça trocadilhos
- Evitar usar a mesma palavra para dois propósitos.
- Por exemplo, se "add" é usado para nomes de métodos em várias classes como criação de um novo valor por meio da adição ou concatenação de outros dois valores, não é recomendado utilizar "add" para um método que adicionará um parâmetro a uma coleção.
Use nomes a partir do domínio da solução
- Evite usar nomes que referenciem o problema, para evitar que toda hora, outros programadores que forem ler o código, tenham que checar com o cliente o conceito de tal nome
-Recomendado usar termos do domínio da Informática, de algoritmos, de padrões, pois os programadores estão abituados a isso
Use nomes de domínios do problema-Deverá ser usada quando não puder se aplicar o uso de domínio da solução para nomes, que facilita para o programador
-Neste caso, embora seja ruim, pelo menos quem for fazer a manutenção, poderá recorrer aqueles que entendam do domínio do problema para entender certos contextos
-Distinguir conceitos de domínio do problema e de dominio da solução é esperado de um bom programador
Adicione um conexto significativo
- Uma variável analisada sozinha, geralmente não revela muito sobre o contexto dela
- Adicionar um contexto significativo, seria dar pelo menos um pouco da noção do que ela possa ser
Ex: primeironome,segundonome, bairro, cidade, estado, país
Adicione um contexto significativo
Essa variáveis juntas te dão a noção de endereço. Mas e se olhasse para a variável "país" sozinha? você teria a mesma noção?Não poderia remeter a nacionalidade de alguém?
Não adicione contextos desnecessários
-Nomes curtos geralmente são melhores desde que sejam claros
-Não adicione mais contexto a um nome do que necessário
-Aplicável principalmente a classes
-Nas instancias de classe aí sim ter um contexto a mais seria interessante
Conclusão
-Para se escolher bons nomes, é necessário possuir boas habilidades de descrição
-Não tenha medo de mudar nomes, desde que seja para melhor
-Ajude as ferramentas atuais a nos ajudar, até porque memorizar nomes de classes e métodosde uma solução grande, é para poucos
Dúvidas???