![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
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.
|
|
|
![]() |
![]()
Message
#2
|
|
![]() Oui ? ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 889 Inscrit : 24 Jun 2003 Lieu : BZH Membre no 8 224 ![]() |
" Si on ne peut pas comprendre l'utilité d'un programme en lisant uniquement les commentaires, alors vous pouvez jeter l'ensemble du code ! " Oui, je suis vraiment d'accord. J'ajouterai simplement un petit plus, les commentaires doivent aussi apporter une petite touche d'humour et de légèreté si possible. Il faut aussi penser à l'individu qui les relira dans X années, certainement stressé, dépressif... La programmation n'attire que trop souvent les individus dans un monde Kafkaïen... J'ai découvert cette méthode dans les sources de Bill Atkinson et de Scott Knaster ; alors excusez du peu ![]() C'est une bonne pratique (hélas) plutôt rare en France ; qui mériterai d'être diffusée, et à utiliser avec modération, bien sur. Pourquoi faire du goto et des labels quand un Code if(!fonction()) { //traitement de l'erreur Beurk !!!! Ça me rappelle le temps ou je faisais du débugging sur des programmes en APL. Et pour le sujet de l'utilisation de tables binaires, je conseille l'analyse des sources de Agrep http://www.tgries.de/agrep/ D'ailleurs, pour apprendre à bien programmer, rien de tel que lire des codes sources, prestigieux ou non, comme Agrep Ah, j'oubliais, à placer dans le chapitre "bonne pratiques" quand vous tapez une accolade (ou une parenthèse, crochet) ouvrante, taper immédiatement la fermante correspondante, puis utilisez le retour arrière pour écrire le contenu... -------------------- "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan) |
|
|
![]()
Message
#3
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 ![]() |
Ah, j'oubliais, à placer dans le chapitre "bonne pratiques" quand vous tapez une accolade (ou une parenthèse, crochet) ouvrante, taper immédiatement la fermante correspondante, puis utilisez le retour arrière pour écrire le contenu... ![]() Code ' " `[ ( je viens d'en faire l'expérience dans un script shell (oublié un " fermant). Même chose quand on utilise les caractères de control par exemple pour taper: Code "......\"Voici une belle chaîne de char quotée\" ....." Eh bien je tapes tout de suite une chaîne quotée NULL [\"\"] et je rentre mon texte dedans. |
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 05:26 |