J'ai une source de programme Python qui n'a pas de documentation ni de commentaires. J'ai essayé deux fois de le comprendre mais la plupart des moments où je perds ma piste, car il existe de nombreux fichiers. Quelles devraient être les étapes pour comprendre ce programme complètement et rapidement. P>
8 Réponses :
Je commencerais avec un bon python IDE. Consultez les réponses pour Cette question . P>
Je recommanderais de générer une documentation avec épydoc http://epydoc.sourceforge.net/ . Bien sûr, si aucun doctrage n'existe, le résultat sera médiocre mais cela vous donnera au moins une vue de votre application et vous pourrez naviguer dans les classes plus facilement. P>
Ensuite, vous pouvez essayer de documenter vous-même lorsque vous comprenez quelque chose de nouveau, puis régénérer à nouveau les docs. Il n'est jamais trop tard pour commencer quelque chose. P>
J'espère que cela aide p>
J'ai dû faire beaucoup de cela dans mon travail. Ce qui fonctionne pour moi peut être différent de ce qui fonctionne pour vous, mais je partagerai mon expérience. P>
Je commence à essayer d'identifier les structures de données utilisées et dessiner des diagrammes montrant les relations entre elles. Pas nécessairement quelque chose de formel comme UML, mais un croquis sur papier qui vous em> comprends qui vous permet de voir la structure globale des données manipulées par le programme. Une fois qu'une seule fois, j'ai une idée des structures de données utilisées, puis-je commencer à essayer de comprendre comment em> les données sont manipulées. P>
Deuxièmement, pour un grand nombre de logiciels, il faut parfois attaquer des morceaux de morsures au début. Vous n'obtiendrez pas tout de suite une compréhension générale, mais si vous comprenez de petites pièces en détail et continuez à vous éclairer, finalement toutes les pièces tombent ensemble. P>
Je combine ces deux approches, commutant entre eux lorsque je deviendrai trop frustré ou ennuyé. Des promenades régulières autour du bloc sont recommandées :) Je trouve cela me fait de bons résultats à la fin. P>
bonne chance! p>
Michael Plumes '" fonctionne efficacement avec le code hérité " est un superbe point de départ pour ces efforts - pas particulièrement dépendant de la langue (ses exemples sont dans plusieurs Langues non python, mais les techniques et la mentalité s'étendent assez bien à Python et à peu près n'importe quelle autre langue). P>
La principale mise au point est que vous souhaitez comprendre le code Les plumes suggèrent des heuristiques et des techniques pour les endroits où concentrer vos efforts et comment commencer lorsque le code est un désordre total (donc «héritage») - pas de docs, ni
+1 Je me demande combien de points de report ont été distribués pour avoir déclaré "GO Lire de travailler efficacement avec le code hérité"?
Vous avez de la chance que ce soit à Python, ce qui est facile à lire. Mais il est bien sûr possible d'écrire difficile de comprendre le code dans Python. P>
Les étapes sont: p>
Il existe des outils qui peuvent vous aider. Comme le dit Stephen C, une IDE est une bonne idée. Je vais expliquer pourquoi: p>
De nombreux éditeurs analysent le code. Cela vous donne généralement une fin de code, mais plus important encore dans ce cas, il permet de simplement cliquer sur une variable pour voir d'où vient. Cela accélère vraiment les choses lorsque vous voulez comprendre le code des peuples d'otehr. P>
En outre, vous devez apprendre un débogueur. Vous allez, dans des parties difficiles du code, devez les parcourir dans un débogueur pour voir ce que le code fait réellement. Pythons PDB fonctionne, mais de nombreux IDE ont intégré les débuggeurs, qui facilitent le débogage. P>
C'est ça. Bonne chance. P>
architecte d'entreprise par SPARX Systems est très bon au traitement d'un répertoire source et de générer des diagrammes de classe. Ce n'est pas gratuit, mais très raisonnablement au prix de ce que vous obtenez. (Je ne suis pas associé à cette entreprise de quelque manière que ce soit, je viens d'être un utilisateur satisfait de leur produit depuis plusieurs années.) P>
Pyrenvers de Logilab et Pynsource de Andy Bulka sont également utiles pour la génération de diagramme UML. P>
C'est un problème très courant ..