1

En réaction à une idée qui avait été proposée dans la partie projet...





Commité de normalisation TI_C
Voici le premier essai de norme concernant la lisibilité des codes sources en C.

Je ne sais guère si ceci sera respecté, mais j'espère que ce soit le cas.





Pourquoi une telle "Norme" ?
ETant donné le tutorial pour le language C appliqué aux calculatrices Texas Instrument, modèles TI-89 et TI-92+, que j'ai, avec les autres membres de la TCI, été amené à rédiger, j'ai souvent l'occasion de recevoir des codes sources (provenant généralement de débutants) assez peu lisibles, ne fonctionnant pas pour des raisons variables.
Dans le but de corriger les erreurs présentes dans ces codes sources, et faire ainsi fonctionner les programmes qui me sont envoyés, afin de pouvoir venir en aide à la personne me l'ayant demandé, je suis nécessairement obligé de chercher à comprendre le programme.
Mais, parfois, la mauvaise ordonnance de son code source me rend la compréhension difficile, et il n'est malheureusement pas (assez) rare que je doivent réorganiser le code, le réarranger, voire même le réécrire dans son intégralité (ou quasi-intégralité), ce qui constitue pour moi une énorme perte de temps, et qui est parfois à l'origine d'une non-réponse de ma part à la question qui m'était posée, tout simplement parce que je n'ai pu trouver le temps nécessaire à cette "remise en page".
Passées ces motivations purement égoistes, et souhaitant étendre cette réflexion à un environement plus "global", je suis venu à me poser des questions sur les codes sources disponibles sur Internet, pardois diffusés avec le programme dont ils constituent la base. Je sais que ces codes sont parfois utilisés par des débutants souhaitant apprendre le C, et je suis intimement convaincu qu'ils leur seraient plus faciles d'accès si tous présentaient quelques points communs (mis à part le fait qu'ils soient écrit en C !).
Je suis d'avis (et ce que certaines personnes ont déclarée sur un forum où la question fut posée) que l'introduction de certains "standards" somme toute simples à mettre en oeuvre faciliterai grandement la compréhension de programmes écrits par d'autres programmeurs.
Je sais que ce projet, cette norme, si tant est que nous puissions lui appliquer ce terme, recontrera des détracteurs, mais j'ai plaisir à croire que cela permettra d'aider quelques débutants à comprendre ce language que nous apprécions tant !

Je tiens à préciser que je ne me permettrait pas de qualifier le respect d'une telle convention d'écriture comme obligatoire, et tiens à mettre immédiatement certaines choses au clair :
1: Vous n'êtes nullement obligé de respecter une telle idée !
2: Pour les codes sources que vous n'avez pas l'intention de distribuer, vous agissez comme bon vous semble !
3: Pour les codes sources que vous distribuez, une telle convention peut permettre aux lecteurs de mieux comprendre vos intentions. Ainsi, une code comportant en en-tête quelque chose du style "Conforme à la convention TI_C_machinchose portant sur les noms de variables" signifiera qu'il respecte ce qui est ici écrit, et qu'il est conforme au souhait de volonté de facilité de relecture que nous avons émis.




La première idée que je me permet de proposer est, je le reconnais, quelque peu inspirée de la notation hongroise utilisé principalement par MicroSoft (notament pour la programmation sous interface Windows). Cette technique rencontre parfois une ferme opposition, mais je la trouve appréciable, notament dans des cas comme celui qui nous interesse.
Elle consiste à préfixer les noms de variables de quelques lettres (entre 1 et 3 généralement) qui décrivent son type. Ensuite, viendrait le caractère '_', utilisé comme séparateur entre le type de la variable, et son nom effectif..
Par exemple, si nous déclarons une variable de type TYPE, nous lui donnerions un nom précédé des lettres "TYP", par exemple, une peu comme ceci :
TYPE TYP_ma_variable;
Voici les différentes propositions que je peux actuellement faire :
 -----------------------------------
|     Type effectif     |           |
|     de la variable    |  Préfixe  |
 -----------------------------------
|  char                 |  C _      |
|  unsigned char        |  UC _     |
|  short (int)          |  S _      |
|  unsigned short       |  US _     |
|  int (short ou long)  |  INT_     |
|  unsigned int         |  UINT_    |
|  long                 |  L_       |
|  unsigned long        |  UL_      |
|  float  (=double)     |  F_       |
|  HANDLE               |  H_       |
|  SYM_ENTRY            |  SYM_     |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
 -----------------------------------


D'autres normes peuvent être fixées en fonction de l'usage de la variable.
Ainsi, par habitude, les variables utilisées comme compteur (par exemple dans les structures itératives, telles la boucle for), sont nommées i.
Dans un tel cas, nous utiliserons une écriture de ce style :
    short S_i_1;    // Déclaration de la variable de compteur.
    for(S_i_1=0 ; S_i_1<10 ; S_i_1++)
    {
        // exécutions de quelques instructions...
    }

Nous respecterons cette habitude, en préfixant certaines variables en fonction de leur usage.
Voici les différentes propositions que je peux actuellement faire :
 -----------------------------------
|       usage de        |           |
|      a variable       |  Préfixe  |
 -----------------------------------
|  compteur             |  i_       |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
 -----------------------------------



Cependant, j'insiste, et je n'insisterai jamais assez, sur le fait que de tels préfixes sont totalement inutiles si vous employés des noms de variables pour le moins obscur.
Je m'explique :
Tous les noms de variable du style
ma_var1_, ma_var_2, ma_var_3
et autres, sont totalement à proscrire.
Il est nettement plus explicite de les nommer, par exemple, selon le contexte, de la façon suivante :
position_heros_x, position_heros_y
dans le cadre, ici, d'un jeu où la position du héros puisse être définie selon une coordonnée en X et une coordonnée en Y.




Les données constantes (les constantes symboliques définies au niveau préprocesseur par la commande #define) porteront des noms écrits intégralement en majuscules, et ne comportant aucun préfixe.
Par exemple :
#define MA_CONSTANTE 10 // défini une constante valant 10.






Bon, voila, j'ai proposé...
J'attend vos réactions, avant de rajouter d'autres types de données, complétant ainsi ce que j'ai ici rédigé.

Si jamais la réaction face à ma proposition est positive, et que nous parvenons, ensemble, à nous mettre d'accord sur quelque chose de correct aux yeux de la majorité, j'ai la ferme intention de rendre mon tutorial "compatible" à cette norme une fois qu'elle sera achevée.

Je vais insiter sur une dernière chose : faire entrer de telles choses dans ses habitudes de programmation est chose difficile... Mais je sais que, une fois celle-ci prise, elle ne peut être que bénéfique, que ce soit au programmeur, ou à ceux qui le liront.
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

2

oops, c léger long... mais ça serait cool que vous le lisiez...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

3

-

4

erf...
là, ça ne parle que des noms de variables...
mais j'ai pas d'autres choses en réserve si cette idée est acceptée...

c'est clair que les codes illisibles, c grave lassant à forec
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

5

-

6

bof, c pas vraiment dur comme code...
y'a juste quelques opérateurs sur les bits, dont tu ne dois pas avoir l'habitude, mais il en faut dans toutes les fonctions graphiques (ou presque)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

7

top
Je suis tout à fait d'accord avec cette proposition de normalisation des codes sources;
en effet je crois que cela facilitera les échanges et l'apprentissage pour ceux qui le font en lisant ds codes sources.
Mais je pense que cela va être assez difficile et car beaucoup de point doivent être normalisés (les définitions de variables, des fonctions les mises en pages ... ) pour une parfaite égalité entre chaque programmeur, et car des nouvelles habitudes comme celles-ci ne sont forcément faciles à prendre.
Par contre si beaucoup sont interressés par cette normalisation il faudrait le diffuser plus largement et faire un petit tutorial à ce sujet.

Bonne idéée...
Je suis partant...
top
Vive le coding gba.
www.codegba.fr.st

8

Pour le "tuto à ce sujet", je suis OK.
en fait, ce que je posté ici est, en gros, le contenu d'un fichier texte me servant de base pr cette POSSIBLE norme.
naturellement, si quelque chose de positif ressort de ce projet, je le rédigerai convenablement. et j'ai l'intention de l'inclure à mon tuto (et de le mettre en libre diffusion dans le plus d'endroits possible)

Je vise aussi la normalisation d'autres points, mais avant, je voulais savoir si ct ou non la peine.
Parmis ceux-ci :
- finir les noms de variables, en complétant ce qui est déjà fait.
- présentation générale
- Commentaires

Pour le moment, nous sommes deux (plus mois) à être pour.
Mais je sais que certains sont contres...


ah oui, aussi, qd je parlais d'habitudes pr les sources, ça veut aussi dire habitude sur le forum...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

9

Moi, je n'ai pas trop envie de faire précéder mes variables "simples" d'un préfixe associé à leur type.
Par contre, c'est bien si tout le monde fait précéder ses var de type SYM_ENTRY de SYM_ (et pour les handles aussi, c'est bien).
Par contre, pour la boucle, je n'ai pas du tout envie d'appliquer ce que tu as dit (short S_i_1;).
Et puis pour les #define, je suis d'accord.

Mais bon, je pense surtout qu'une telle norme n'aide pas énormément à lire les sources, il faudrait à la limite, 'réserver' des noms de variables à certaines tâches :
pour les boucle : i,j,...
pour les position : pos_x,pos_y,
pour les map : map[][]
pour les écrans virtuels : vscreen0,vscreen1;

bref, je pense que si tout le monde utilise les mêmes noms de variable pour les mêmes choses, ça facilitera la lecture du code.

Après, il y a souvent plusieurs façons d'obtenir le même résultat, donc si dans le source que je lis, le codeur a utilisé une technique à laquelle je n'aurais jamais pensé pour obtenir un tel résultat, je vais mettre du temps à comprendre quel était son objectif (exemple (posts 65 et 67)).
Donc cette norme ne serait pas très efficace non plus...

10

cette technique se base sur les décalages de bits...
ok, c dur au début...
mais c parfois utile (indispensable !)
et dans d'autres, ça optimise en vitesse :

divu est l'opération la plus lente du 68k...
alors qu'un décalge de bits est rapide.
=> pr diviser par une puissance de deux, mieux vaut faire



sinon, ce que tu propose se rapproche de mon deuxième tableau.
(bon, OK, le cas de S_i_1 est abusé grin quelque chose comme i_1 serait peut-être plus adéquat... (autrement dit, ne pas dire le type de la variable utilisée comme compteur)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

11

cette technique se base sur les décalages de bits...
ok, c dur au début...
mais c parfois utile (indispensable !)
et dans d'autres, ça optimise en vitesse :

divu est l'opération la plus lente du 68k...
alors qu'un décalge de bits est rapide.
=> pr diviser par une puissance de deux, mieux vaut faire un décalage de bits
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

12

heu... bizarre sur ce coup mà ce que ça me fait !!!
jai posté le premier post après le second...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

13

J'ai compris comment fonctionnaient les décalages de bits, mais c'est juste pour te montrer que moi pour parvenir au même résultat que kévin, je n'aurais pas pensé à faire comme lui (cf. post 67, mais il parait que c'est plus lent sad).

14

oué...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

15

Mettre un p devant les pointeur serait une bonne chose : int *pEntier;

16

exact.
j'hésite entre :

short *p_S_nomvar
short *p_nomvar
short *S_p_nomvar

perso, je préfèrerai le premier :
il s'agit d'un pointeur ("p") sur un short ("S")


mais j'aimerai savoir si le PRINCIPE vous plait, avant de savoir quoi rajouter à la courte liste que je n'ai donné que comme exemple...
si le principe ne convient pas, ça ne sert à rien de dresser la liste des trucs à rajouter sad
/me espére que le principe conviendra... et surtout, qu'il sera respecté... même si ça sera dur pour lui, au début
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

17

Franchement, de mettre des _ ça donne des noms de variables bcp trop longs :
int p_INT_var;
int pINT_var
int pINTvar;

À la limite, si vous voulez vraiment mettre des _, prenez la deuxième solution, mais pas la première.
et au passage, je suis du même avis que toi sur les pointeurs : 'var' est un pointeur sur un int, donc int pINT_var;

18

magic
Y faudrait faire un petit sondage avec ti-fr.
ca permetrait de voir qui c'est que sa interesse (en gros).
Vive le coding gba.
www.codegba.fr.st

19

16> oué, pas con.
en effet, pointeur fait partie (enfin, on peut dire ça) du type... donc, c une bonne idée que de ne pas mettre de séparateur entre p et le type pointé.

/me dit que ce topic lui sera bien utile si la norme est acceptée : il n'aura qu'à faire quelques copier coller smile

mat> ça ne regarde que les codeurs C...
sur ti-fr, bcp de gens risquent de répondre alors qu'ils n'en n'ont rien à foutre...
ce que je ne souhaite pas : la décision qui doit être prise ne regarde que les codeurs C.
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

20

ouais c'est vrai... roll
par contre moi je suis pour garder les _ car ça permet de bien séparer les types des noms de variables. Autrement ça risque de compliquer plus que ça ne simpliefiera.
Vive le coding gba.
www.codegba.fr.st

21

oui oui, mettre le '_' entre le type et le nom de variable, ça, aucun doute là dessus.
mais, par contre, pas entre le 'p' et le "INT" par exemple.
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

22

bien sur...embarrassed
Vive le coding gba.
www.codegba.fr.st

23

ouf, j'ai tout lu.

Je suis POUR !!!!!!!! toptop

: les boucles, te noms sont trop lourds et embrouillent encore plus. A virer ! faut prendre des truc simple style : int i_for, i_while;sauf certain point que j'utilise pour les boucles et dont l'utilisation saute au yeux à la 1ère lecture.

al : int i_boucle, j_boucle;ou bien pour plus génér

ça rend pas trop mal, mais certain vont dire "trop long grin" !!!

Pour les types à signaler, bof bof pour certain. Les variables telles que de type int,float ou char sont très souvent utilisées et encore les nommer au début serait chiant je pense.

Pour les pointeurs : un "p" serait le bien venu en effet ! top


des noms spéciaux pour les map ou écran virtuels ? bah je crois que pas mal nomme déjà leur variables/tableaux comme ça.

vala.
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

24

la lisibilité d'un code ne vient pas des noms de variables
(il faut bien sur un minimum de sens: ne pas appeler une coordonée en y 'Xµ')
mais bel et bien de la clarté de l'algorithme

les seules conventions à respecter sont:
-majuscules pour les constantes et les macros et minuscules pour les fonctions et les variables
-indentation
-'nom du fichier H'_'nom de fonction'() pour declarer une fonction
-prendre des fichiers c et/ou h differents pour chaque partie du code
-ne pas melanger interface et code
bref que des trucs de bon sens en algo...

pas besoin de L_var,ni de monobjet_mapropriteté
le type de variable doit etre automatiquement compris en voyant l'algo

par exemple pour un float on fait a+=1.0 et pas a +=1
pour une multiplication(aïe), on utilise des long
pour un char on utilise un char et pas un int comme j'en vois bcp...
etc,etc...


là où je vois une utilité des normes, c'est pour les commentaires:
on devrait tous commenter nos sources avec l'algo pur en langue 'maternelle'
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

25

par exemple, si vous ne trouvez pas ça clair...
et ça ne respecte aucune de ces normes
bien sur il faut savoir programmerroll
edit: desolé j'avais posté ici un source enrme donc je le retire
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

26

squale92 a écrit :
En réaction à une idée qui avait été proposée dans la partie projet...
Commité de normalisation TI_C

Ça rappelle beaucoup les régimes autoritaires ça...
Voici le premier essai de norme concernant la lisibilité des codes sources en C.
Je ne sais guère si ceci sera respecté, mais j'espère que ce soit le cas.

Et pourquoi? Tout le monde s'en fiche de l'air qu'a le code source tant que ça fonctionne.
Pourquoi une telle "Norme" ? ETant donné le tutorial pour le language C appliqué aux calculatrices Texas Instrument, modèles TI-89 et TI-92+, que j'ai, avec les autres membres de la TCI, été amené à rédiger, j'ai souvent l'occasion de recevoir des codes sources (provenant généralement de débutants) assez peu lisibles, ne fonctionnant pas pour des raisons variables.

En tant que membre de l'équipe de TIGCC, j'en reçois plein moi aussi.
Dans le but de corriger les erreurs présentes dans ces codes sources, et faire ainsi fonctionner les programmes qui me sont envoyés, afin de pouvoir venir en aide à la personne me l'ayant demandé, je suis nécessairement obligé de chercher à comprendre le programme.

Pourquoi? Moi, je compile, et si le problème est en phase d'exécution (pas en phase de compilation), je regarde avec VTI et dans le fichier .s ce qui se passe.
Mais, parfois, la mauvaise ordonnance de son code source me rend la compréhension difficile, et il n'est malheureusement pas (assez) rare que je doivent réorganiser le code, le réarranger, voire même le réécrire dans son intégralité (ou quasi-intégralité), ce qui constitue pour moi une énorme perte de temps, et qui est parfois à l'origine d'une non-réponse de ma part à la question qui m'était posée, tout simplement parce que je n'ai pu trouver le temps nécessaire à cette "remise en page".

Moi, je ne remets jamais en page les sources qui posent problème sauf s'il faut que je réécrive une grande partie pour corriger l'erreur.
Passées ces motivations purement égoistes, et souhaitant étendre cette réflexion à un environement plus "global", je suis venu à me poser des questions sur les codes sources disponibles sur Internet, pardois diffusés avec le programme dont ils constituent la base. Je sais que ces codes sont parfois utilisés par des débutants souhaitant apprendre le C, et je suis intimement convaincu qu'ils leur seraient plus faciles d'accès si tous présentaient quelques points communs (mis à part le fait qu'ils soient écrit en C !).

1. Si on publie une source, ce n'est pas nécessairement pour que les débutants la comprennent. Par exemple, je vois mal un débutant comprendre les sources de TICTEX et pourtant elles sont données.
2. Chaque programmeur programme comme il veut, et on ne peut pas obliger tout le monde à utiliser les mêmes standards de style de code source.
Je suis d'avis (et ce que certaines personnes ont déclarée sur un forum où la question fut posée) que l'introduction de certains "standards" somme toute simples à mettre en oeuvre faciliterai grandement la compréhension de programmes écrits par d'autres programmeurs.

Çà, ça dépend de ce qu'on fixe comme norme...
Je sais que ce projet, cette norme, si tant est que nous puissions lui appliquer ce terme, recontrera des détracteurs, mais j'ai plaisir à croire que cela permettra d'aider quelques débutants à comprendre ce language que nous apprécions tant !

Voici déjà un détracteur. grin
Je tiens à préciser que je ne me permettrait pas de qualifier le respect d'une telle convention d'écriture comme obligatoire, et tiens à mettre immédiatement certaines choses au clair : 1: Vous n'êtes nullement obligé de respecter une telle idée !

Heureusement!
2: Pour les codes sources que vous n'avez pas l'intention de distribuer, vous agissez comme bon vous semble !

Évidemment!
3: Pour les codes sources que vous distribuez, une telle convention peut permettre aux lecteurs de mieux comprendre vos intentions. Ainsi, une code comportant en en-tête quelque chose du style "Conforme à la convention TI_C_machinchose portant sur les noms de variables" signifiera qu'il respecte ce qui est ici écrit, et qu'il est conforme au souhait de volonté de facilité de relecture que nous avons émis.

Ouais, et tant qu'on y est, on va aussi mettre:
/* conforme à la norme ISO C-89 */
si c'est le cas... grin
La première idée que je me permet de proposer est, je le reconnais, quelque peu inspirée de la notation hongroise utilisé principalement par MicroSoft (notament pour la programmation sous interface Windows). Cette technique rencontre parfois une ferme opposition, mais je la trouve appréciable, notament dans des cas comme celui qui nous interesse.


Vade retro, devil!
Elle consiste à préfixer les noms de variables de quelques lettres (entre 1 et 3 généralement) qui décrivent son type. Ensuite, viendrait le caractère '_', utilisé comme séparateur entre le type de la variable, et son nom effectif..
Par exemple, si nous déclarons une variable de type TYPE, nous lui donnerions un nom précédé des lettres "TYP", par exemple, une peu comme ceci :
TYPE TYP_ma_variable;
Voici les différentes propositions que je peux actuellement faire : [...]
 -----------------------------------
|     Type effectif     |           |
|     de la variable    |  Préfixe  |
 -----------------------------------
|  char                 |  C _      |
|  unsigned char        |  UC _     |
|  short (int)          |  S _      |
|  unsigned short       |  US _     |
|  int (short ou long)  |  INT_     |
|  unsigned int         |  UINT_    |
|  long                 |  L_       |
|  unsigned long        |  UL_      |
|  float  (=double)     |  F_       |
|  HANDLE               |  H_       |
|  SYM_ENTRY            |  SYM_     |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
 -----------------------------------

En quoi est-ce plus lisible d'avoir des lettre majuscules et un _ devant tous les noms de variables??? C'est affreux! Si le type est important, utilisez des noms comme sym_entry1, sym_entry2, ..., c'est beaucoup plus clair!
D'autres normes peuvent être fixées en fonction de l'usage de la variable.
Ainsi, par habitude, les variables utilisées comme compteur (par exemple dans les structures itératives, telles la boucle for), sont nommées i.
Dans un tel cas, nous utiliserons une écriture de ce style :
    short S_i_1;    // Déclaration de la variable de compteur.
    for(S_i_1=0 ; S_i_1<10 ; S_i_1++)
    {
        // exécutions de quelques instructions...
    }

Et tu trouves ça vraiment plus lisible que:
    short i;    // Déclaration de la variable de compteur.
    for(i=0 ; i<10 ; i++)
    {
        // exécutions de quelques instructions...
    }

???
Avec plusieurs compteurs, soit on met i, j, k, ..., soit i1, i2, i3, ..., mais pas S_i_1, S_i_2, ...!
Nous respecterons cette habitude, en préfixant certaines variables en fonction de leur usage.
Voici les différentes propositions que je peux actuellement faire :
 -----------------------------------
|       usage de        |           |
|      a variable       |  Préfixe  |
 -----------------------------------
|  compteur             |  i_       |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
|                       |           |
 -----------------------------------


Cependant, j'insiste, et je n'insisterai jamais assez, sur le fait que de tels préfixes sont totalement inutiles si vous employés des noms de variables pour le moins obscur.
Je m'explique :
Tous les noms de variable du style
ma_var1_, ma_var_2, ma_var_3 et autres, sont totalement à proscrire.

Quelle idée de nommer ses variables ma_var_1, ...! Moi, je les appellerais a, b, c, c'est plus court. grin
Il est nettement plus explicite de les nommer, par exemple, selon le contexte, de la façon suivante :
position_heros_x, position_heros_y dans le cadre, ici, d'un jeu où la position du héros puisse être définie selon une coordonnée en X et une coordonnée en Y.

C'est vrai, mais x et y suffisent.
Les données constantes (les constantes symboliques définies au niveau préprocesseur par la commande #define) porteront des noms écrits intégralement en majuscules, et ne comportant aucun préfixe.
Par exemple :
#define MA_CONSTANTE 10 // défini une constante valant 10.

Là, je suis d'accord.
Bon, voila, j'ai proposé... J'attend vos réactions, avant de rajouter d'autres types de données, complétant ainsi ce que j'ai ici rédigé.

Bon, voilà les miennes.
Si jamais la réaction face à ma proposition est positive, et que nous parvenons, ensemble, à nous mettre d'accord sur quelque chose de correct aux yeux de la majorité, j'ai la ferme intention de rendre mon tutorial "compatible" à cette norme une fois qu'elle sera achevée.

eek sick
Je vais insiter sur une dernière chose : faire entrer de telles choses dans ses habitudes de programmation est chose difficile... Mais je sais que, une fois celle-ci prise, elle ne peut être que bénéfique, que ce soit au programmeur, ou à ceux qui le liront.

Si la norme donne du code vraiment lisible, peut-être. Mais si la norme utilise la notation hongroise, sick...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

27

janjan2 : tout a fait d'áccord avec toi.
Kevin : Y too !

28

-

29

----------------------------------------------
Kevin, 25>

Les régimes autoritaires... arf... en Autriche, tu es bien placé pr parler grin
(bon, OK, je me la ferme avec ce qui s'est passé au premier tour en France sad)
Si tu lis ce que j'ai noté un tout petit peu plus loin, je met :
"
Je tiens à préciser que je ne me permettrait pas de qualifier le respect d'une telle convention d'écriture comme obligatoire, et tiens à mettre immédiatement certaines choses au clair :
1: Vous n'êtes nullement obligé de respecter une telle idée !
" (et encore un peu après... mais ça comence à faire long grin)
Je ne me considére donc pas comme particulièrement "autoritaire".
Ca fait juste "pour le style"...
Te permettrais-tu de qualifier l'ANSI de "autoritaire", ou tout autre organisme du même style (IEEE, ISO, ...)



Tout le monde se fiche de l'air qu'à le code...
=> PAS MOI !

Tu ne cherche pas à comprendre qd on te demande de l'aide ?
Tu as bien de la chance d'y parvenir dans ce cas... personellement, je rapprocherai ce comportement de celui d'une machine... Trouver la solution sans COMPRENDRE...
Mais bon, tu fais comme tu veux après tout... J'aime le savoir... libre à toi d'aimer ce que tu veux !


"
1. Si on publie une source, ce n'est pas nécessairement pour que les débutants la comprennent. Par exemple, je vois mal un débutant comprendre les sources de TICTEX et pourtant elles sont données.
2. Chaque programmeur programme comme il veut, et on ne peut pas obliger tout le monde à utiliser les mêmes standards de style de code source
"
Il est vrai que si on publie une source, ce n'est pas TOUJOURS pour que les débuttants la lisent, la comprennent, et s'en servent dans leur apprentissage... Mais reconnais que c'est parfois le cas !
(Tu ne peux pas dire le contraire sur ce coup sans être de mauvaise foi!)
Heureusement que chaque programeur code comme il veut... (je ne reviendrai pas en détails sur le terme "obliger" que tu emploie ici... j'ai en effet déjà dit quelques mots à ce sujet plus haut) Mais certains programeurs ne voudraient-ils pas coder, du moins dans certains cas, de façon à aider les débutants ? En es-tu certain ? Personnellement, cela m'est déjà arrivé...


"
Çà, ça dépend de ce qu'on fixe comme norme...
"
=> Il s'agissait exactement de ce sujet...
Et, d'ailleurs, tu es un des deux détracteurs que j'attendais... il me semble que le second à posté plus loins...


Squale:
"
Je tiens à préciser que je ne me permettrait pas de qualifier le respect d'une telle convention d'écriture comme obligatoire, et tiens à mettre immédiatement certaines choses au clair :
1: Vous n'êtes nullement obligé de respecter une telle idée !
"
Kevin:
"
Heureusement!
"
Hum... te rappelles-tu de ce que tu as dit au début de ton post concernant les régimes autoritaires, et, plus loins, ce que tu as dit sur "obliger" ???
Ceci recoupe ce que j'ai dit plus haut sur le fait que ce n'est NULLEMENT obligé !


Arf, je vois que tu es anti-MS... il y a de quoi, je le reconnais.
Mais, à mes yeux, MS n'a pas fait que de mauvaises choses.



"
En quoi est-ce plus lisible d'avoir des lettre majuscules et un _ devant tous les noms de variables??? C'est affreux! Si le type est important, utilisez des noms comme sym_entry1, sym_entry2, ..., c'est beaucoup plus clair!
"
ça revient à utiliser des variables comme ceci :
var1, var2, var3, var4, var5, var6, var7, etc...
Et alors là, pr comprendre le source, aussi doué que tu sois, s'il y a 100 variables déclarées ainsi, tu vas t'amuser, et pas qu'un peu, pour comprendre le source...
Voila un cas où j'utiliserai la fonction "Remplacer" de TIGCC (ou de l'éditeur, peut importe celui que tu utilises) pour mettre des noms un peu plus évocateurs !


Oué, bon, je reconnais que j'ai un peu abusé sur les compteurs (mais je l'ai déjà reconu plus haut dans ce topic !)



Pour les noms de constantes en MAJ, je suis happy de voir que tu sois d'accord... le contraire m'aurait réellement horrifié.



Pour ce que tu dis au final, pkoi du code utilisant la notation hongroise ne serait-il pas lisible ?
Je sais que cette notation m'aide pas mal dans certains cas.

----------------------------------

PpHd, 26> tu es le second détracteur que j'attendais grin



-----------------------------------
janjan2 (dsl, je répond pas dans l'ordre sad)
Ton source n'est pas complétement illisible grin
y'a des trucs qui me choquent, d'autres que je pige pas tout de suite...
(à mon avis, le seul gros défaut de présentation, c qu'il y a pas assez d'espaces à mon gout grin)


------------------------------------

Je précise que ce que j'ai ici dit n'est pas destiné à vexer qui que ce soit...
dans les progs que j'écris, je n'ai pas PERSONNELLEMENT besoin de cette idée de norme.
dans ceux que je reçois... soit ils sont assez lisibles et compréhensibles, soit ma réponse tarde, ou ne vient pas (je n'ai pas 36 heures par jour)
Donc, je ne proposais ça que pour aider les débutants, come je cherche à le faire depuis en gros un an et demi maintenant, et pas dans mon intéret personnel !
La décision ne me revient pas, je n'essayerai pas d'imposer quoi que ce soit par moi-même et sans soutient.

avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

30

Je suis du même avis que Kevin et PpHd, d'autant plus que le standard a l'air vraiment horrible... il ne me viendrait pas à l'idée de prefixer des noms de variables par des types en majuscules en plus eek
Mais si vous tenez vraiment à utiliser un standard, pourquoi ne pas en utiliser un qui soit deja clairement établi et reconnu, comme le GNU Coding Standards ?
So much code to write, so little time.