IPB

Bienvenue invité ( Connexion | Inscription )

> Techniques et astuces de programmation pour débutants et "confirmés", Partagez ici vos techniques et astuces pour mieux programmer
Options
macuserfr
posté 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.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
bad_duck
posté 27 Jul 2009, 13:00
Message #2


MacBidouilleur d'Or !
*****

Groupe : Admin
Messages : 11 590
Inscrit : 2 Mar 2002
Lieu : Paris
Membre no 2 171



Je ne sais plus d'où ça sort (un mec de chez IBM à l'époque je crois) :

" Si on ne peut pas comprendre l'utilité d'un programme en lisant uniquement les commentaires, alors vous pouvez jeter l'ensemble du code ! "


--------------------

----------------------------------------------------------------------------------------------------------------------------
Pour chatter avec des macbidouilleurs, rejoignez le chan IRC #macbidouille , plus d'infos et Webchat: par ici ;)
Et n'oubliez pas, vos amis sont toujours là pour vous: Google, man, how to, RTFM mais aussi FAQ et Recherche

Suivez MacBidouille sur Twitter ------------------------------------------------------>> http://twitter.com/macbid
Go to the top of the page
 
+Quote Post

Les messages de ce sujet
- 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
- - macuserfr   J'suis plutôt pour les accolades alignées se...   27 Jul 2009, 11:22
- - 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


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 18th July 2025 - 12:14