Quellcodevisualisierung
Verfasst: 06.02.2022, 12:22
Moin,
ich programmiere jetzt schon seit Jahren an meiner Engine / Framework/ Game herum und würde mir gerne mal anschauen, was genau ich da jetzt gemacht habe. Einerseits aus Eigeninteresse, andererseits um es auch mal anderen zeigen zu können ("Was heißt es eigentlich, seine eigene Engine zu machen?"). Ein Problem dabei ist, dass ich ja nicht nur eigenen Code habe, sondern auch viele andere Bibliotheken auf die ein oder andere Art verwende. Sprich: Irgendwie muss auch klar sein, was ich gemacht habe und was nur benutzt wird.
Ein paar Ideen:
- Quellcode 'ausdrucken' und eine lange pdf daraus machen. Dann hat man ein dickes Buch mit vielen kurzen Zeilen. Naja.
- Ordnerstruktur visualisieren: Ich habe verschiedene Projekte (Utilities, Engine, Render, Game) und auf Dateiebene kann man schon ganz nett sehen, was da wo drin steckt. Man könnte auch die Größe der Dateien in die Visualisierung aufnehmen, die ist nämlich recht unterschiedlich.
- Ein cooler Graph. Ich glaube, das ist, was ich eigentlich will. Das Problem ist, dafür muss man schon den Code parsen um zu verstehen, was wo wie benutzt wird. Eigentlich fände ich es cool, wenn es ein Tool gäbe, das mir auf Dateien, Klassen, oder Funktionsebene einen entsprechenden Graphen generieren würde (ein bisschen wie ein UML Diagramm, nur eben nicht so hässlich :P). Hier wäre halt wichtig, dass externe Abhängigkeiten nicht komplett aufgenommen werden, ansonsten explodiert das Ding ja direkt vollständig.
hat sich jemand von euch damit schonmal beschäftigt? Ich stelle mir das ein wenig so vor, wie eine große Uhr, deren Kasten man öffnet: Man sieht ganz viele Zahnräder und wo es welche Mechanismen gibt und kann sich eine Vorstellung davon machen, wie komplex (oder simpel, hehe) welche Teile sind, versteht aber nicht notwendigerweise alles was passiert.
Ahja: Ich will daran jetzt auch nicht 2 Wochen tüfteln. Gesucht ist eher irgendetwas nettes, womit man mal einen Abend rumspielt und dann gute Ergebnisse hat und dann wieder an ernsteren Themen weiterarbeiten kann :D
ich programmiere jetzt schon seit Jahren an meiner Engine / Framework/ Game herum und würde mir gerne mal anschauen, was genau ich da jetzt gemacht habe. Einerseits aus Eigeninteresse, andererseits um es auch mal anderen zeigen zu können ("Was heißt es eigentlich, seine eigene Engine zu machen?"). Ein Problem dabei ist, dass ich ja nicht nur eigenen Code habe, sondern auch viele andere Bibliotheken auf die ein oder andere Art verwende. Sprich: Irgendwie muss auch klar sein, was ich gemacht habe und was nur benutzt wird.
Ein paar Ideen:
- Quellcode 'ausdrucken' und eine lange pdf daraus machen. Dann hat man ein dickes Buch mit vielen kurzen Zeilen. Naja.
- Ordnerstruktur visualisieren: Ich habe verschiedene Projekte (Utilities, Engine, Render, Game) und auf Dateiebene kann man schon ganz nett sehen, was da wo drin steckt. Man könnte auch die Größe der Dateien in die Visualisierung aufnehmen, die ist nämlich recht unterschiedlich.
- Ein cooler Graph. Ich glaube, das ist, was ich eigentlich will. Das Problem ist, dafür muss man schon den Code parsen um zu verstehen, was wo wie benutzt wird. Eigentlich fände ich es cool, wenn es ein Tool gäbe, das mir auf Dateien, Klassen, oder Funktionsebene einen entsprechenden Graphen generieren würde (ein bisschen wie ein UML Diagramm, nur eben nicht so hässlich :P). Hier wäre halt wichtig, dass externe Abhängigkeiten nicht komplett aufgenommen werden, ansonsten explodiert das Ding ja direkt vollständig.
hat sich jemand von euch damit schonmal beschäftigt? Ich stelle mir das ein wenig so vor, wie eine große Uhr, deren Kasten man öffnet: Man sieht ganz viele Zahnräder und wo es welche Mechanismen gibt und kann sich eine Vorstellung davon machen, wie komplex (oder simpel, hehe) welche Teile sind, versteht aber nicht notwendigerweise alles was passiert.
Ahja: Ich will daran jetzt auch nicht 2 Wochen tüfteln. Gesucht ist eher irgendetwas nettes, womit man mal einen Abend rumspielt und dann gute Ergebnisse hat und dann wieder an ernsteren Themen weiterarbeiten kann :D