Récemment, j'ai découvert la joie de la fonction "Enregistrer les actions" dans Eclipse IDE. Je peux le forcer à reformater mon code, insérer des @Override
annotations manquantes et faire des trucs astucieux comme supprimer les parenthèses inutiles dans les expressions ou mettre des final
mots clés partout automatiquement à chaque fois que je frappe ctrl + S
. J'ai activé certains de ces déclencheurs et, mon garçon, ça aide beaucoup!
Il s'est avéré que bon nombre de ces déclencheurs agissent comme une vérification rapide de la validité de mon code.
- J'avais l'intention de remplacer une méthode mais l'annotation ne s'affichait pas lorsque je frappais
ctrl + s
? - peut-être que j'ai foiré les types de paramètres quelque part!
- Certaines parenthèses ont été supprimées du code lors de l'enregistrement? - peut-être que cette expression logique est beaucoup trop difficile pour un programmeur de se déplacer rapidement. Sinon, pourquoi ajouter ces parenthèses en premier lieu?
- Ce paramètre ou variable locale ne l'est pas
final
. Est - ce qu'il a de changer sa valeur?
Il s'est avéré que moins de variables changent, moins j'ai de problèmes au moment du débogage. Combien de fois vous suiviez la valeur d'une variable pour constater qu'elle change en quelque sorte de 5 à 7 par exemple? "Comment diable ça pourrait être?!" vous vous demandez et passez les prochaines heures à entrer et sortir d'innombrables méthodes pour découvrir que vous avez fait une erreur dans votre logique. Et pour y remédier, vous devez ajouter un indicateur supplémentaire, quelques conditions et modifier soigneusement certaines valeurs ici et là.
Oh, je déteste le débogage! Chaque fois que je lance le débogueur, j'ai l'impression que mon temps est compté et j'ai désespérément besoin de ce temps pour réaliser au moins certains de mes rêves d'enfance! Au diable le débogage! final
s ne signifie plus de changements de valeur mystérieux. Plus de final
s => parties moins fragiles dans mon code => moins de bugs => plus de temps pour faire de bonnes choses!
En ce qui concerne les final
cours et les méthodes, je m'en fiche vraiment. J'adore le polymorphisme. Le polymorphisme signifie que la réutilisation signifie moins de code signifie moins de bogues. La machine virtuelle Java fait un très bon travail avec la dévirtualisation et l'inclusion de méthode de toute façon, donc je ne vois pas de valeur à tuer les possibilités de réutilisation de code pour des avantages de performances non fiables.
Voir tous ces final
s dans le code est quelque peu distrayant au début et prend aussi du temps pour s'y habituer. Certains de mes coéquipiers sont toujours très surpris de voir autant de final
mots clés. Je souhaite qu'il y ait un paramètre dans l'EDI pour une coloration syntaxique spéciale. Je serais heureux de le passer à une certaine nuance de gris (comme des annotations) afin qu'ils ne soient pas trop distrayants lors de la lecture du code. Eclipse a actuellement une couleur distincte pour return
tous les autres mots clés, mais pas pour final
.
final
champs a la même sémantique que l'écriture d'unvolatile
champ, puis leur lecture ultérieure doit avoir une sémantique de lecture volatile, ce n'est pas toujours ce que vous voulez