-
Lecture de code source
Salut
Je voudrais vous posez une question. Comment faites vous pour comprendre un code que vous n'avez pas ecrit? Surtout dans l'hypothèse que le programmeur n'a pas pris soins de faire des commentaires et le code est volumineux. Je suis confronté à cette situation,je tourne en rond,ça m'enerve. Voilà si vous avez des astuces à me filer n'hesitez pas.:D
-
Typiquement, je fais les fonctions "feuilles" en premier: Je les analyse, je les commente, je rajoute les "const" qui vont bien (car un programmeur qui ne commente rien est un mauvais programmeur, et un mauvais programmeur ignore souvent l'existence du mot-clé "const"), je les documente, puis je passe à la suivante.
Puis je passe aux fonctions n'utilisant que des fonctions que je viens de documenter, et ainsi de suite.
-
Je suppose que le code compile, après installation éventuelle des bibliothèques non standards nécessaires. Sinon, c'est très mal engagé.
Je suppose également que vous pouvez modifier le code. Il s'agit donc de vous l'approprier, au sens intellectuel du terme.
A ce moment-là, vous pouvez vous aider d'un IDE. Vous comptez un certain temps pour l'installation et la prise en main de cet IDE, mais ce ne sera pas du temps perdu et le programme à "comprendre" vous sortira un peu de la tête, ce qui n'est pas plus mal.
Ce qui serait bien c'est que le truc puisse être compilé avec gcc 3.2 et +, même si ensuite vous utilisez autre chose. A ce moment-là, vous installez Eclipse + CDT, que ce soit sous Windows ou sous Linux, c'est facile. Eclipse 3.3 et CDT 4.x, c'est le mieux, mais en anglais (n'essayez pas les solutions de francisation partielle, c'est cac). Sinon, Eclipse 3.2 et CDT 3.x (?), avec le language pack. Pour la dernière version, en anglais, vous avez un bundle Eclipse for C/C++, pour la version 3.2 je ne sais pas.
Ensuite vous faites une paire de "Hello World", puis vous créez un projet avec vos sources velues. Vous pouvez créer un projet vide puis ajouter vos fichiers distants, le projet sera dans le Workspace, mais les sources ne bougeront pas.
Ensuite, à vous d'utiliser la puissance du machin. Vous commencerez par voir les fenêtres "Prject explorer" et "Outline". Vous reformaterez automatiquement vos sources pour avoir une indentation correcte. Vous pouvez aller directement à la déclaration d'un identifiant, obtenir une liste cliquable de toutes les occurrences du nom d'une fonction dans le projet, et bien d'autres choses.
Vous tenterez à partir de là de comprendre fonction par fonction, puis globalement. Vous mettrez un bref commentaire devant chaque fonction (dans le .h que vous aurez au besoin créé), et éventuellement des commentaires temporaires facile à éliminer (par exemple en utilisant /*MoinePige ... */), vous pourrez utiliser également les TODO lists. Au fur et à mesure, vous allez utiliser le refactoring, essentiellement le renommage intelligent.
Voilà, c'est vous qui voyez si ça vaut le coût ...
Bonne journée,
Pierre
-
Merci à Pierre Maurette pour avoir explicité que le code devait compilé, être modifiable, etc. : Ce sont des choses que je prenais pour déjà acquises dans mon post, alors que dans les pires cas on n'y a même pas droit...
-
Lecture de code source
Ok, je vous remercie. Je repars attaquer ce code à nouveau. Je crois que ça ira.Je reviendrais voir s'il n'y a pas d'autres trucs.:D. A+
-
J'utiliserais un débuggueur pour pouvoir faire une trace de l'algo (voir où ça passe et comment)
-
Lecture de code source
Vos reponses m'ont beaucoup aidé, j'arrive à m'en sortir. Merci :D
-
Eclipse + CDT, ça rame pas mal sur mon pauvre PIII en fin de carrière. Tu peux également utiliser SourceNavigator ou cscope pour faciliter la navigation dans le code source.
Thierry