Pro? Je suis développeur certes, mais il y a toujours plus compétent, d'autant que le vba je l'ai pratiqué pour le "fun"
donc de fait j'en apprends aussi ici en lisant vos codes respectifs.
Pour ma part j'ai surtout l'expertise de conception au titre de mon expérience sur une palanquée de langages différents. Quand je vois des choses qui ne me plaisent pas (côté algo notamment) je le dis... après les bonnes pratiques sont, de mon point de vue totalement personnel, qu'on s'adosse à des règles pour ainsi dire immuables (à quelques exceptions près)
- On type les variables tant que faire se peut.
Par exemple, quand on manipule des chiffres on utilise le type adapté (réel pour les virgules, l'entier pour les entiers...)
- On conçoit des structures/objets (selon les langages) de manière à avoir quelque-chose de facilement manipulables.
Par exemple:
Java:
public class objVille{
public Ville(){
String nomVille;
String nomPays;
int nbreHabitants;
String adresseMairie;
int numeroVoie;
int codePostal;
}
}
Comme ça, on manipule l'objet Ville (une fois déclaré) est manipulé avec les propriétés déclarées
Java:
Object maville = new Ville();
maville.nomVille="Ma ville s'appelle toto";
maville.numeroVoie = 10;
system.out.println(maville.nomVille);
La dernière commande retournera un affichage console "Ma ville s'appelle toto"
Si l'on va plus loin, on peut de plus jouer sur le contenu en créant des méthodes associées à l'objet de manière à simplifier la validation du contenu.
Par exemple
Java:
public class objVille{
// On enrichit
public Ville(){
String nomVille;
String nomPays;
int nbreHabitants;
String adresseMairie;
int numeroVoie;
int codePostal;
}
public String nomConstuit() {
return nomVille + " " numeroVoie.toString() + " "+adresseMairie;
}
Ce qui donne quand on appelle la méthode
Java:
Object maville = new Ville();
maville.nomVille="Ma ville s'appelle toto";
maville.numeroVoie = 10;
maville.adresseMairie ="PAF";
system.out.println(maville.nomConstuit());
-> "Ma ville s'appelle toto 10 PAF"
Cette façon de procéder améliore notablement la lisibilité du code!
- N'utiliser les constantes qu'en cas de besoin ABSOLU
On ne fait des constantes que pour des choses dont on a la certitude qu'elles n'évolueront pas... (en tout cas en théorie)
Par exemple, si l'on estime un nombre maxi de connexions sur un service donné, on fixera cette valeur en constante de sorte à ne plus y revenir.
- Se constituer une "caisse à outils"
Tant de choses sont récurrentes: des calculs de moyennes, trouver des notions de dates avec bornes, des calculs de TVA... alors on se crée ces méthodes en librairies qu'on met systématiquement en place. Cela épargne de la surcharge, et surtout de se dire "merde je refais à chaque fois ce truc".
Un exemple efficace: une méthode où l'on passe le montant TTC et le taux de TVA appliqué pour recevoir en réponse le HT et la TVA (avec les arrondis et ajustements qui vont bien)
- Créer des méthodes CLAIRES
Une méthode "hamburger" à qui on donne des valeurs en String et qui retourne un entier sans la moindre explication... c'est le mal
- Prévoir tant que faire se peut de préparer le code avec des commentaires
On précise les données et le format en entrée, le résultat en sortie, ainsi qu'un résumé de la règle de fonctionnement.
- On COMMENTE
Rien n'est plus insupportable que de déplier du code illisible, compact et sans la moindre explication.
Pire: quand je vois des variables intermédiaires toutes nommées varx où x est un chiffre... je craque. C'est si compliqué de faire "compteur", "ListeUser" ...
Enfin voilà quelques fondamentaux...