Conteúdo


Unidade 12: escrevendo um bom código Java

Esforce-se para escrever um código Java limpo que possa ser mantido facilmente

Antes de iniciar

Esta unidade faz parte do caminho de aprendizado "Introdução à programação Java". Embora os conceitos discutidos nas unidades individuais sejam independentes por natureza, o componente prático é criado à medida que você progride pelas unidades e eu recomendo que você revise os pré-requisitos, a configuração e os detalhes da unidade antes de continuar.

Objetivos da unidade

  • Siga as melhores práticas para tamanhos de classes, tamanhos de método e nomes de método
  • Entenda a importância da refatoração
  • Ganhe consistência no estilo de codificação e uso de comentários
  • Use criação de logs integrada

Melhores práticas de codificação

Agora você está na metade desse caminho de aprendizado. Você tem experiência suficiente em sintaxe Java para gravar programas Java básicos. Antes de continuar com os tópicos mais avançados, este é um bom momento para aprender algumas das melhores práticas de codificação. Leia sobre alguns indicadores essenciais que podem ajudá-lo a escrever código Java mais limpo e sustentável.

Mantenha as classes pequenas

Até agora você criou algumas classes. Após gerar pares getter/setter até mesmo para um número pequeno (pelos padrões de uma classe Java real) de atributos, a classe Person possui 150 linhas de código. Com esse tamanho, Person é uma classe pequena. Não é incomum (e isso é lamentável) ver classes com 50 ou 100 métodos e milhares de linhas ou mais de origem. Algumas classes podem ser totalmente desnecessárias, mas muito provavelmente elas precisam ser refatoradas. A refatoração está mudando o design do código existente sem mudar seus resultados. Eu recomendo que você siga essa melhor prática.

Em geral, uma classe representa uma entidade conceitual em sua aplicação e o tamanho de uma classe deve refletir apenas a funcionalidade para fazer aquilo que a entidade precisa fazer. Mantenha suas classes totalmente focadas para executar um pequeno número de coisas e executá-las bem.

Mantenha apenas os métodos necessários. Se você precisar de vários métodos auxiliares que executam essencialmente a mesma coisa, mas utilizam parâmetros diferentes (como o método printAudit() ), essa é uma boa opção. Mas certifique-se de limitar a lista de métodos somente àqueles necessários.

Nomeie os métodos cuidadosamente

Quando se trata de nomes de método, um bom padrão de codificação é o padrão de nomes de método que revelam a intenção . Esse padrão é mais fácil de entender com um exemplo simples. Qual dos seguintes nomes de método é mais fácil de decifrar à primeira vista?

  • a()
  • computeInterest()

A resposta deve ser óbvia, porém, por algum motivo, os programadores têm uma tendência de dar pequenos nomes abreviados aos métodos (e variáveis, nesse sentido). Certamente, um nome ridiculamente longo pode ser inconveniente, mas um nome que expressa o que um método faz não precisa ser necessariamente assim. Seis meses após escrever um monte de código, você pode não se lembrar do que pretendia fazer com um método chamado compInt(), mas é óbvio que um método chamado computeInterest() provavelmente "calcula os juros".

Mantenha os métodos pequenos

Métodos pequenos são tão preferíveis quanto classes pequenas, por razões semelhantes. Uma regra que tento seguir é manter o tamanho de um método limitado a uma página quando eu olho em minha tela. Essa prática torna minhas classes de aplicativos mais sustentáveis.

Se um método fica maior que uma página, eu o refatoro. O Eclipse possui um maravilhoso conjunto de ferramentas de refatoração. Geralmente, um método longo contém subgrupos de funcionalidades agrupadas. Pegue essa funcionalidade e mova-a para outro método (nomeando-a adequadamente) e transmita parâmetros conforme necessário.

Limite cada método a uma única tarefa. Eu descobri que um método que faz apenas uma coisa bem geralmente não usa mais do que 30 linhas de código.

A refatoração e a capacidade de escrever código de teste primeiro são as habilidades mais importantes que os novos programadores devem aprender. Se todo mundo fosse bom em ambos, isso revolucionaria o mercado. Se você se tornar bom em ambos, definitivamente produzirá códigos mais limpos e aplicativos mais funcionais do que muitos de seus colegas.

Use comentários

Use os comentários. As pessoas que virão depois de você (ou você mesmo, passados alguns meses) ficarão agradecidos. Você já deve ter ouvido o velho ditado Um código bem escrito é em si um documento, então quem precisa de comentários? Eu darei dois motivos pelos quais acredito que esse ditado é falso:

  • A maioria dos códigos não é bem escrita.
  • Por mais que nos esforcemos, nosso código provavelmente não é tão bem escrito quanto gostaríamos.

Portanto, comente seu código. Ponto.

Use um estilo consistente

O estilo de codificação é uma questão de preferência pessoal, mas eu aconselho a usar sintaxe Java padrão para chaves:

public static void main(String[] args) {
}

Não use este estilo:

public static void main(String[] args)
{
}

Nem este:

public static void main(String[] args)
  {
  }

Por quê? É o padrão, portanto, a maioria dos códigos que você executa (ou que você não escreveu, mas é pago para manter) muito provavelmente são escritos dessa maneira. O Eclipse permite definir estilos de código e formatar seu código da maneira que desejar. Mas, sendo novato em Java, você provavelmente ainda não tem um estilo. Então sugiro que você adote o padrão Java desde o início.

Use criação de logs integrada

Antes do Java 1.4 introduzir a criação de logs integrada, a maneira canônica de descobrir o que seu programa estava fazendo era realizar uma chamada do sistema como esta:

public void someMethod() {
  // Do some stuff...
  // Now tell all about it
  System.out.println("Telling you all about it:");
  // Etc...
}

O recurso de criação de logs integrada da linguagem Java (consulte novamente a Unidade 5: sua primeira classe Java) é a melhor alternativa. Eu nunca uso System.out.println() em meu código e sugiro que você também não use. Outra alternativa é a biblioteca de substituição log4j comumente usada, parte do umbrella project do Apache.

Para explorar mais

Java - Sintaxe básica

Guia de Estilo Google Java

Diretrizes da Codificação Java

Falando a linguagem Java sem sotaque

Refatoração: Aperfeiçoando o Projeto de Código Existente de Martin Fowler et al.

Java Efetivo de Joshua Bloch

Código IBM: Jornadas Java

Anterior: arquivando código JavaSeguinte: próximas etapas com objetos


Recursos para download

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Tecnologia Java
ArticleID=1063021
ArticleTitle=Unidade 12: escrevendo um bom código Java
publish-date=09192018