Last updated on September 6, 2020
Em projetos com mais de um desenvolvedor é fácil ver as diferenças de estilo em que cada um programa, deixando o codebase não uniforme. Dois ou quatro espaços na indentação? Espaços ou tabulação? Espaço entre o if e o parênteses? Já vi discussões ferrenhas sobre isso, claro que não no nível da série Silicon Valley (ver episódio S03E06).
Qual a importância de aplicar code style?
A maior parte do tempo de vida de um software não é no desenvolvimento, mas em manutenção, como correção de bugs e melhorias. Outro fato importante é que dificilmente quem desenvolveu o software ficará responsável por sua manutenção durante todo o tempo que ele estiver em operação. Quanto mais fácil de ler e compreender seu código, menos tempo um desenvolvedor levará para conseguir se integrar à equipe.
Portanto aplicar o code style é uma ação simples que reduz o “atrito” e contribui muito para a saúde do projeto. E lembre-se: a maior parte do nosso tempo passamos lendo código ao invés de escrevermos, justificando assim esse esforço.
Qual code style utilizar?
Esta é uma decisão que você deve tomar com o seu time, mas há dois estilos que sugiro para começar: da Sun ou da Google.
Minha sugestão é que você escolha um desses dois estilos já que são suportados pela biblioteca Checkstyle, que é uma ferramenta que auxilia a manter padrões de code style em projetos Java. Se me permite um pitaco: avalie com carinho a possibilidade de adotar o code style da Google, que vem sendo atualizado conforme a linguagem Java avança e conforme convenções de estilo são adotadas(o da Sun por outro lado traz os padrões definidos em 1999).
Configurando o Checkstyle
Para facilitar, vamos configurar o Checkstyle em um projeto existente, aquele que criamos no artigo da semana passada, o Spring Boot + Swagger: documentando sua API automaticamente. Baixe o projeto disponível neste repositório do Github.
Primeiramente, baixe o arquivo de configuração do Checkstyle diretamente de seu repositório. No nosso caso vamos baixar o referente ao code style da Google disponível neste link. Salve o arquivo de forma que seu caminho fique config/checkstyle/google_checks.xml.
Abra o build.gradle e insira o código abaixo:
apply plugin: 'checkstyle'
checkstyle {
toolVersion = '8.10.1'
configFile = rootProject.file('config/checkstyle/google_checks.xml')
sourceSets = [sourceSets.main]
configProperties = [
'configDir': rootProject.file('config/checkstyle'),
'baseDir': rootDir,
]
showViolations = true
ignoreFailures = true
}
checkstyleTest {
enabled = false
}
Nosso build.gradle final:
Veja que na configuração do Checkstyle temos um ignoreFailures configurado com true. Eu recomendo esta configuração ao menos durante a fase de ajuste do projeto ao code style, já que sem ela a build irá falhar caso haja alguma violação de code style. Com esta configuração, warnings serão exibidos no log e um relatório será criado, para que você possa ver o que precisa ser ajustado.
Falando em relatório, vamos configurá-lo:
tasks.withType(Checkstyle) {
reports {
html.destination rootProject.file("build/reports/checkstyle.html")
}
}
Faça agora uma build (gradle build) e verifique o relatório em build/reports/checkstyle . Para facilitar, o plugin checkstyle adicionou uma task permitindo que você cheque o status do projeto executando: gradle checkstyleMain.
Para entender as violações de code style e como resolvê-las, leia a documentação oficial do Checkstyle.
Autoformatando o código
Estão disponíveis arquivos XML que configuram a IDE para formatar o código automaticamente, resolvendo a maioria das violações de code style. Siga essas instruções e peça que seus colegas façam o mesmo caso tenham escolhido o code style da Google. Para o da Sun o processo é o mesmo, bastando substituir pelo arquivo correto.
Por hoje é isso. Fique à vontade para comentar ou me localizar nas redes sociais informadas aqui no blog, estou também disponível caso tenha alguma dúvida.
Be First to Comment