pode oferecer a qualidade e entendimento que esperamos quando abrimos uma classe. Portanto e necessario que seu codigo seja limpo e legivel para que qualquer um que encontra-lo possa facilmente entende-lo evitando perda de tempo e facilitando o trabalho de todos.Nomes significativosVamos comecar pelos nomes. Escolhemos nomes para tudo, desde variaveis ate metodos e classes, por causa disso devemos escolhe-los bem.Os nomes devem nos dizer tres coisas: Porque existem, o que fazem e como sao usados. Devem revelar sua intencao e ser significativos, devem dizer o que estao fazendo e o que significam.Faca distincoes significativas, use nomes diferentes dentro de um mesmo escopo. Nomes como a1, a2, a3 sao o oposto de nomes que demonstram intencao. Sao confusos e nao informam nada. Evite tambem usar abreviacoes ou trocadilhos, escreva exatamente o que voce quer dizer, o nome deve ser auto-explicativo. E comprovado que um desenvolvedor passa muito mais tempo lendo codigo do que escrevendo, por isso nao se preocupe em economizar caracteres ao escolher um nome, o fato de um ser claro e objetivo poupara muito mais tempo do futuro do que os caracteres a menos que voce digitar ao escolher um nome curto e ruim.Metodos e funcoesO que os tornam metodos e funcoes faceis de se ler e entender? A primeira regra dos metodos e que eles devem ser pequenos, a segunda e que eles devem ser menores ainda.Metodos devem conter no maximo 20 linhas e seu nivel de identacao nao pode ser maior que dois. Quanto ao conteudo, um metodo deve ter somente UMA responsabilidade. E dificil dizer o que e uma responsabilidade, mas uma maneira de descobrir se um metodo esta fazendo mais de uma coisa, e tentar extrair uma parte dele em outro metodo. Se for possivel, realmente o primeiro metodo tinha mais de uma responsabilidade.Evite passar muitos parametros para um metodo, porque isso pode causar confusao alem de dificultar a escrita de testes unitarios, pois assegurar que todas as combinacoes de parametros diferentes funcionarao e bem mais trabalhoso. Passar parametros booleanos (verdadeiro ou falso) tambem nao e uma boa pratica, alem complicar a assinatura do metodo, claramente a funcao tem mais de uma responsabilidade. Outro detalhe importante que devemos nos preocupar sao os efeitos colaterais, esses efeitos sao mentiras. Seu metodo diz que fara uma coisa, mas faz outras escondidas.Observe o metodo abaixo:public boolean checkPassword(String username, String password) {String passwordStatus = cryptographer.decrypt(password);if(passwordStatus.equals(OK)) { Session.initialize(); return true;}return false;}O metodo checkPassword tem o objetivo de verificar a validade da senha, mas alem disso esta abrindo um sessao, o que nao esta coerente com a finalidade do metodo. Nao se esqueca, seu metodo deve sempre ter somente um objetivo.ComentarioComentarios podem ser uteis se colocados nos lugares certos, mas tambem podem ser mentirosos e trazer desinformacao. Na verdade, o melhor comentario e aquele que nao precisa ser escrito. Podemos usa-los de forma benefica para informar o leitor de alguma consequencia ou fornecer a intencao de uma decisao tomada, mas um dos principais motivos para voce escrever um comentario e porque o codigo esta dificil de ser entendido. Voce acha que o