É uma boa ideia formatar o código no eclipse usando o formato automático

20

Eu uso o eclipse para codificação, e a linguagem que usamos é Java. Uma vez que alguém sugeriu que formate o código corretamente, use o formatador automático (CTRL + SHIFT + F). Enquanto esse comando formata o código, às vezes sinto que a aparência geral se torna estranha, e na verdade não é muito legível.

Então isso é recomendado? Se não, qual é a melhor formatação de nosso código no eclipse?

Ankit
fonte
Eu uso a capacidade de formatação automática de emacs o tempo todo - há potenciais para colisões (por exemplo, com fusão SC) .. mas no geral, padronizar o formato é extremamente útil
Warren

Respostas:

34

Regras estritas de formatação de código são úteis quando vários desenvolvedores trabalham no mesmo código usando um sistema de controle de versão. Mesclar pode ser um problema se desenvolvedores diferentes tiverem regras de formatação diferentes, pois o mesmo código pareceria diferente para a ferramenta de mesclagem.

O Eclipse (ou qualquer bom IDE) tem regras de formatação de código que podem ser personalizadas na seção de preferências (Java> Estilo de código> Formatador). Escolha o que você mais gosta, mas também veja as convenções de código padrão do Java . Muitos projetos de código aberto também têm suas próprias convenções de código que podem ser aplicadas com o formatador Eclipse.

Além disso, existem ferramentas padrão como CodeStyle, PMD e Findbugs que aplicam regras adicionais e ajudam a evitar erros e antipadrões comuns (de baixo nível).

bangnab
fonte
4
Depois de configurar seu formatador da maneira que você deseja. Há um botão "Exportar" que permitirá que você salve em um arquivo .xml. Colocamos isso em nosso repositório SVN, para que todos tenham acesso a ele quando fizerem check-out do projeto.
7273 Chris
Eu concordo com isso e uso o PMD, o FindBugs e tudo. Mas isso é apenas uma boa idéia se todos da equipe seguirem e usarem as regras de formatação de código. Caso contrário, você acaba com confirmações que são alterações + formatação de alguns desenvolvedores e não de outros, e é difícil ver as mudanças "reais". Em outras palavras, se o código antigo ainda não estiver formatado com o formatador automático, não o formate com alterações adicionais em uma confirmação.
Mufasa
2
Se você personalizar as configurações de formatação do código, coloque essas configurações no controle de origem para que todos os desenvolvedores as obtenham ou publique-as em algum tipo de wiki ou documentação do desenvolvedor para que todos possam concordar com o estilo.
Mufasa
24

Achei o autoformatter muito útil. Em vez de tomar constantemente microdecisões sobre como o código deve ser formatado - algo que é propenso a erros e causa "atrito cognitivo" - você pode configurar regras de formatação e permitir que o Eclipse formate o código para você (idealmente usando automaticamente "Salvar ações" ) Obviamente, isso exige que você tenha uma base de código com formatação consistente ou que tenha o mandato de reformatar o código de acordo com as regras configuradas.

Ter o "autoformato ao salvar" ativado é um pouco como ter uma compilação incremental, permitindo que seu cérebro fique focado no próprio código, em vez de se preocupar com problemas triviais, como formatação ou sintaxe de código.

Mas sim, algumas vezes o autoformatter irá atrapalhar uma tabela bem formatada que você possui. Nesses casos, eu uso "tags on / off". Eles são configurados na guia "tags de ativação / desativação" no perfil de formatação de código. Usando-os, você pode excluir regiões no seu código de serem formatadas automaticamente:

// @formatter:off

... my nicely formatted table here ...

// @formatter:on
JesperE
fonte
5
+1: nunca soube (ou, para ser mais preciso, nunca me incomodei em descobrir) as tags liga / desliga.
Paul Cager
1
A formatação automática ao salvar é boa se todos no projeto a usarem. Se apenas alguns desenvolvedores o usarem, será muito fácil confirmar alterações com alterações na formatação do código ao mesmo tempo, o que dificulta a localização das alterações "reais" em uma confirmação.
Mufasa
@Mufasa Sim, você está certo.
precisa
1
Quando você não quer comentar o formato, pode escrever / * - meu super formato * / Eclipse não formata esse comentário :)
Dawid Drozd
5

Se é recomendado ou não, dependerá de quem você perguntar.

Eu posso imaginar que você prefere formatar o código sozinho, afinal, você sabe o que é melhor e mais fácil de ler por si mesmo. No lado positivo, se você é uma pessoa atenciosa, pode torná-la mais legível para outros seres humanos também.

As máquinas não têm esse tipo de previsão e podem (como você disse) fazer com que seu código pareça uma bagunça, mesmo se o formatar de acordo com regras estritas.

Um bom IDE ou ferramenta geralmente pode fazer um trabalho semi-decente na formatação do código para você, mas nem sempre o torna o mais legível possível.

Portanto, meu conselho: não o use, a menos que você receba código de outra pessoa, e é uma bagunça que você não pode lê-lo de outra maneira.

Timothy Groote
fonte
5

Você deve usá-lo o tempo todo para garantir um estilo consistente em todos os seus arquivos de origem. Isso também poupará muito tempo, que você normalmente gastaria tentando ajustar a formatação manualmente.

O formatador Java no Eclipse faz um bom trabalho e é completamente personalizável. Se você não concorda com as configurações padrão (que eu posso entender completamente), você deve ajustar o formatador de acordo com sua preferência de estilo pessoal ou qualquer que seja o padrão usado. Você pode fazer isso nas preferências em Java / Code Style / Formatter.

Os formatadores são ainda mais úteis quando você não está trabalhando sozinho. É muito provável que você e os membros da sua equipe discordem do que você acha que é o estilo de código perfeito ™. Nesse caso, você deve concordar com uma base comum e definir de uma vez por todas as regras do formatador para esse estilo de código específico. Então todo mundo pode simplesmente clicar no atalho de formato e tudo se encaixa no estilo acordado. Dessa forma, sua preferência pessoal (ao escrever) não atrapalha. E observe que o estilo do formatador pode ser armazenado nos arquivos de projeto do Eclipse, portanto, diferentes formatadores para cada projeto também são possíveis.

cutucar
fonte
0

Embora eu goste de ter o código formatado automaticamente ao salvar (na verdade, eu o habilitei em meus projetos pessoais). Descobri que não podia recomendar totalmente essa prática nas equipes de projeto que usam produtos baseados no Eclipse, pois o formatador do Eclipse possui alguns erros críticos que me impedem de recomendá-lo.

Especificamente, se você tiver "limpeza de código" + "formatador" habilitado, os recuos serão corrigidos / não corrigidos a cada salvamento.

Cada nova versão do Eclipse pode alterar o formatador (para melhor), mas introduziria mudanças significativas, como o JavaDocs, finalmente removendo esse espaço extra após o, *mas que foi introduzido algum tempo depois que o Helios e muitas empresas estiverem usando a versão mais antiga do Eclipse da Rational Software que usa o Helios como base.

O formatador de código fornecido pelo Eclipse não é extensível por sua API; na verdade, ele declara explicitamente o CodeFormatter javadoc

Esta classe não se destina a ser subclassificada pelos clientes.

Concedido, ainda não encontrei nenhuma alternativa não comercial viável . O Jalopy não é atualizado há anos e os garfos no github ainda não estão organizados para me fazer recomendar um deles. Também não possui nenhum site de atualização para que o Eclipse o integre. Na verdade, eu estava planejando fazer a formatação do código como parte da compilação, da mesma forma que fiz o cleanpom-maven-plugin usando o Jalopy, mas essa ideia caiu no esquecimento devido à falta de atualizações para o Jalopy.

Archimedes Trajano
fonte