Ich führe ein Python-Programm und versuche, die Beziehungen zwischen den verschiedenen Klassen zu verstehen. Ich denke, es wäre hilfreich, ein Diagramm zu sehen, wie die Klassen interagieren.
Welche Möglichkeiten gibt es, die mir erlauben, dies zu tun?
Nur meine 2 Cent.
Fall-Tools wie Enterprise Architect kann Klassendiagramme aus Python-Code generieren, aber zum Verständnis bevorzuge ich es, die Klassen und Beziehungen grob von Hand zu modellieren.
Ich benutze auch UML, wenn ich neuen Code verstehen, einen groben Überblick über die Kollaborationen zwischen Klassen bekommen und einen Überblick über Erbhirachien bekommen möchte.
Die meisten IDEs haben Mittel, um den Code zu erforschen, aber ich finde kleine kohäsive UML-Diagramme leichter zu verdauen und zu merken.
Ich finde auch, dass Domänenmodelle in einem Klassendiagramm leichter zu verstehen sind.
gaphor hat eine Funktion, um Python-Module zu importieren und uml-Klassendiagramme zu generieren, trotzdem ist es nicht so gut.
Wie auch immer, Code-Analyse-Tools auf Python funktionieren nicht sehr gut, da niemand "vorhersagen" kann, welche Argumente von Funktionen übergeben (oder zurückgegeben) werden und so weiter. Die meisten von ihnen "erraten" den Typ bestanden.
In der Hoffnung, dass Python 3 mit der "function annotation" diese Art von "Problem" lösen kann
Gute Frage! Abhängig davon, wie praktisch Sie sind, können Sie das Trace-Modul bei der Ausführung Ihres Codes verwenden.
%Vor%Gibt Ihnen wer-gerufen-wer-Informationen. Sie können dies entweder analysieren oder einen Code schreiben, der die Ablaufverfolgung programmatisch verwendet, um Ihr Aufrufdiagramm zu extrahieren.
Sobald das erledigt ist, hackt ein bisschen dot und du hast ein Diagramm. Sobald Sie dies getan haben, würde es einen coolen Blog-Post darüber machen, was Sie getan haben und wie es geklappt hat.
Wenn es Django ist, kannst du es auch tun
%Vor%wenn Sie Django Command Extensions verwenden
Tags und Links python uml class-design