FlightGear - Création d'avions et autres / Creation of aircraft and other

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).

#1 2015-11-10 22:18:51

Helijah
Administrateur
Lieu : Chartres
Inscription : 2011-12-14
Messages : 2 030
Site Web

Les commentaires : Pourquoi....Comment....

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 smile )

    <!-- ~~~~~~~~~~~~~~~~~~ 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 smile

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 smile

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 smile 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 smile (Bon le 0*(valeur<0) est inutile et on peu donc encore optimiser, mais cela rend la ligne plus compréhensible smile


Quelques avions pour FlightGear
http://helijah.free.fr

Hors ligne

Pied de page des forums

Propulsé par FluxBB 1.4.8