Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/08/2008, à 22:40

dibat

discussion sur la présentation de code

Bonjour à tous,

dans le cadre de mon boulot je suis ammené à beaucoup scripter pour automatiser des tâches dans un environnement unix assez hétérogène (AIX, Tru64, Solaris....).

Je code essentiellement en perl (détail important pour la suite car c'est un langage réputé pour devenir vite illisible).

En discutant avec un collègue, j'en suis venu à me poser une question qui vous semblera peut-être ridicule mais qui peut prendre son importance quand on en arrive à écrire plus de 1000 lignes de code.

Pour moi, la convention veut qu'on utilise des fonctions et des procédures uniquement pour des partis du code qui seront utilisées plusieurs fois. Mon collègue lui, a une toute autre conception.
Il utilise les fonctions et les procédures pour découper son code de manière propre. au final un "main" de très peu de lignes et des fonctions à outrance. Au final c'est vrai que son code est clair.

Voilà, je me demandais comment vous, de votre côté, vous concevez vos scripts. Avez-vous des trucs à vous pour avoir un code clair et relisible par un autre ?

Hors ligne

#2 Le 05/08/2008, à 22:42

SeTtHe

Re : discussion sur la présentation de code

??? y mettre beaucoup de commentaires, tout simplement ?

big_smile

Hors ligne

#3 Le 05/08/2008, à 22:44

wido

Re : discussion sur la présentation de code

je débute pour faire mes scripts , mais en regardant sur le net et sur ce forum ,j'ai appris pas mal de truc pour comprendre plus facilement un code, j'utilise le plus possible les fonctions et les commentaires c'est plus facile pour la relecture

Hors ligne

#4 Le 05/08/2008, à 22:48

dibat

Re : discussion sur la présentation de code

@ Setthe

C'est une évidence.

Mais au delà des commentaires : quand il faut gérer énormement de cas sur un script en fonction des OS et autres facteurs on arrive vite a une usine à gaz...

@ wido

On apprend beaucoup sur le net. Moi j'ai beaucoup appris à l'école également et notamment à être rigoureux. Toi tu utilises les fonctions pour découper ton code ou pour le code qui est réutilisé plusieurs fois?

Dernière modification par dibat (Le 05/08/2008, à 22:49)

Hors ligne

#5 Le 05/08/2008, à 22:53

wido

Re : discussion sur la présentation de code

quand j'utilise souvent la même portion de code , je fais appel à la fonction

Hors ligne

#6 Le 05/08/2008, à 22:53

SeTtHe

Re : discussion sur la présentation de code

Perso, j'utilise les fonctions principalement quand un bout de code est utilisé plusieurs fois.

Par contre une suite d'instruction qui prend l'allure d'une usine à gaz peut effectivement être mise dans une fonction pour clarifier le code...

y-a-t-il une règle absolue ?

Hors ligne

#7 Le 06/08/2008, à 00:09

nicolas66

Re : discussion sur la présentation de code

Il utilise les fonctions et les procédures pour découper son code de manière propre. au final un "main" de très peu de lignes et des fonctions à outrance.

Perso, c'est exactement ce que je fais. Au final, mon `main' ne dépasse pas 10 lignes.


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#8 Le 06/08/2008, à 00:50

Yannick_LM

Re : discussion sur la présentation de code

J'ai eu un prof qui m'a appris deux trucs:

1. Éviter de faire des copier/coller de bouts de code : faites des fonctions !

2. Ne pas avoir de fonction qui prennent plus d'un écran

Je trouve le point 2. vachement important pour la relecture.

Si on y arrive pas, des commentaires du genre:

/**
 * MAClasse::Machin fait:
 * (1) des vérifications
 * (2) appelle A::Bidule
 * (3) appelle B::Chose si Bidule
 * (4) Finit si C::Tagada est vrai
  * @param : paramètres
  * @returns: truc renvoyé par Machin
 **/
  MaClasse::Machin (paramètres)
  {
  //_____________
  // (1)

  <beaucoup de code>

 //______________
 // (2)

 <encore du code>

  //___________
 // (3)

 for (i in pouet) 
 {

   <toujours du code>

 } // fin de la boucle sur pouet

 //________
 // (4)

  if ( condition)
  {
     
   ...

  }
  else //! Condition est faux, donc on 
  {

   ....

  } // Fin test condition


}

aident énormément à la relecture.

(Bon, j'ai mis une pseudo-syntaxe C++, mais l'idée est là)

<hs>
J'aime beaucoup les effets de style qu'on peut avoir avec les commentaires, en C++, pas vous ?
</hs>



EDIT:
Et puis, le mieux, c'est de te faire relire. C'est comme ça qu'on s'aperçoit qu'on ne mets jamais assez de commentaires smile

Dernière modification par Yannick_LM (Le 06/08/2008, à 00:59)


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#9 Le 06/08/2008, à 06:28

nicolas66

Re : discussion sur la présentation de code

Je pense qu'un jour, il faut se fixer une bonne fois pour toutes des conventions de coding non-ambigües, lisibles et surtout logiques. Si le code est amené à être partagé, alors ces quelques lignes peuvent être un bon début :

* Pas de franglais
* Commenter son code
* Aérer son code (1 fois sur 2, je tombe sur du code de porc)
* Segmenter le code en fonctions -> une fois fonction a UNE seule tâche
* Donner des noms de variables clairs (pas genre tmpZ4e0fj45akm)
* Préférer les fonctions courtes (cf. Yannick_LM)

La règle d'or c'est de toujours essayer de se mettre à la place de la personne qui  sera censée reprendre notre code. Tout ca demande un peu d'automastime et ca n'est pas la fac qui me l'a appris.

Note 1 - `GNU indent' permet de mettre en forme du code C. Le support du C++ est expérimental pour le moment.
Note 2 - Echelle de Goret

"Yeah, we can do it !", militons pour un code plus propre smile

Dernière modification par nicolas66 (Le 06/08/2008, à 06:35)


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#10 Le 06/08/2008, à 09:41

SeTtHe

Re : discussion sur la présentation de code

nicolas66 a écrit :

La règle d'or c'est de toujours essayer de se mettre à la place de la personne qui  sera censée reprendre notre code

+1

Hors ligne

#11 Le 10/08/2008, à 22:18

thy

Re : discussion sur la présentation de code

je crois que l'essentiel a été dit

avoir des conventions d'indentation aide aussi la relecture
tu peux definir un mode d'indentation dans ton editeur / ide
et le partager avec tes collègues.

Hors ligne

#12 Le 11/08/2008, à 07:28

robrob

Re : discussion sur la présentation de code

Yannick_LM a écrit :

<hs>
J'aime beaucoup les effets de style qu'on peut avoir avec les commentaires, en C++, pas vous ?
</hs>

Ce n'est pas lié au C++ (tu peux faire la même chose avec presque n'importe quel langage), mais à ton éditeur de texte qui "comprend" ce type de commentaire.
Le gros intérêt de ce type de commentaire est de permettre ensuite la génération d'une documentation avec des outils comme doxygene.

Hors ligne

#13 Le 11/08/2008, à 07:54

Nemingway

Re : discussion sur la présentation de code

L'essentiel à été dit; en c/c++ j'utilise souvent l'instruction inline pour éclaircir le code.

Moi aussi j'aime commenter avec style smile

Hors ligne

#14 Le 11/08/2008, à 08:26

nicolas66

Re : discussion sur la présentation de code

A mon avis, le mot-clé inline faut pas trop en abuser dans certains cas hmm


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#15 Le 11/08/2008, à 19:30

thy

Re : discussion sur la présentation de code

nicolas66 a écrit :

A mon avis, le mot-clé inline faut pas trop en abuser
dans certains cas hmm

d'après moi, il faut l'utiliser seulement si on veut
faire de l'optimisation, cela permet de garder un découpage
claire en plusieurs fonctions tout en gardant un code rapide

Mais il faut avoir a l'esprit que chaque appel a la fonction inliné
sera remplacé par le corps de la fonction, et que du coup le binaire
produit sera plus gros.

Hors ligne

#16 Le 11/08/2008, à 19:49

nicolas66

Re : discussion sur la présentation de code

Mais il faut avoir a l'esprit que chaque appel a la fonction inliné
sera remplacé par le corps de la fonction, et que du coup le binaire
produit sera plus gros.

Exactement smile


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#17 Le 07/09/2008, à 16:37

Yannick_LM

Re : discussion sur la présentation de code

Tiens, au passage, j'ai pris aujourd'hui une bonne résolution:
écrire les commentaires AVANT le code.

C'est vachement mieux, je vous le recommande


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne