Vous désirez aider à améliorer les avions de Hangar de Helijah, c'est ici que cela se passe / You would like to help improving aircraft from Helijah's hangar, this is where it happens
Vous n'êtes pas identifié(e).
Bonsoir à tous.
De retour sur le net je vais aujourd'hui vous donner quelques informations sur les commentaires dans les fichiers XML ou tout autres d'ailleurs. Informations tirées de mes quelques années d'analyses et programmation je les pense logiques et utiles.
Les commentaires doivent être judicieux et utiles : J'entends par là qu'un commentaire doit apporter une ou des informations non présente dans le code source.
Un exemple (hardball je t'en supplie ne le prend pas mal hein )
<!-- ~~~~~~~~~~~~~~~~~~ sub model -->
<submodels>
<serviceable type="bool">true</serviceable>
<path>Aircraft/Mirage-2000/Models/Effects/guns/submodels.xml</path>
</submodels>
<!-- ~~~~~~~~~~~~~~~~~~ startup -->
<startup>
<splash-texture>Aircraft/Mirage-2000/Splashs/m2000-5-splash.png</splash-texture>
</startup>
<!-- ~~~~~~~~~~~~~~~~~~ sound -->
<sound>
<path>Aircraft/Mirage-2000/Sounds/m2000-5-sound.xml</path>
</sound>
<!-- ~~~~~~~~~~~~~~~~~~ rendering -->
<rendering>
<redout>
<parameters>
<blackout-complete-g>10</blackout-complete-g>
Ajouter une ligne pour écrire "submodel" alors que la ligne juste après contient le tag <submodel> n'apporte rien à la compréhension du code (même si cela part d'un bon sentiment). En revanche cela ajoute des lignes, donc des caractères donc du poids en octet sur le fichier. Ensuite le parser va devoir utiliser un peu de temps pour passer cette ligne qui n'est que du commentaire.
L’intérêt du xml comme beaucoup d'autres langages est justement de pouvoir être auto commenté. On veux dire par là que les variables utilisées, les tag etc... peuvent par leur propres noms apporter l'information qu'un commentaire aurait du apporter autrement.
Combien de fois ais je vue des choses tel que :
for ( i = 0; i < 6; i += 1) {
.........
}
Avec un commentaire expliquant que i est le compteur de lettre et qu'il va de 0 à 5 alors qu'avec
for ( compteurlettre = 0; compteurlettre < 6; compteurlettre += 1) {
.........
}
la boucle s'auto documente d'elle même
Voilà pour faire simple, ajouter des commentaires alourdis le code. Cela est indubitable. Du coup la question à toujours se poser est : "Ce commentaire est il utile ou redondant ?"
Utile, on le laisse
redondant et bien on l'enlève tout simplement
Amicalement Emmanuel
P.S. Une autre chose que j'adore mais qui n'a rien à voir, mais j'en parlais avec Fabien il y a peu et j'ai retrouvé la ligne dans mes sources de EB Model 3 et je l'ai modifié avec AND c'est plus parlant
valeur=valeur+1
valeur=valeur*(valeur>-1 AND valeur<256)+0*(valeur<0)+255*(valeur>255)
En deux lignes on évite 3 if / endif et tout un tas de lignes Pourquoi ? Simplement parce que dans les parenthèses se trouve non pas des formules mathématiques telle quel, mais des opérations booléennes.
si valeur est compris entre 0 et 255 alors (valeur>-1 AND valeur<256) vaut 1 et (valeur<0) vaut 0 et (valeur>255) vaut aussi 0 ce qui nous donne :
valeur=valeur*(1)+0*(0)+255*(0)
....Oh magie valeur vaut valeur.
Mais si valeur est inférieur à 0 nous avons
(valeur>-1 AND valeur<256) = 0
(valeur<0) = 1
(valeur>255) = 0
donc
valeur=valeur*(0)+0*(1)+255*(0)
...Là valeur vaut 0
et enfin si valeur est supérieur à 255 nous avons
(valeur>-1 AND valeur<256) = 0
(valeur<0) = 0
(valeur>255) = 1
valeur=valeur*(0)+0*(1)+255*(0)
...Là valeur vaut 255
Et paf en une seule ligne nous avons limité une variable entre 0 et 255 lors de l'incrémentation ou de la décrémentation aussi d'ailleurs (Bon le 0*(valeur<0) est inutile et on peu donc encore optimiser, mais cela rend la ligne plus compréhensible
Quelques avions pour FlightGear
http://helijah.free.fr
Hors ligne