question d'indentation

question d'indentation - C - Programmation

Marsh Posté le 08-01-2008 à 18:40:45    

Bonjour,

 

j'aimerai savoir ce que vous pensez de cette forme d'indentation :

 
Code :
  1. INLINE static int fonction_obscure(float* a) {
  2.   int i ;
  3.   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;
  4.   return 1 ;
  5. }
 

Le texte est indenté, pourtant : pas d'espace verticaux, return sur la même ligne. Dans une autre partie du code on trouve également des listes de déclarations de variables extremement longues, tout sur la même ligne ....ce qui rend le truc assez degeulasse à lire.

 

Ma question aux développeurs qui ont l'habitude de lire et réutiliser du code, et d'en coder : trouvez vous que c'est une indentation normale, lisible ..? Est ce que je suis le seul a trouver ca absoluement abominable. Sur une fonction de 3 ligne ca va, il faut l'imaginer sur des milliers de lignes.

 
Code :
  1. int
  2. a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,
  3. g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,
  4. d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r
  5. ,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g
  6. ,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,
  7. r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,;
  8. float
  9. a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d
  10. ,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,
  11. d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,
  12. r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d
  13. ,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,
  14. a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,;
  15. char * a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r
  16. ,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,
  17. r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,
  18. f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f
  19. ,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,
  20. g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,a,d,f,g,r,;
  21. INLINE static int fonction_obscure(float* a) {
  22.   int i ;
  23.   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;
  24.   return 1 ;
  25. }
  26. INLINE static int fonction_obscure(float* a) {
  27.   int i ;
  28.   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;   return 1 ;
  29. }
  30. INLINE static int fonction_obscure(float* a) {
  31.   int i ;
  32.   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;   return 1 ;
  33. }
  34. INLINE static int fonction_obscure(float* a) {
  35.   int i ;
  36.   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;   return 1 ;
  37. }
  38. INLINE static int fonction_obscure(float* a) {
  39.   int i ;
  40.   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;
  41.   return 1 ;
  42. }
  43. INLINE static int fonction_obscure(float* a) {
  44.   int i ;
  45.   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;   return 1 ;
  46. }
  47. INLINE static int fonction_obscure(float* a) {
  48.   int i ;
  49.   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;
  50.   return 1 ;
  51. }
  52. INLINE static int fonction_obscure(float* a) {
  53.   int i ;   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;   return 1 ;
  54. }
  55. INLINE static int fonction_obscure(float* a) {
  56.   int i ;   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;   return 1 ;
  57. }
 


par exemple un peu comme au dessus .... et pas que pour des fonctions inline.

 

(Je précise encore une fois que le code du dessus est indenté, donc l'indentation automatique ne changera rien)

 

merci par avance

Message cité 1 fois
Message édité par in_your_phion le 08-01-2008 à 18:48:25
Reply

Marsh Posté le 08-01-2008 à 18:40:45   

Reply

Marsh Posté le 08-01-2008 à 20:16:45    

En voila un sujet original et constructif.

Reply

Marsh Posté le 08-01-2008 à 20:33:29    

unidentified a écrit :

Le plus clair pour moi c'est ça ... Par contre en ce qui concerne tes variables pourquoi y a-t-il plusieurs variables (de même type) aux noms identiques ?

 

pourquoi ca te parait clair de tout écrire à l'horizontale ?

 

les variables sont les mêmes car c'est juste un exemple pour faire vite, normalement les variables sont toutes différentes mais ca donne un pâté immonde!!! LE pire, c'est que je dois reprendre le code de UN mec qui a fait ça .... il sait programmer mais personnellement je trouve pas que c'est réutilisable ... :( Il a fait son truc a sa sauce mais c'est inbitable pour les autres (d'ailleurs, c'est pas trop documenté  :cry: )


Message édité par in_your_phion le 08-01-2008 à 20:33:48
Reply

Marsh Posté le 08-01-2008 à 20:54:26    

Haha, bienvenue dans la vraie vie. Ce n'est pas ce qu'on t'avais vendu à l'école, hein ?
 
Bon, si ça peut te rassurer j'ai déjà bosser sur du code nettement moins bitable. Tellement que lorsqu'on avait expliqué au client ce que faisait vraiment le code, il ne m'avait pas cru et pensait que c'était moi qui avait introduit un bug.
 
C'était le truc classique : fonctions kilométriques, factorisation nulle, aucun tests unitaires, aucun commentaire (enfin à part pour désactiver du code obsolète), aucune doc (même niveau fonctionnel), logique spaghetti. Tu modifiais un truc, fallait passer 3 jours en debug pour être sur de n'avoir rien foutu en l'air ailleurs et passer en revu 90% du code à chaque fois (car aucune factorisation).
 
Ouais, fallait bien pouvoir manger chaque jour.

Reply

Marsh Posté le 08-01-2008 à 20:57:06    

C'est mon monde aussi. [:zytrasnif]
 
Des fois je me demande comment les programmes font pour fonctionner, et je ne cesse de m'émerveiller sur les incroyables déviances que la logique humaine peut adopter. [:vapeur_cochonne]
 
Sinon, pour l'indentation, c'est une non-question.
La seule vraie indentation valide et lisible, c'est celle qui est homogène sur l'ensemble d'un projet, et adoptée par tous les développeurs. Et ce quelles que soient ses préférences personnelles.
 
Ils ont eu le malheur de me donner notre futur environnement de dev à concevoir, ils vont pas comprendre quand je vais activer un indenteur auto. sur les check-in [:z800]


Message édité par Elmoricq le 08-01-2008 à 20:57:40
Reply

Marsh Posté le 09-01-2008 à 09:27:47    

Si tu as des déclarations de variables aussi longues que ça, tu as des problèmes plus graves que l'indentation ;)

Reply

Marsh Posté le 14-01-2008 à 19:12:51    

in_your_phion a écrit :


j'aimerai savoir ce que vous pensez de cette forme d'indentation :

Code :
  1. INLINE static int fonction_obscure(float* a) {
  2.   int i ;
  3.   for(i=0; i<15; i++) if(!FINITE(a[i])) return 0 ;
  4.   return 1 ;
  5. }


Le texte est indenté,


Selon des réglages qui ne sont pas les miens :  
 
http://delahaye.emmanuel.free.fr/spip.php?article7

Code :
  1. INLINE static int fonction_obscure (float *a)
  2. {
  3.    int i;
  4.    for (i = 0; i < 15; i++)
  5.       if (!FINITE (a[i]))
  6.          return 0;
  7.    return 1;
  8. }


 

Code :
  1. int
  2. a,d,f,g,r,a<...>;
  3. float
  4. a,<...>;


Pas du C...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 14-01-2008 à 19:31:38    

Pour ma part, en mode très compacté, je ferais plutôt comme ça.
Les codes trop aérés, ça use le scrolling à force.

Code :
  1. INLINE static int fonction_obscure (float *a) {
  2.    int i;
  3.    for (i = 0; i < 15; i++)
  4.       if (!FINITE (a[i])) return 0;
  5.    return 1;
  6. }

Reply

Marsh Posté le 14-01-2008 à 22:01:01    

apres ... 2 esapces en tab, ca suffit hein [:dawa]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed