Bienvenue invité ( Connexion | Inscription )
26 Jul 2009, 11:30
Message
#1
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 690 Inscrit : 28 Nov 2001 Lieu : Pas loin du grand pic qu'on surnomme Tour Eiffel Membre no 1 440 |
Bonjour à tous,
Nous voyons souvent sur ce forum des sujets demandant comment débuter en programmation, ou quel langage pour débuter. Ici je voudrais traiter d'un sujet connexe mais peu (pour ne pas dire pas) abordé: les méthodes et bonnes pratiques de programmation, indépendamment du langage. Connaître un (voire plusieurs) langages de programmation est certes important pour programmer. Mais en dehors de sa syntaxe et grammaire, il y a plein de choses qui viennent en amont et qui permettent de coder plus vite ou plus efficacement. Certains points seront bien sûr sujets à de controverses, donc je demande par avance aux représentants des divers courants de pensée en conflit de présenter leurs arguments SANS rentrer dans des débats sans fin. Vous l'aurez compris, je demande votre participation pour enrichir ce fil, car je ne prétend pas avoir la science infuse ni tous les bons conseils à donner. Ceci étant dit, voici un liste non exhaustive pour commencer: Réfléchir au problème et le modéliser avant de coder. Je citerai encore un de mes profs: "Le plus tôt vous commencez à coder, le plus tard vous finirez". Quand vous avez un nouveau programme à résoudre, commencez par le découper en boites gérant une partie de votre code de la façon la plus autonome des autres. Déroulez votre programme à la main sur une feuille de papier en pensant à tous les cas de figure qui peuvent se produire. Il n'y a qu'une fois que vous avez ce squelette clair dans votre tête que vous pouvez commencer à le coder. Nommez de façon propre vos variables et vos fonctions. D'une part, il faut que le nom soit en rapport avec ce que fait la variable/fonction (évitez var1, var2, toto, titi, tmp). D'autre part, prenez une convention de nom et tenez-vous y. Certain langages imposent une convention genre maFonction, MaClasse. D'autres ce sera ma_variable. Pour ceux qui n'en imposent pas, choisissez-en une. Des commentaires utiles! Inutile de raconter un roman pour décrire une fonction. Pour un commentaire de fonction dites en 2 lignes maximum ce qu'elle fait (si ça tient pas sur 2 lignes, c'est que votre fonction est trop compliquée et qu'il faut la découper pour faire plus simple) puis dire ce qu'on attent en arguments et quelle est la valeur de retour, en explicitant les valeurs particulières genre: "retourne la valeur de A, ou null en cas d'erreur" Pour des commentaires de code, ne paraphrasez pas le code, c'est inutile, ça fait perdre du temps et à vous et au lecteur! Dites plutôt ce que vous voulez en faire: Code //Commentaire inutile: si a égal b ou b égal c if(a == b || c==b) Code //Commentaire utile: si b appartient à l'ensemble if(a == b || c==b) Vous n'avez pas besoin de tout commenter, je dirait que commenter les fonctions et les passages difficiles c'est suffisant si le code a été bien découpé en fonctions. Avoir des notions d'algorithmique pour optimiser ses programmes Faire des test unitaires Indenter proprement son code -------------------- Mordu de Mac depuis 1996, avec un Performa 6230CD sous Mac OS 7.5.1. Depuis l'extinction de Steve Jobs, le logiciel libre se fait de plus en plus présent dans ma vie numérique.
|
|
|
|
![]() |
27 Jul 2009, 11:22
Message
#2
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 690 Inscrit : 28 Nov 2001 Lieu : Pas loin du grand pic qu'on surnomme Tour Eiffel Membre no 1 440 |
J'suis plutôt pour les accolades alignées selon l'exemple de Hellstorm, à moins d'avoir une contrainte de place (genre petit script php dans du code HTML que tu veux pas faire occuper toute la page), ou sinon passer à Python et plus avoir d'accolades du tout
-------------------- Mordu de Mac depuis 1996, avec un Performa 6230CD sous Mac OS 7.5.1. Depuis l'extinction de Steve Jobs, le logiciel libre se fait de plus en plus présent dans ma vie numérique.
|
|
|
|
macuserfr Techniques et astuces de programmation pour débutants et "confirmés" 26 Jul 2009, 11:30
Jaypee Bravo. C'est un très beau sujet.
Il faut not... 26 Jul 2009, 13:27
Hellstorm Lors d'une condition d'égalité avec une ... 27 Jul 2009, 08:29
noop Je me lance:
La documentation des programmes: pou... 27 Jul 2009, 08:33
Vin's Citation (Hellstorm @ 27 Jul 2009, 09:29)... 27 Jul 2009, 14:38
Hellstorm Citation (Vin's @ 27 Jul 2009, 15:38)... 27 Jul 2009, 20:21
Hellstorm Tiens au niveau des acolades je suis tout à fait ... 27 Jul 2009, 11:14
noop Déclaration des blocs en C/C++: Effectivement j... 27 Jul 2009, 11:48
macuserfr Je dirais que plus important qu'utiliser une f... 27 Jul 2009, 11:55
Sedutom Ce n'est pas une obligation mais je préfère ... 27 Jul 2009, 12:57
bad_duck Je ne sais plus d'où ça sort (un mec de chez... 27 Jul 2009, 13:00
Jaypee La règle des accolades doit être fixée collecti... 27 Jul 2009, 13:01
noop Un petit guide pour tout langage qui s'apparen... 27 Jul 2009, 13:43
Hellstorm Pour ce qui est des conventions de nommage, je tro... 27 Jul 2009, 14:01
macuserfr 12 réponses et 140 lectures pour un post qui a en... 27 Jul 2009, 14:28
Jaypee En C/C++, mettre les #define tout en majuscules et... 27 Jul 2009, 14:35
chombier Citation (Jaypee @ 27 Jul 2009, 15:35) En... 27 Jul 2009, 14:43
Phil J. Fry Indenter proprement son code
En Python, il est... 27 Jul 2009, 19:12
mpergand Citation (noop @ 27 Jul 2009, 09:33) Code... 27 Jul 2009, 21:58
chombier Citation (mpergand @ 27 Jul 2009, 22:58) ... 28 Jul 2009, 00:01
noop je propose d'ouvrir un sujet identique sur les... 27 Jul 2009, 23:36
macuserfr Bon, si tout le monde est d'accord pour dire q... 28 Jul 2009, 07:43
noop Citation (macuserfr @ 28 Jul 2009, 08:43)... 28 Jul 2009, 08:16
macuserfr Oui, les pointeurs!
Par contre dans ton deuxi... 28 Jul 2009, 09:21
Hellstorm Comme tu dis macuserfr, on est pas censé, d'o... 28 Jul 2009, 09:34
macuserfr Tiens, une astuce toute bête à laquelle je viens... 28 Jul 2009, 14:39
Hellstorm Ouaip, mais y a même mieux, du style rechercher e... 28 Jul 2009, 14:58
macuserfr Oui, oui, quand je disais la fonction recherche, j... 28 Jul 2009, 15:04
greg57 Bon euh... si c'est pour conseiller de faire d... 28 Jul 2009, 15:08
macuserfr Zut alors! Le niveau baisse... Vite les gars, ... 28 Jul 2009, 15:14
bad_duck Ouep le rechercher / remplacer est plus que risqu�... 28 Jul 2009, 15:22
macuserfr On est beaucoup parti sur le C, mais je pensai un ... 28 Jul 2009, 15:36
greg57 Ben dans ce cas c'est plus du codage c'est... 28 Jul 2009, 15:39
macuserfr Oui, une grande partie d'algo, mais pas seulem... 28 Jul 2009, 15:44
bad_duck http://fr.wikipedia.org/wiki/Méthode_agile
http:/... 28 Jul 2009, 15:49
noop Voici un exemple de bout de code qui écroule tout... 28 Jul 2009, 16:07
Jaypee Dans ce cas, il faut une API du style boolean isNi... 28 Jul 2009, 19:40
macuserfr J'arrive pas à m'y faire avec les éditeu... 29 Jul 2009, 07:57
bad_duck Citation (macuserfr @ 29 Jul 2009, 08:57)... 29 Jul 2009, 09:28
macuserfr Pour les éditeurs texte, on est d'accord
Po... 29 Jul 2009, 09:42
Hellstorm Personellement pour coder du C/C++ je me sers de x... 29 Jul 2009, 10:09
macuserfr Pareil, pour mes gros projets en C pendant les ét... 29 Jul 2009, 11:11
Jaypee J'avais signalé un problème de Smultron que ... 29 Jul 2009, 11:37
Hellstorm Je ne suis pas sur, mais il me semble que dans les... 29 Jul 2009, 12:01
macuserfr Oui, l'option existe sur la dernière version ... 29 Jul 2009, 12:42
Vin's Une petite bibliothèque qui facilite le déboguag... 30 Jul 2009, 08:59
noop Quand on fait du développement en C/C++ multi tac... 30 Jul 2009, 09:38
macuserfr Un peu HS, mais à l'école d'ingé où j... 30 Jul 2009, 13:24
cbrandt En C/Objective-C je mets toujours cette petite mac... 14 Aug 2009, 08:52
schlum Citation (cbrandt @ 14 Aug 2009, 09:52) E... 19 Oct 2009, 10:31
cbrandt Citation (schlum @ 19 Oct 2009, 11:31) Ci... 19 Oct 2009, 10:48
schlum Citation (cbrandt @ 19 Oct 2009, 11:48) o... 19 Oct 2009, 10:58
macuserfr Pourquoi faire du goto et des labels quand un
Code... 14 Aug 2009, 11:06
cbrandt je m'explique
si on a juste un ou deux appel... 14 Aug 2009, 14:15
noop Citation (cbrandt @ 14 Aug 2009, 15:15) j... 14 Aug 2009, 14:32
cbrandt Bien vu
j'aurais dû ajouter un appel à Fai... 14 Aug 2009, 14:52
Jaypee Sur ce coup, j'suis sceptique. Si le langage o... 15 Aug 2009, 09:31
macuserfr Oui, je suis sceptique aussi. En effet des try cat... 15 Aug 2009, 23:09
hubeert coucou
personnellement et afin d'optimiser le ... 16 Aug 2009, 07:03
noop Citation (hubeert @ 16 Aug 2009, 08:03) c... 17 Aug 2009, 08:20
hubeert coucou;
je n'ai pas parlé "vraiment... 17 Aug 2009, 09:02
noop Citation (hubeert @ 17 Aug 2009, 10:02) c... 17 Aug 2009, 09:19
hubeert pour le 33eme tu crées une deuxième variable voi... 17 Aug 2009, 10:53
noop Citation (hubeert @ 17 Aug 2009, 11:53) j... 17 Aug 2009, 11:31
flocharal Citation (hubeert @ 17 Aug 2009, 11:53) c... 17 Aug 2009, 21:03
Jaypee Je suis du même avis que noop, et je rajouterai ... 17 Aug 2009, 12:46
noop Citation (Jaypee @ 17 Aug 2009, 13:46) To... 17 Aug 2009, 13:07
hubeert coucou..
c'est pas mon job. j'ai un video... 17 Aug 2009, 13:33
noop On plaisante..... Et puis l'histoire du mec qu... 17 Aug 2009, 13:41
Hellstorm Citation (noop @ 17 Aug 2009, 14:41) On p... 17 Aug 2009, 14:13
hubeert coucou
d'accord alors continuons sur les astuc... 17 Aug 2009, 14:02
macuserfr Le binaire c'est un peu comme l'assembleur... 17 Aug 2009, 17:29
Jaypee Retour aux trucs...
J'ai un mini-poster impri... 19 Aug 2009, 20:48
noop Citation (Jaypee @ 19 Aug 2009, 21:48) Av... 20 Aug 2009, 08:10
Jaypee Je réactive un peu ce bon sujet.
Dernièrement, ... 19 Oct 2009, 08:25
noop Citation (Jaypee @ 19 Oct 2009, 09:25) Je... 19 Oct 2009, 08:32
Jaypee Oui un éditeur classique, réglé en UTF-8 avec B... 19 Oct 2009, 08:45
noop Ca y est j'ai vu l'option UTS-8 with BOM. ... 19 Oct 2009, 09:00
Jaypee Le BOM ce sont 3 octets conventionnels, qui serven... 19 Oct 2009, 10:38
Jaypee A Schlum, pas grave... il faut aussi signaler le @... 19 Oct 2009, 10:49
No6 Citation (bad_duck @ 27 Jul 2009, 14:00) ... 19 Oct 2009, 12:08
noop Citation (No6 @ 19 Oct 2009, 13:08) Ah, j... 19 Oct 2009, 14:01
Jaypee Toujours à Schlum et à propos du @finally, je fa... 19 Oct 2009, 15:14
schlum Jaypee, en langage objet, je règle ce problème a... 19 Oct 2009, 16:09
Jaypee Au temps pour moi, en culture Java, je ne fréquen... 19 Oct 2009, 16:20
schlum Ah oui, bien sûr, il faut que tout soit propre au... 19 Oct 2009, 16:32![]() ![]() |
| Nous sommes le : 5th November 2025 - 11:08 |