Pages : 1
#1 Le 11/05/2008, à 18:24
- cidarK
[Résolu] Programmation propre
Salut,
J'entends partout parler de programmation propre, donc ça m'aiderait bien de savoir ce que ça veut dire concrètement.
Je programme -si je peux dire- en C, donc si quelqu'un connaît les erreurs typiques qui font qu'un programme ne soit pas vraiment propre en C, je suis tout ouïe.
Merci d'avance.
Dernière modification par cidarK (Le 14/05/2008, à 22:36)
Hors ligne
#2 Le 11/05/2008, à 18:40
- rniamo
Re : [Résolu] Programmation propre
je ne suis pas un spécialiste mais déjà tu peux éviter les variables globales, libérer la mémoire si tu en alloues etc...
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#3 Le 11/05/2008, à 21:06
- telliam
Re : [Résolu] Programmation propre
tester correctement tous les codes retours par exemple
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#4 Le 11/05/2008, à 23:38
- nicolas.sitbon
Re : [Résolu] Programmation propre
Pour ce qui est des erreurs courantes : http://nicolasj.developpez.com/articles/erreurs/
,pour ce qui est des bonnes pratiques : http://mapage.noos.fr/emdel/codage.htm et pour les mauvaises pratiques : http://mapage.noos.fr/emdel/goret.htm
Hors ligne
#5 Le 12/05/2008, à 01:02
- nicolas66
Re : [Résolu] Programmation propre
Dans les grandes lignes :
* Commenter
* Aérer son code
* Eviter au maximum les warnings
* Bien séparer la déclaration de l'implémentation
* Avoir une bonne gestion des erreurs
* Garder une certaine logique
* Donner des noms cohérents et explicites aux variables / fonctions
* Désallouer proprement
La règle d'or : se rappeler que soi-même ou quelqu'un d'autre pourrait être amené à reprendre le code que l'on écrit.
[hs]Certains points de l'échelle de goret me semblent plutôt discutables [/hs]
Dernière modification par nicolas66 (Le 12/05/2008, à 01:03)
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne
#6 Le 12/05/2008, à 08:45
- nicolas.sitbon
Re : [Résolu] Programmation propre
[hs]Certains points de l'échelle de goret me semblent plutôt discutables [/hs]
Je pense qu'il faut savoir reconnaître son maître : le jour où tu auras l'expérience de l'auteur, tu pourras "discuter". Pour info, Emmanuel Delahaye a une expérience de 17 ans dans l'embarqué en C et il a largement démontrer son niveau (notamment dans d'autres forums C).
Hors ligne
#7 Le 12/05/2008, à 10:02
- Karl_le_rouge
Re : [Résolu] Programmation propre
Si tu lis attentivement, il est relativement mesuré dans son échelle de Goret. Il a même prévu les cas tangents qui fait qu'au final, on peut pas discuter grand chose à part l'ordre.
Utilisation de goto quand une alternative simple existe.
Une personne qui sait utiliser goto à bon escient est un (très) bon programmeur C.
Hormis les bons conseils de nicolas.sitbon et d'Emmanuel Delahaye, je rajouterais prends une feuille et un stylo avant de te ruer sur ton clavier.
Hors ligne
#8 Le 12/05/2008, à 10:20
- nicolas.sitbon
Re : [Résolu] Programmation propre
je rajouterais prends une feuille et un stylo avant de te ruer sur ton clavier.
Bien dis, une fois de plus, cela est formalisé sur le site de l'auteur : http://mapage.noos.fr/emdel/dev_proj.htm avec un cas d'exemple : http://mapage.noos.fr/emdel/snake.htm
Hors ligne
#9 Le 12/05/2008, à 10:57
- telliam
Re : [Résolu] Programmation propre
Je suis d'accord avec nicolas66, certains points peuvent être discutables.
Et même si je reconnait les qualités d'Emmanuel Delahaye, il ne faut pas non plus forcément prendre ses paroles comme paroles d'evangile. ( Surtout que certaines de ses règles sont très subjectives. Exemple : "Exces de 'decorations'. Lignes, cadres...", à partir de qd est on en excès???
Néammoins c'est une bonne base de départ.
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#10 Le 12/05/2008, à 13:22
- nicolas66
Re : [Résolu] Programmation propre
Comme telliam, je ne remets pas en cause les compétences de E. Delahaye. Selon moi, quelques points reflétaient plutôt un parti pris. En revanche, je suis d'accord avec la plupart des autres points. On a le droit d'avoir des opinions différentes sur un même sujet tout en respectant celles de ses interlocuteurs non ?
Bref, ca n'est pas de le sujet de la discussion et je crois que ca n'intéresse pas trop l'auteur de ce post. Je crois que le meilleur conseil a été donné par Karl_le_rouge : poser ses idées sur papier et ne pas se précipiter
Dernière modification par nicolas66 (Le 12/05/2008, à 13:25)
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne
#11 Le 12/05/2008, à 14:29
- Pygnol
Re : [Résolu] Programmation propre
Une personne qui sait utiliser goto à bon escient est un (très) bon programmeur C.
Je n'ai encore jamais vu d'utilisation de goto qui ne pouvait avantageusement être remplacé par du code structuré. Mais je suis curieux.
Thierry
Dernière modification par Pygnol (Le 12/05/2008, à 14:29)
Hors ligne
#12 Le 12/05/2008, à 15:14
- Karl_le_rouge
Re : [Résolu] Programmation propre
@Pygnol: c'est justement pour se débarasser de code structuré superflu qu'on utilise goto. Dans certains cas, il est plus rapide et plus lisible d'utiliser un goto.
Quelques utilisations de goto:
* simuler une exception pour sortir de plusieurs boucles imbriqués.
* la gestion des erreurs (très utilisé dans le noyau Linux Cf "Linux Devices Drivers")
Linux et les pilotes Linux utilise abondamment goto si tu cherches des exemples de code.
http://kerneltrap.org/node/553/2131
A moins de faire de l'embarqué ou de la programmation système, il est très rare qu'un programmeur ait réellement besoin de goto à l'exception des goto déguisés que sont break, continue et la structure switch/case. On pourrait faire la même remarque à propos de volatile.
Hors ligne
#13 Le 12/05/2008, à 15:26
- nicolas.sitbon
Re : [Résolu] Programmation propre
@Pygnol: c'est justement pour se débarasser de code structuré superflu qu'on utilise goto. Dans certains cas, il est plus rapide et plus lisible d'utiliser un goto.
Quelques utilisations de goto:
* simuler une exception pour sortir de plusieurs boucles imbriqués.
* la gestion des erreurs (très utilisé dans le noyau Linux Cf "Linux Devices Drivers")Linux et les pilotes Linux utilise abondamment goto si tu cherches des exemples de code.
http://kerneltrap.org/node/553/2131A moins de faire de l'embarqué ou de la programmation système, il est très rare qu'un programmeur ait réellement besoin de goto à l'exception des goto déguisés que sont break, continue et la structure switch/case. On pourrait faire la même remarque à propos de volatile.
effectivement, je n'aurais pas dis mieux, le code source de linux regorge de goto, de return, de register et j'en passe. Pour volatile je resterais modéré dans la mesure ou on en a souvent besoin pour les gestionnaire de signaux.
Hors ligne
#14 Le 12/05/2008, à 17:43
- snapshot
Re : [Résolu] Programmation propre
Python a sa propre notion de code propre :
$ python
Python 2.5.2 (r252:60911, Apr 21 2008, 11:12:42)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>>
Dernière modification par snapshot (Le 12/05/2008, à 17:43)
Pensez à mettre [Résolu] dans le titre une fois votre problème réglé !
Hors ligne
#15 Le 14/05/2008, à 13:35
- Benzo
Re : [Résolu] Programmation propre
Utiliser ++i (préincrémentation) quand le i++(postincrémentation) n'est pas spécifiquement nécessaire
...
...
Hors ligne
#16 Le 14/05/2008, à 22:36
- cidarK
Re : [Résolu] Programmation propre
Désole pour le retard
Je vous remercie tous pour vos réponses. spécialement nicolas.sitbon, c'est exactement ce que je cherchais.
Hors ligne
Pages : 1