2016-04-04 12 views
1

Ich arbeite an einigen Anfängerprogrammierungstutorials und finde es schwierig, den Überblick über die vielen Module und Funktionen, ihren Zweck (abstrakt) und ihre Wechselbeziehungen zu behalten. Ich möchte alles aus der Vogelperspektive sehen, um besser zu verstehen, wie ich den Code eleganter reorganisieren und umgestalten kann.Gibt es konkrete Werkzeuge oder Methoden, um die Struktur eines Programms/Projekts zu visualisieren?

Gibt es ein spezielles Tool (außer Whiteboard und Marker), mit dem Profis diese Komplexität bewältigen können? Wird von Programmierern erwartet, dass sie sich nur auf mentale Modelle verlassen? Verwenden Experten Flowflow-Software wie Lucidchart für diese Art von Dingen?

Antwort

3

Structure Charts gibt es seit Mitte der 70er Jahre. Data Flow Diagrams, wenn Sie nur Blatt Ebene -1 tun, sind auch nützlich für strukturierte (nicht-OO). Wenn du nicht-OO machst, schau dir die Yourdon-Methode an. Sehen Sie sich auch Essential Systems Analysis als Grundlage für die Ereignispartitionierung an. Es gibt verschiedene CASE-Tools, die noch verwendet werden.

UML kann gut funktionieren und gibt es seit vielen Jahren, wenn Sie OO tun. Wenn man nicht "Diagramm-glücklich" geht, dann kann UML ganz gut funktionieren.

Es gibt ERDs für Datenbeziehungen.

Grafische Modellierungswerkzeuge haben nie die allgemeine Programmiererpopulation von mehr als ungefähr 18% durchdrungen. Ich denke zum Teil daran, dass die Entwickler nicht gut genug geschult wurden, dass es keine angemessene Schulung für die Verwaltung von Projekten gab, die Modelle für Manager verwendeten, und dass die CASE-Tool-Anbieter zu wenig versprechen. Ich fing an, grafische Werkzeuge in College - Strukturdiagrammen zu verwenden. Ich bin immer wieder erstaunt, wie "professionelle Entwickler" große Programme ohne visuelles Modell der Zusammenhänge und Abhängigkeiten schreiben können. Wie erinnern sie sich an all das? Wie bringen sie neue Leute auf den neuesten Stand, wenn sie dem Projekt beitreten?

Diejenigen von uns, die die von Ihnen gestellten Fragen stellen, scheinen in der Minderheit zu sein. Ich denke nicht, dass es ein "Werkzeug-Ding" ist. Ich denke, einige Entwickler wollen das "höhere Abstraktionsniveau" und Visualisierung, und andere nicht.

1

Es gibt immer UML, obwohl ich kein großer Fan bin.

Sie haben auch nicht mit der Sprache markiert, über die Sie sprechen.

Für. NET kann Visual Studio tatsächlich auto-generate code aus solchen Diagrammen.

Sie können dies auch überprüfen similar post on Quora.

+0

Verdammt das war schnell. Ich denke, es war mir nicht in den Sinn gekommen, dass die Werkzeuge in verschiedenen Sprachen unterschiedlich sein würden. Fest! Vielen Dank. –

+0

Sicher. Bitte akzeptieren Sie, wenn Sie die Antwort mögen. – Patrick

+0

Für Rails gibt es eine Vielzahl von Werkzeugen ... hier ist einer von ihnen: http://railroad.rubyforge.org/ ... obwohl diese im Allgemeinen nicht so nützlich sind wie die Erstellung einiger mit den Werkzeugen in der Antwort. – Patrick