# "L'art du beau code", vos règles?

**URL:** <https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809>\
**Category:** Pause Café\
**Created:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809 "2016-02-20T18:14:13Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lucci](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/85f322/32.png) [@Lucci](https://www.debian-fr.org/u/Lucci)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/1 "2016-02-20T18:14:13Z")

</div>

Existe t il des règles universelles, valables au delà des langages ?  
Selon vous, quelles sont les lois de la programmation ?

---

<div class="post-metadata">

**Author:** ![Junichiro2](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5ac83/32.png) [@Junichiro2](https://www.debian-fr.org/u/Junichiro2)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/2 "2016-02-20T18:14:13Z")

</div>

[quote=“Lucci”]  
Selon vous, quelles sont les lois de la programmation ?[/quote]  
C’est ton copain Sarko qui fait les programmes maintenant, non?

---

<div class="post-metadata">

**Author:** ![Lucci](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/85f322/32.png) [@Lucci](https://www.debian-fr.org/u/Lucci)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/3 "2016-02-20T18:14:13Z")

</div>

[quote=“Junichirô”][quote=“Lucci”]  
Selon vous, quelles sont les lois de la programmation ?[/quote]  
C’est ton copain Sarko qui fait les programmes maintenant, non?[/quote]  
Si c’est du troisième degré, désolé il ne m’est pas accessible. Merci de développer.  
Si c’est du premier ou second, tu es hors sujet 😉

---

<div class="post-metadata">

**Author:** ![Num\_s](https://www.debian-fr.org/user_avatar/www.debian-fr.org/num_s/32/3834_2.png) [@Num\_s](https://www.debian-fr.org/u/Num_s)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/4 "2016-02-20T18:14:13Z")

</div>

[quote=“Lucci”]Selon vous, quelles sont les lois de la programmation ?[/quote] 😒 [http://fr.wikipedia.org/wiki/International\_Obfuscated\_C\_Code\_Contest](http://fr.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest) Gniarf gniarf… 😆

Oui, c’est pas drôle… je ➡ … ![:smt005](https://www.debian-fr.org/uploads/default/original/1X/cdd45e7dd754015ac5291329b843a2851a0d4fe8.gif)

![:smt006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif)

---

<div class="post-metadata">

**Author:** ![Junichiro2](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5ac83/32.png) [@Junichiro2](https://www.debian-fr.org/u/Junichiro2)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/5 "2016-02-20T18:14:13Z")

</div>

Si c’est du premier degré, il fallait mettre le fil dans “programmation” pas dans “pause café”?

---

<div class="post-metadata">

**Author:** ![Lucci](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/85f322/32.png) [@Lucci](https://www.debian-fr.org/u/Lucci)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/6 "2016-02-20T18:14:13Z")

</div>

[quote=“Num’s”][quote=“Lucci”]Selon vous, quelles sont les lois de la programmation ?[/quote] 😒 [http://fr.wikipedia.org/wiki/International\_Obfuscated\_C\_Code\_Contest](http://fr.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest) Gniarf gniarf… 😆

Oui, c’est pas drôle… je ➡ … ![:smt005](https://www.debian-fr.org/uploads/default/original/1X/cdd45e7dd754015ac5291329b843a2851a0d4fe8.gif)

![:smt006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif)[/quote]  
😃 je ne connaissais pas 🙂

> [@](#):
>
> Si c’est du premier degré, il fallait mettre le fil dans “programmation” pas dans “pause café”?

Pas selon moi, mais si un modérateur est du même avis, il ne faut pas hésiter à la déplacer.  
J’ai imaginé ce sujet comme quelque chose de plus philosophique que technique.  
(le but n’étant pas de “produire” quelque chose)

---

<div class="post-metadata">

**Author:** ![Junichiro2](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5ac83/32.png) [@Junichiro2](https://www.debian-fr.org/u/Junichiro2)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/7 "2016-02-20T18:14:14Z")

</div>

Oh Lucci, c’est vendredi. ne prends pas tout au premier degré!  
Debout ! Debout ! Compagnons de misère,  
L’heure est venue, il faut se révolter,  
Que le sang coule et rougisse la terre,  
Mais que ce soit pour notre liberté.  
C’est reculer que d’être stationnaire,  
On le devient de trop philosopher.  
Debout ! Debout ! Vieux révolutionnaire  
Et l’Anarchie enfin va triompher !

---

<div class="post-metadata">

**Author:** ![Lucci](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/85f322/32.png) [@Lucci](https://www.debian-fr.org/u/Lucci)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/8 "2016-02-20T18:14:14Z")

</div>

Il est chaud le Junichirô 🙂

---

<div class="post-metadata">

**Author:** ![ziouplaboum](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/f1d935/32.png) [@ziouplaboum](https://www.debian-fr.org/u/ziouplaboum)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/9 "2016-02-20T18:14:14Z")

</div>

Pour faire du beau code:

- faire du brainfuck?
- faire construire une machine de turing à un enfant de trois ans, avec du papier et une paire de ciseaux?
- faire du scheme? define ((()())())

[EDIT] faire un site web avec frontpage?

---

<div class="post-metadata">

**Author:** ![Junichiro2](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/b5ac83/32.png) [@Junichiro2](https://www.debian-fr.org/u/Junichiro2)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/10 "2016-02-20T18:14:14Z")

</div>

Quand j’étais sous Mac et pour le html, je me servais de BBEdit (Bluefish lui ressemble un peu) et à la fin je lui faisais un petit nettoyage avec Tidy; après le lui demandais de se formater avec une hiérarchisation soft. Cela ne changeais pas grand chose sur le fond (Mis à part le nettoyage Tidy) mais c’était beaucoup plus compréhensible après. Ne serait-ce que si tu avais des corrections à faire.  
Je ne sais pas ce qu’il en est de la programmation; car là, je n’y comprends pas grand chose pour le moment. (La programmation sarkosienne, c’était pour les programmes télé).

---

<div class="post-metadata">

**Author:** ![shell-boudeur](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/85f322/32.png) [@shell-boudeur](https://www.debian-fr.org/u/shell-boudeur)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/11 "2016-02-20T18:14:15Z")

</div>

des règles universelles ?  
cad ?

---

<div class="post-metadata">

**Author:** ![Lucci](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/85f322/32.png) [@Lucci](https://www.debian-fr.org/u/Lucci)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/12 "2016-02-20T18:14:15Z")

</div>

Des règles qui s’appliqueraient à tous les langages de programmation. Par exemple “rien ne doit être écrit plusieurs fois”, ou des designs patterns absolument indispensables…

---

<div class="post-metadata">

**Author:** ![Num\_s](https://www.debian-fr.org/user_avatar/www.debian-fr.org/num_s/32/3834_2.png) [@Num\_s](https://www.debian-fr.org/u/Num_s)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/13 "2016-02-20T18:14:15Z")

</div>

Essayer de commenter au maximum et de créer des structures “parlantes”…  
Être un peu feignasse sur les bords et toujours se poser la question: y’a pas moins chiant pour faire ça?

Au passage, la réflexion favorite d’un prof d’algo que j’ai “eu” il y a déjà quelque temps: “si tu dois te servir d’un tableau, pas besoin de faire le ménage avant, c’est à toi de trouver une astuce pour savoir où tu en es… tu veux que je te fasse essuyer tous les sièges d’une salle de spectacle avant de te demander d’en choisir un pour t’asseoir?” 😆

![:smt006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif)

---

<div class="post-metadata">

**Author:** ![dimm](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/e9bcb4/32.png) [@dimm](https://www.debian-fr.org/u/dimm)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/14 "2016-02-20T18:14:15Z")

</div>

Tu trouveras peut-être des réponses en lisant ces livres écrits par des hackers expérimentés :  
[The\_Practice\_of\_Programming](http://en.wikipedia.org/wiki/The_Practice_of_Programming)  
[The Art of Unix Programming](http://www.catb.org/esr/writings/taoup/)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/15 "2016-02-20T18:14:16Z")

</div>

Personnellement je suis toujours dans la recherche de ma voie.

Il y a les aficionados du commentaire, qui veulent plus de commentaires que de ligne utiles et d’autre part tu as les gars comme Alan Coxx : “Un code doit être suffisamment lisible pour se comprendre de lui même”.

Je pense qu’il n’y a pas de vrai règles bien précises. Je tente de toujours garder ces deux idées en tête.

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/16 "2016-02-20T18:14:17Z")

</div>

Regarde aussi du cote de Scrum et de l’eXtreme Programming

---

<div class="post-metadata">

**Author:** ![Desintegr](https://www.debian-fr.org/user_avatar/www.debian-fr.org/desintegr/32/3771_2.png) [@Desintegr](https://www.debian-fr.org/u/Desintegr)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/17 "2016-02-20T18:14:29Z")

</div>

Avant tout, des exemples de convention de style :

- [manpages.debian.net/cgi-bin/man. … &locale=en](http://manpages.debian.net/cgi-bin/man.cgi?query=style&apropos=0&sektion=9&manpath=Debian+Sid&format=html&locale=en)
- [java.sun.com/docs/codeconv/html/ … C.doc.html](http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html)
- [python.org/dev/peps/pep-0008/](http://www.python.org/dev/peps/pep-0008/)
- [perldoc.perl.org/perlstyle.html](http://perldoc.perl.org/perlstyle.html)
- etc.

Chaque langage possède ses propres conventions d’écriture.

Ensuite, pour la beauté de la programmation, cela vient surtout avec l’expérience, je pense.

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/18 "2016-02-20T18:14:29Z")

</div>

Mes élèves écrivent des programmes dont le but n’est pas de marcher mais d’être compris vite et correctement par le correcteur. Pour cela je leur donne les régles suivantes:

- Une instaruction par ligne
- Une indentation correcte et régulière
- Une séparation nette entre les fonctions
- Des noms de variables explicaite, un nom «ll» est beaucoup moins compréhensible que «reste\_de\_la\_liste». De même les noms de fonctions doivent être explicites.
- Les variables d’environnement commencent toujours par une majuscule (souvent QUE des majuscules), les autres par une minuscule.

Voilà.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/19 "2016-02-20T18:14:30Z")

</div>

Je suis pas d’accord sur les variables d’environnements, pour moi que des majuscules c’est des constantes (généralement des variables définies avec le préprocesseur (le C est vraiment un langage audieux des fois)).

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:14 UTC](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809/20 "2016-02-20T18:14:31Z")

</div>

une fonction reçoit des arguments et un environnement (avec donc les variables d’environnement (en majuscules ou au moins commençant par une majuscule) qui sont souvent des constantes mais pas toujours) et renvoit un résultat tout en modifant l’environnement (effets de bords).  
Il est impératif d’avoiir la certitude qu’une variable commençant par une minuscule doit être définie dans le code. Cela explique par exemple pourquoi les compilateurs des langages récents te mettent un warning quand une variable commence par une majuscule.[quote]#let rec fact = function  
| 0 -\> 1  
| N -\> N\*(fact (N-1));;  
Toplevel input:

> | N -\> N\*(fact (N-1));;  
> ^  
> Warning: the variable N starts with an upper case letter in this pattern.  
> fact : int -\> int =

# 

[/quote]

[Page suivante](https://www.debian-fr.org/t/lart-du-beau-code-vos-regles/15809.md?page=2)
