salut, je suis pas le big boss, mais...
Salut à tous, waw, quel long débat ! héhé !
Bon, je suis pas le big boss de la programmation, mais voilà, ce que j'ai a dire:
Je programme depuis quelques temps, et j'ai eu le plaisir de chipoter en assembleur, en java, en basic, en html et bien d'autres langages...
Pour répondre aux gars qui disent programmer de façon spontanée... c bien, je procède aussi de la même manière... mais sur des petites portion de code héhé :lol:
Je m'explique, tout comme eux (apparement), je n'ai pas besoin de faire des petits calculs ou de gros dessins pour résoudre un problème. Les solutions se présentent à mon esprit, et je peux immédiatement coder au net. J'ai ces facultés en sciences aussi (math, physique etc.), pour l'information...
Mais il faut savoir que "beaucoup" de personnes possèdent ces facultés, cette possibilité de programmer des algos spontanément, certainement encore plus, lorsqu'elles ont de l'expérience.
LE POURQUOI DU COMMENT DE LA DIFFERENCE ???!!!
A mon avis, nous réfléchissons tous plus ou moins de la même manière face à une fonctionnalité à coder. Cela dit, certains, auront besoin de coucher sur papier toute une analyse préalable au codage, tandis que d'autres la coucheront dans leur tête. En effet, après avoir atteint un certain niveau en informatique, je crois que plus personne ne code à la volée, au fur et à mesure... NON ! Tout le monde fait une petite analyse (qu'elle soit sur papier ou mentalement) pour savoir où il va, pour PREVOIR les difficultés à l'avance (c'est ici qu'agit l'intelligence) ainsi que leurs solutions, et finalement pour pouvoir estimer un délai raisonnable pour la fin du travail.
Je crois qu'ici la démonstration est faite : TOUT LE MONDE ANALYSE AVANT DE CODER... c'est la façon d'analyser qui diffère.
Maintenant, il faut aussi se placer dans le contexte du CODING... Certains le font seuls, chez eux, pour une petite application personnelle ou une petite application aux fonctions restreintes. Alors que d'autres le font en groupe en entreprise (ou chez eux parfois aussi, lol, comunauté open source etc.). Dans ce dernier contexte, lors du travail en groupe, je crois qu'il est plus intelligent et même...naturel... de procédé à une analyse papier avant. C'est bien d'avoir le code qui se trace en tête, mais ici, le travail se fait en groupe, il faut à plusieurs moments définir la voie prise, pour un moment plus tard la redéfinir et la redéfinir et encore la redéfinir... Si aucune analyse n'est faite avant, ET pendant, je vous laisse imaginer la synchro du prog, loooooool !!! Imaginez, 10 gars (pour un petit projet) qui travaillent sur une application, sans analyse, il est tout à fait possible d'avoir 10 compréhensions du problème différentes... HAHAHA ! Je vous dis pas la cata... héhéhé ! Enfin, voilà...
Pour parler un peu des commentaires... A mon avis, c'est nécessaire.
Il est clair qu'il ne faut surtout pas commenter chaque ligne, ni chaque boucle, mais plutot chaque fonction(méthode ou procédure), chaque classe (en orienté objet), et ainsi de suite. Sans oublier les morceaux astucieux...(là où on a usé de son génie....et que tout le monde ne pourrait pas comprendre du premier coup).
Mais pourquoi des commentaires ? C'est chiant...
Oui, c'est chiant, mais ça permet d'écrire des programmes EVOLUTIFS et SURVIVANTS: quelques temps après il sera facile de le maintenir (de le faire évoluer, et comprendre directement le pourquoi des bugs). Dans l'optique actuelle de la programmation, c'est important aussi, car on travaille rarement seul ! Aussi, dans des projets d'ampleur, je défie quiconque pouvoir s'y retrouver parmi les 400-500 classes pouvant faire partie d'une application ! Sans aucun commentaire, il est possible de comprendre et maitriser le programme, mais il faudra peut-être quelques mois voire quelques années pour en arriver à bout. Alors qu'avec des classes et des méthodes correctement commentées, quelques semaines suffisent pour comprendre l'ensemble du programme et DEJA commencer à maintenir le code.
Pour les petits projets personnels, c'est clair qu'il doit être facile de s'y retrouver dans 2 ou 3000 lignes de code, même sans commentaire... Quoique, je mets au défi quiconque de comprendre l'un de mes codes en ASSEMBLEUR...
Oui, je crois qu'encore une fois tout dépend du contexte et de l'outil utilisé...
Mais bon, je crois qu'en conclusion:
1) tout le monde analyse avant de coder que ce soit sur papier ou en tête.
A mon avis, on pourrait mettre ça en parrallèle avec un jeu d'échec... Certains peuvent imaginer une stratégie et calculer les 20 ou 30 meilleurs coups prochains comme un petit Kasparov. Alors que d'autres ne peuvent penser que 5 ou 6 coups à l'avance, s'ils veulent aller plus loin il leur faudra un petit bout de papier...
2) tout le monde devrait commenter son code proprement (pas inutilement).
Pour un petit algorithme perso de 1000 lignes, on peut s'en passer (quoique...j'en doute pour un algo en Asm ! :lol: ).
Pour un algo plus gros, on peut s'en passer aussi, mais, il faut 10 à 100 fois plus de temps à trouver les bugs. Pour ce qui est de l'évolutivité du programme, imaginons qu'après 5 ans vous voudriez remettre à jour les fonctionnalités d'une application de 20 000 lignes, eh bien, avec un code commenté, il faudra quelques heures pour se réapproprier le code, tandis qu'avec un code non commenté, il sera bien plus simple de virer le code et recommencer dès le départ. A moins bien sûr de ne travailler sans délai aucun...lol !
Et pour ce qui est du travail en groupe, eh bien, les problèmes d'un code non commenté sont les même que plus haut, mais puissance 4 !
L'EQUATION A RETENIR SELON MOI C'EST :
ANALYSE(S) + COMMENTAIRES = programme vite mi en place, vite corrigé si y'a un blème, vite amélioré si on lui en demande plus, et en prime (encore grâce aux chers commentaires) on peut même le passer à un copain pour qu'il nous file un tit coup de main...
lol !
Je crois que j'ai tout dit...héhé !
C'est vrai, non ?
Master T. 8)