Recentemente, descobri a alegria do recurso "Salvar ações" no Eclipse IDE. Posso forçá-lo a reformatar meu código, inserir @Override
anotações ausentes e fazer algumas coisas bacanas, como remover parênteses desnecessários em expressões ou colocar final
palavras - chave em todos os lugares automaticamente sempre que pressiono ctrl + S
. Eu ativei alguns desses gatilhos e, rapaz, isso ajuda muito!
Acontece que muitos desses gatilhos agem como uma verificação rápida de sanidade do meu código.
- Pretendia substituir um método, mas a anotação não apareceu quando eu bati
ctrl + s
? - talvez eu estraguei os tipos de parâmetros em algum lugar!
- Alguns parênteses foram removidos do código ao salvar? - talvez essa expressão lógica seja muito difícil para um programador se familiarizar rapidamente. Caso contrário, por que eu adicionaria esses parênteses em primeiro lugar?
- Esse parâmetro ou variável local não é
final
. Será que ela tem de mudar o seu valor?
Descobriu-se que quanto menos variáveis mudam, menos problemas tenho no momento da depuração. Quantas vezes você seguiu o valor de alguma variável apenas para descobrir que ela muda de alguma forma, digamos 5 para 7? "Como diabos poderia ser ?!" você se pergunta e passa as próximas horas entrando e saindo de inúmeros métodos para descobrir que cometeu um erro em sua lógica. E, para corrigi-lo, é necessário adicionar mais um sinalizador, algumas condições e alterar cuidadosamente alguns valores aqui e ali.
Oh, eu odeio depurar! Cada vez que corro o depurador, sinto que meu tempo está se esgotando e preciso desesperadamente desse tempo para que pelo menos alguns dos meus sonhos de infância se tornem realidade! Para o inferno com a depuração! final
s significa que não há mais mudanças misteriosas de valor. Mais final
s => partes menos frágeis no meu código => menos erros => mais tempo para fazer coisas boas!
Quanto a final
classes e métodos, eu realmente não me importo. Eu amo polimorfismo. Polimorfismo significa reutilização significa menos código significa menos bugs. A JVM faz um bom trabalho com a desirtualização e o método embutido de qualquer maneira, portanto, não vejo valor em eliminar possibilidades de reutilização de código para benefícios de desempenho insatisfatórios.
Ver todos esses final
s no código é um pouco perturbador no começo e leva tempo para se acostumar também. Alguns dos meus colegas de equipe ainda ficam muito surpresos ao ver tantas final
palavras-chave. Eu gostaria que houvesse uma configuração no IDE para colorir sintaxe especial. Eu ficaria feliz em mudar para um tom de cinza (como anotações) para que eles não fiquem muito perturbadores ao ler o código. Atualmente, o Eclipse tem uma cor separada para return
e todas as outras palavras-chave, mas não para final
.
final
campos tem a mesma semântica como escrever umvolatile
campo e, em seguida, lê-los mais tarde precisa ter semântica de leitura voláteis, isto nem sempre o que você quer