18
Código Limpo Cap. 2 "Nomes Significativos" Achiles, Felipe, Guilherme, Wilker

Codigo limpo: Nomes Significativos Cap 2

Embed Size (px)

Citation preview

Page 1: Codigo limpo:  Nomes Significativos Cap 2

Código Limpo Cap. 2 "Nomes Significativos"

Achiles, Felipe, Guilherme, Wilker

Page 2: Codigo limpo:  Nomes Significativos Cap 2

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();

Page 3: Codigo limpo:  Nomes Significativos Cap 2

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.

Page 4: Codigo limpo:  Nomes Significativos Cap 2

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.

Page 5: Codigo limpo:  Nomes Significativos Cap 2

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.

Page 6: Codigo limpo:  Nomes Significativos Cap 2

Use nomes passíveis de busca

- Evite nomes de uma letra só.

- O tamanho do nome deve ser proporcional ao tamanho do escopo.

Page 7: Codigo limpo:  Nomes Significativos Cap 2

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

Page 8: Codigo limpo:  Nomes Significativos Cap 2

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

Page 9: Codigo limpo:  Nomes Significativos Cap 2

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.

Page 10: Codigo limpo:  Nomes Significativos Cap 2

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.

Page 11: Codigo limpo:  Nomes Significativos Cap 2

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.

Page 12: Codigo limpo:  Nomes Significativos Cap 2

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

Page 13: Codigo limpo:  Nomes Significativos Cap 2

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

Page 14: Codigo limpo:  Nomes Significativos Cap 2

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

Page 15: Codigo limpo:  Nomes Significativos Cap 2

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?

Page 16: Codigo limpo:  Nomes Significativos Cap 2

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

Page 17: Codigo limpo:  Nomes Significativos Cap 2

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

Page 18: Codigo limpo:  Nomes Significativos Cap 2

Dúvidas???