Arrêter de Coder
Cet article fait partie de la série d'articles soumis
par la communauté NetBeans dans le cadre du concours "Win
With NetBeans".
Une intruduction à la création de code source
plus rapide en codant moins avec NetBeans 4.0
Préface
Saviez-vous que les touches sur un clavier standards sont délibérément disposées
de façon à ralentire votre frappe ? C'est le cas.
Cette disposition, appelée QWERTY, fut choisit à l'origine pour la première
machine à écrire en 1872 parce qu'il empechait les personnes
de frapper rapidement ce qui aurait provoquer la collision des barres de frappe
C'est une des raisons pour laquelle vous devriez arrêter de coder, ou plutôt, pour
laquelle vous devriez laisser NetBeans créer le code pour vous. Cet article
contient une série d'astuce sur comment écrire du code source plus rapidement avec
NetBeans 4.0 en utilisant le moins de frappe clavier que possible.
Conseils
1er Conseil: Utilisez le Word Matching
Une fois que vous avez tapé un mot dans un fichie source,
vous pouvez retaper ce mot n'importe où en introduisant les premières lettres
en pressant ensuite Ctrl-K. Cette fonctionnalité est appelée
Word matching et cela fonctionne en recherchant après les mots qui
commencent par les lettres que vous avez tapés. Ctrl-K regarde en arrière
tandis que Ctr-L regarde en avant.
Une fois que vous avez tappé le boulve for montrée ci-dessous
for(Person person : personSet) {
}
qui va itérer un ensemble de personnes, vous placez votre
curseur entre les accolades et tapez "pe" pour ensuite presser
Ctrl-K. NetBeans va immédiatement suggérer le mot "personSet"
car c'est le mot le plus proche qui commence par "pe",
et pressez Ctrl-K une seconde fois fera que Neteans va suggérer
"person" qui est le deuxième mot le plus près.
En fait, dans ce cas spécial, vous ne deviez même pas taper "pe"
– en pressant directement Ctrl-K dans la bouclen vous auriez directement
obtenu les identifiants "personSet" et "person";
Cela fonctionne parce que ces deux identifiants sont les premiers mots rencontrés
lorsque NetBeans rechercher vers le haut dans le fichier source. Cependant,
si vous aviez écrit 10 mots entre le début de la boucle et le curseur, en pressant
uniquement Ctrl-K, NetBeans vous aurait proposer tous ces dix mots
avant de finallement vous suggérer "personSet" et ensuite
"person". Dans ce cas, introduire "pe"
avant de pressez Ctrl-K aide à ce que NetBeans ignore tous les mots qui ne commencent
pas par "pe".
Vous avez pressez Ctrl-K trop de fois et avez maintenant attein un mot qui est placé
avant celui que vous désirez, il vous suffit de pressez Ctrl-L quelques fois et
NetBeans se repositionnera sur le mot que vous avez manqué.
Finallement, veuillez noter que cette fonctionnalité fonctionne n'importe où
dans tous les types de fichiers - en fait, c'est très pratique dans les fichiers
XML où vous pouvez l'utiliser pour tapez les noms des tags déjà présents dans le fichier.
2ième conseil: Créer une Macro d'Identifiant
Ecrire de long nom d'identifiant rend le code plus lisible.
Se souvenir qu'un identifiant appelé "i"
identifie en fait une instance de type "Invoice" et non
un "Iterator" ou un "ItemListener" peut être difficile,
surtout dans le longues méthodes; Un nom comme "invoice"
aurait été un meilleur choix. Maintenant, si seulement nous pouvons faire
que NetBeans écrive "invoice" pour nous, il n'y aurait plus aucune raison
de choisir "i". Cette partie vous présente un macro qui fait justement cela.
Imaginez que le curseur soit placé juste après "Invoice" (denoté par un "|")
dans le code ci-dessous:
public class Order {
public void setInvoice(Invoice |) {
}
}
Lorsqu'on lance la macro, NetBeans va automatiquement introduire
"invoice" en utilisant le nom du type
"Invoice" déjà présent dans votre code.
La macro retape simplement le mot précédent et change la première lettre
du mot retapé en minuscule. Maintenant, une fois que vous avez fait que
Netbeans tape la première occurence du mot "invoice"
souvenez-vous que vous pouvez utiliser la fonctionnalité word matching
(Alt+K) expliqué dans le "1er Conseil" pour retaper l'identifiant.
La création de la macro est faites en suivant ces 5 étapes:
- Sélectionnez le menu "Tools > Options"
- Étendez "Editing" et "Editor Settings"
- Sélectionnez "Java Editor"
-
Regardez à la mi-hauteur de la fenêtre pour la propriété appelée
"Macros" et cliquez sur le bouton "..." à l'extrême droite.
-
Ajoutez une nouvelle macro nommée "Type identifier
name using previous word" contenant le code macro suivant
(copier simplement d'ici):
selection-previous-word copy-to-clipboard
caret-next-word " " paste-from-clipboard caret-previous-word
selection-forward to-lower-case caret-next-word
Finallement, cliquez sur le bouton OK de la fenêtre "Macros"
pour la fermer mais gardez la fenêtre "Options" ouverte -
Vous en avez besoin pour créer un raccourci clavier pour votre
nouvelle macro:
-
Ouvrez la fenêtre "Key Bindings" en cliquant sur
le bouton "..." de la propriété nommée "Key Bindings"
- Cliquez sur "Sort by Name" et sélectionnez votre nouvelle
macro qui apparaîtra sour le nom "macro-Type identifier name using
previous word"
- Ajoutez le raccourcis "Alt+N" en cliquant sur le bouton
"Add".
Lorsque vous créez des macros, vous devriez normallement utiliser la fonctionnalité
d'enregistrement de macro, qui vous permet d'enregitrer les frappes clavier et
de les enregistrer sous une macro. Cependant, la macro montrée ici contient l'action
"to-lower-case" et cette action n'est pas encore représentée par une
gestuelle de souris ou clavier. Il vous faut donc rajouter cette action manuellement.
3ième conseil: Créer une Macro d'Assignation
Ceci est l'une de mes macros favorites! Habituellement,
lorsque vous définissez un constructeur, vous avez besoin d'assigner la valeur
des paramètres du constructeur aux variables de classes, comme dans cet
exemple:
public Person(String name, String emailAddress) {
this.name = name;
this.emailAddress = emailAddress;
}
Si vous définissez la macro suivante et l'associez à Alt-=, au lieu de tapez
"this.emailAddress = emailAddress;" vous pouvez simplement taper
"this.e" suivi de Ctrl+K pour obtenir "this.emailAddress" suivi de
Alt+= qui tapera le reste.
voir le "2ième conseil" pour les instructions sur comment créer
la macro. Voici le code de la macro:
selection-previous-word copy-to-clipboard caret-next-word " = " paste-from-clipboard ";"
Une fois que vous aurez eu l'habitude d'utiliser la macro Alt+=,
vous verrez qu'il n'y a pas de moyens plus rapide.
4ième conseil: Utiliser les Abbréviations
NetBeans possède une longue liste d'abbréviatios pour
introduire des mots bien connus, ou même du code
multi-lignes. Vous pouvez essaier cela en tapant
"sout" suivi de la barre d'espacement - cela fera que NetBeans
tapera l'instruction complete pour vous. C'est à dire:
System.out.println("|");
NetBeans ne tape pas de caractère "|" comme indiqué,
mais placera votre curseur à cet endroit après que l'abbréviation soit
remplacée.
Les abbréviations pré-définies sont vraiment source de gain de temps.
Mais vous pouvez en retirez plus en définissant vos propres abbréviations.
Une bonne façon de commencer est d'examiner vos sources existants et
de localiser les constructions de code que vous utilisez fréquemment.
Un exemple typique d'une construction fréquement utilisée pourrait être
la construction if/throw trouvée dans cette méthode:
public void remove(int lower, int upper) {
if(lower < 0)
throw new IllegalArgumentException(
"Parameter \"lower\" has to be a " +
"non-negative number."
);
}
Cette méthode commence avec un instruction de guarde qui s'assure que
le premier paramètre est un argument légale. Si ce n'est pas le cas,
une IllegalArgumentException est jetée.
Parce que placer de telle instruction de garde est une bonne pratique
courante, vous pouvez en profiter pour ajouter une abbréviation que
NetBeans étendra en construction if/throw. Cela peut être fait comme ceci:
- Sélectionnez le menu "Tools > Options"
- Etendez les noeuds "Editing", "Editor Settings",
et "Java Editor"
- Cliquez sur le bouton "..." de la ligne contenant la
propriété"Abbreviations"
-
Ajouter une abbréviation appelée "ill" qui devriendra
if(|)
throw new IllegalArgumentException("");
Notez que NetBeans comprend l'utilisation du caractère
"|" pour indiquer où le curseur devrait être placé après
l'extension.
Maintenant, essayez de tapez "ill" et pressez la barre d'espacement - et voilà!
Bien sûr, vous aurriez pu créer une macro qui tape exactement la même chose,
mais un avantage important des abbréviations est le fait qu'elles sont facile
à retenir puisque vous pouvez leur donner des noms mémotechniques comme
"ill" ou même "illarg" au lieu d'une combinaison de touches
cryptées comme "Ctrl+Alt+I".
Le désavantage des abbréviations est qu'elles ne peuvent lancer une macro -
du moins, pas encore...
5ième conseil: Utilisez les Modèles de Source
La fonctionnalité, très facile à utiliser, de NetBeans est completement
ignorées par la plupart des développeurs. Si vous avez besoin de créer de nombreuses
sources qui ont plusieurs aspects en commun, vous devriez définir un modèle
contenant ces aspects communs.
Par exemple, dans la plupart des systèmes, vous avez des règles
pour comment une classe d'exception devrait être définie ou des règles
qui disent que toutes les classes étendant la classe X devrait contenir
certaines méthodes, variables, documentation, ...
Lorsqu'on commence à écrire une nouvelle classe, ce que la plupart des développeurs font,
c'est de commencer depuis le modèle de classe vide "Java Class" et de tout
écrire à la main. Cela implique souvent devoir réencoder ce qui a déjà été écrit
auparavant. Au lieu de cela, vous devriez trouver une classe qui est un bon point
de départ. Cliquez-droit sur son arborescence et sélectionnez "Save As Template...".
Maintenant, lorsque vous avez besoin de créer une classe similaire, vous devez juste
cliquez-droit sur le paquetage dans lequel la classe devrait être placée, sélectionnez
"New > File/Folder..." et sélectionnez le modèle.
Définir un modèle d'un source existant peut en fait vous donner plus de contenu que nécessaire.
Mais une fois le modèle défini, vous pouvez le personaliser pour supprimer tout le code
qui n'est pas nécessaire en sélectionnant le menu "Tools > Options" et
en localisant le modèle sous "Source Creation and Managent".
Vous cliquez-droit sur son noeud et sélectionner
"Edit", modifier le fichier, et l'enregistrer.
Si vous fournissez une API à vos collègues dans lequel ils ont besoin d'
implémenter le même interface assez souvent, vous pouvez les aider en
fournissant un modèle de source avec votre API. Partagez un modèle est aussi
simple que le copier d'une machine à l'autre. Les modèles sont stockés dans le
répertoire
"... [user home dir]\.netbeans\4.0\config\Templates\[your template folder]"
Si vous utilisez un outil de versionning, je vous recommande de créer
un ensemble de modèles de projet et de les partager via votre système de versionning.
6ième astuce: Éditer les Getters et Setters efficacement
Si vous écrivez les Java beans à la main, un temps énorme sera gaspillé pour écrire
et maintenir les méthodes triviales getter et setter. Fort heureusement, NetBeans
peut générer ces méthodes pour vous, et l'EDI a même un mécanisme intégré pour les
maintenir efficacement. Depuis NetBeans 4.0, le mécanisme de refactoring supporte
la génération de méthodes get et set depuis les variables d'une classe. Pour créer les
méthodes getName et setName montrées ici
public class Customer {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
tout ce que vous devez faire est de déclarer la propriété, cliquez-droit dessus
et sélectionnez "Refactor... > Encapsulate Fields...".
Une fois que les méthodes ont été générées, vous aimeriez changer le nom de la
propriété "name". Cela pourrait impliquer pas mal de travail vu que le mot
"name" ou "Name" est maintenant éparpillé partout dans votre
source. Heureusement, NetBeans a une fonctionnalité très réussie appelée
"Bean Patterns" qui résout ce probleme.
Si vous localisez votre classe dans la fenêtre Projects et étendez son noeud,
NetBeans affiche un noeud appelé"Bean
Patterns" qui contient un sous-noeud pour chaque propriété de bean de la classe.
Ce noeud peut être renommé en pressant soit F2, ou en cliquant droit et en selectionnant
"Rename...". Et si vous renommez votre propriété de cette façon, NetBeans fera toutes
les modifications nécessaires pour vous.
La fonctionnalité de"Bean Patterns" vous permet également
de modifer le type de propriété efficacement. Si vous cliquez droit sur le
noeud de la propriété et sélectionnez l'options "Properties",
cela ouvre une fenêtre contenant les informations concernant la propriété.
Vous pouvez alors y modifier le type et NetBeans
modifiera votre code source en conséquence.
7ième conseil: Utilisez l'Outil "Fix Imports"
En résumé: Vous ne devriez jamais écrire d'instruction d'import.
NetBeans 4.0 a introduit une fonctionnalité vraiment brillante appelée
"Fix Imports" accessible depuis le raccourcis clavier Maj-Alt-F.
Cette fonctionnalités analyse votre code source et regarde les noms de classes
qui ne sont pas encore importés. Si une classe X n'a pas été encore importée
et seulement une classe dans tout votre projet est appelée X, NetBeans l'importera
automatiquement. Si deux classes dans deux paquetages différents sont nommées X,
NetBeans va montrer une boîte de dialogue demandant quelle classe vous préférez importer.
"Fix Imports" travaille extrêmement bien, et il supprime automatiquement les
imports qui ne sont plus nécessaires.
Conclusion
En utilisant ces conseils, vous remarquerez bientôt que vous produisez
du meilleur code avec moins d'erreurs syntaxique en moins de temps.
Aussi, si vous êtes parmis les nombreux développeurs qui avez
des doigts courbaturés suite à du codage intensif,
le fait que NetBeans écrive du code à votre place est vraiment
la piste à suivre
Au plus vous personnalisez l'EDI pour répondre aux besoins spécifiques
de votre projet, au plus vite vous pouvez implémenter votre
système. NetBeans 4.0 est comme la voiture de course parfaite - rapide
et super à conduire. Mais tout comme une voiture de course, le
tuning est essentiel. Personalisez votre EDI en rajoutant des
abbréviations, des macros, des modèles pour répondre à vos besoins
et débrider la vraie puissance de NetBeans 4.0!
A propos de l'auteur
.... (Photo) est le fondateur
de la compagnie de logiciel danoise
ROCK IT, et le maitre pensant derrière
le système de gestion de contenu orienté composant, entièrement java
Puls, qui est
développé entièrement avec NetBeans (à sortir au printemps 2005).