Nomes, eles estão em toda parte em nosso software. Apenas pense nas coisas que nomeamos, nomeamos nossos pacotes, classes, métodos, variáveis, na verdade nós programadores fazemos muito disso, provavelmente devemos saber como fazê-lo bem.
Na minha opinião, tornar o código legível é tão importante quanto fazer seu código funcionar.
Neste post, darei a você 5 dicas e diretrizes para escolher seus nomes para tornar seu código mais legível.
1. Revele sua intenção:
O nome que você escolher deve responder ao maior número possível de perguntas para o leitor, perguntas como, por que ele existe, o que faz e como é usado.
A escolha de bons nomes leva tempo, mas economiza mais do que é necessário quando as coisas ficam difíceis; portanto, tome cuidado com seus nomes e altere-os quando encontrar nomes melhores.
Vejamos um exemplo:
1 | int d; //elapsed time in days |
A julgar pelo comentário, parece que d é algum tipo de número inteiro que armazena dias.
Não seria muito melhor se o nome d nos dissesse para que é usado:
1 2 3 4 | int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification; int fileAgeInDays; |
2. Escolha as partes corretas do discurso:
Classes e variáveis devem ter nomes de nomes como Usuário , HtmlPage, Account e AddressParser .
Os métodos devem ter nomes verbais como postPayment, deletePage ou save . Acessores, mutadores e predicados devem ser nomeados por seu valor e prefixados com get, set e is.
Evite palavras como gerente , processador , dados ou informações , pois elas geralmente não fornecem muita informação. Se você estiver com problemas para encontrar um nome que descreva o que sua classe faz, isso pode indicar um cheiro de design e talvez sua classe faça mais de uma coisa.
1 2 3 4 5 | // Bad interface DataManagerInterface {...} // Good interface EventsAggregator {...} |
3. Evite desinformação:
Um nome enganador pode causar muito tempo e dor a você e seus colegas de trabalho.
Por exemplo, não se refira a um agrupamento de contas como uma accountList, a menos que seja realmente uma lista.
Se o contêiner que detém as contas for realmente um conjunto, poderá levar a conclusões falsas.
1 2 3 | // Bad Set accountsList; List accountsMap; |
Não nomeie classes como padrões de design, a menos que sejam realmente padrões de design.
1 2 3 4 5 | // This class is clearly not implementing the builder pattern class ReqeustBuilder { public ReqeustBuilder(HttpServletRequest request) {...} public Request getRequest() {...} } |
Tente não usar comentários se você puder se expressar no próprio código.
Os comentários tendem a apodrecer com o tempo, porque alguém pode alterar o código e manter o comentário.
Isso pode resultar em um comentário enganoso que pode levar a suposições incorretas.
4. A regra do escopo:
O tamanho dos seus nomes deve depender do tamanho do escopo em que são usados.
Para variáveis, use nomes abreviados para escopos curtos e nomes descritivos longos para escopos longos.
Variáveis usadas em escopos curtos geralmente são definidas muito perto de onde são usadas.
Por exemplo, é perfeitamente claro o que e significa aqui:
1 2 3 | } catch (Exception e) { e.printStackTrace(); } |
No entanto, se a variável for usada em um escopo longo, você não deseja que seus leitores subam 56 linhas de código apenas para ver que p significa editor.
1 2 3 4 5 6 7 | Publisher p = Publisher.byName(data.getPublisherName()); /* . . // 56 lines of code where p is not mentioned . */ if (p.shouldSendEvents()) { |
Para métodos, é o contrário, use nomes abreviados para métodos públicos com escopos grandes:
1 | public void open() {...} |
E nomes longos para métodos privados com pequeno escopo:
1 | private void waitForServiceThreadToStart() {...} |
5. Mantenha as coisas simples
Se os nomes forem espertos demais, eles serão memoráveis apenas para você. Manter os nomes simples e diretos fará um favor à legibilidade do seu código.
Escolha uma palavra para um conceito abstrato e fique com ele. Por exemplo, é confuso obter , recuperar e obter métodos equivalentes de diferentes classes.
Evite codificações como a notação húngara, hoje nossos IDEs são inteligentes o suficiente para tornar essa notação redundante.
Empacotando
A nomeação é uma ferramenta para se comunicar com seus leitores. Nomes ruins impedem que o código comunique claramente sua intenção - portanto, escolha nomes cuidadosamente e com cuidado.
Outras pessoas, incluindo o seu futuro, precisam entender o código para poder fazer alterações.
Atualmente, a manutenção de software oferece o maior desafio do dia-a-dia.
Mesmo se você estiver escrevendo algo totalmente novo, manter é uma tarefa com a qual você ou seus colegas de trabalho definitivamente terão que lidar, mais cedo ou mais tarde.