Überblick über Projekt verloren, was nun?

Status
Nicht offen für weitere Antworten.

che

Bekanntes Mitglied
Hallo!

Ich habe gerade mal knapp 2000 Zeilen Code geschrieben und habe schon keinen Überblick mehr über meine Operationen. Ich benutze IntelliJ IDEA und kann mir meine Operationen ("Structure") wie bei Eclipse anschauen, aber ich kann nicht mehr 100% meinen Gedankengang nachvollziehen als ich die Operationen schrieb. Ich habe eine Pause eingelegt und bin dabei die Kommentare etwas ausführlicher zu schreiben. Ich wollte euch fragen wie es euch gelingt einen Überblick über einen großen Projekt zu bekommen. Ich weiß, dass so etwas normalerweise Insiderwissen ist und dass man es selbst lernen muss, aber habt Erbearmen mit mir ;). Ich habe leider den Fehler zu Anfang gemacht und kein UML Diagramm erstellt, aber daraus bin ich jetzt schlau geworden...
 

Craven

Aktives Mitglied
Hallo!

Mein aktuelles Project hat ca 100000 Zeilen und ich hab keine Probleme mit dem Überblick und mit UML hab ich mich auch nicht beschäftigt.

Mein Rat:

1. Packe soviel wie möglich in eigene Klassen und Packages.
2. Gewöhn dir einen Programmaufbau an, den du immer einhältst.
3. Wenn die Grundform einer Software funktioniert, führe ich immer einen "Rewrite" durch, d. h. ich durchforste meine gesamte Programmstruktur, schaue, was sich vereinfachen, vererben oder in Methoden packen läßt.
4. Es gibt immer zwei Lösungen für ein Problem, eine ausführliche und eine kurze. Die ausführliche Lösung ist im Regelfall wesentlich besser lesbar.
5. Die wichtigste Regel Dokumentieren, Dokumentieren, Dokumentieren.
6. Die wichtigste Regel Dokumentieren, Dokumentieren, Dokumentieren.

Aus meiner Sicht bist Du in der Phase, in der du deine Software komplett überarbeiten mußt. Nimm dir die Zeit! Außerdem wächst man mit der Zeit. Als ich mit PHP vor x Jahren angefangen habe, war bei einem Programm mit 1000 Zeilen schluß, dann bin ich ausgestiegen. Nach über 3 Jahren Java kenn ich solche Probleme nicht mehr.

Man wächst mit seinen Aufgaben und viel Spaß beim Rewrite.

Craven
 

che

Bekanntes Mitglied
Ja, dass mit dem Rewrite sehe ich auch ein -bringt sehr viel. Wie aber machst du das mit dem Dokumentieren? Integrierst du die Kommentare im Code oder schreibst du eine externe Dokumentation, wo du deine Gedanken festhälst?
 
B

Beni

Gast
Ich behalte die Übersicht auch ohne UML oder andere Diagramme ganz einfach indem ich viele Kommentare schreibe. Etwa 30-40% meines Quellcodes ist reiner Kommentar (und zwar nicht "wie" etwas geschieht, sondern "was" geschieht!).

Das hat auch ein bisschen was mit Übung zu tun: irgendwann bist du soweit, dass du alles soweit in kleine, relativ unabhängige Module aufteilst, dass du die einzelnen Module verstehen kannst.

Die Übersicht "wiederzubekommen" ist hingegen schwerer... zur Not: 2000 Zeilen sind nicht viel, das kannst du auch noch ein zweites mal schreiben (und die Fehler vom ersten mal verwmeiden).

[Edit] Zu Dokumentation: es gibt ein wundervolles Tool namens javadoc: man schreibt die Kommentare im Code, und javadoc generiert daraus ein externes Dokument :wink:
 

meez

Top Contributor
che hat gesagt.:
Integrierst du die Kommentare im Code oder schreibst du eine externe Dokumentation, wo du deine Gedanken festhälst?

Geanau dafür kannst du UML nahemen, um die Architektur und den Aufbau deiner Software festzuhalten...
Im Code selber dokumentier ich nur, wenn etwas ziemlich kompliziert ist, oder an dieser Stelle einfach nicht richtig reinpasst...oder sonstwie zu erwähnen ist...
 

Craven

Aktives Mitglied
beni hat geschreiben, daß bei ihm ca 30-40% seines Codes Dokumentation ist. So sieht es bei mir auch aus.

Wobei ich javadoc Kommentare nehme um Methoden zu beschreiben. Und dann noch jede Menge extra Kommentare, damit ich später weiß, was ich an welcher Stelle in meinem Programm mache.
 

Ontos

Mitglied
Moin Moin

*Java Doc
*Kommentare in den Code
*lesbar programmieren!
**öfters mal ein Refaktoring durchführen (1mal die Woche!!)
**Code nicht optimieren (DAS macht der Compiler nicht der Coder)
*externe Doku durch ein Wiki System das nebenbei läuft und in das alle Gedanken eingetragen werden => "Hacks" (wenn nicht zu verhindern) werden so für alle Mitarbeiter findbar und erkennbar
**Vorteile:
***automatische Versionskontrolle
***Suchfunktion
***Teamfähig
***einfache Bedienung die nicht viel Zeit frißt.
*Mein Leitspruch: MAKE IT SIMPLE!

Und zum ende das wichtigste...

Lernen durch SCHMERZEN!

cu Ontos
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Erste Schritte Einsteigerfrage - Überblick über aktuelle Java-Technologien Java Basics - Anfänger-Themen 6
G Listen, über Listen. und doch kein Überblick Java Basics - Anfänger-Themen 8
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
S Java über SSH Java Basics - Anfänger-Themen 13
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
W char über die Konsole? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O Java über cmd benutzen ? Java Basics - Anfänger-Themen 5
J Variablenzugriff über string Java Basics - Anfänger-Themen 18
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B OOP-Anfänge über CMD + Editor Java Basics - Anfänger-Themen 30
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
I GUI über Eclipse oder NetBeans Java Basics - Anfänger-Themen 23
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
S Bild über JButton legen Java Basics - Anfänger-Themen 3
temi Druckeransteuerung über ESC-Sequenz Java Basics - Anfänger-Themen 21
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
X Minimax-Algorithmus über alle Kanten möglich? - Kanten darstellen Java Basics - Anfänger-Themen 1
P Threads Prozess kann nicht über die GUI gestartet werden Java Basics - Anfänger-Themen 8
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
P Programm kann über CMD nicht ausgeführt werden Java Basics - Anfänger-Themen 2
E Frage über Speichern und Ausgabe Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
X Betriebssytem interne Consolen Commands über Java starten Java Basics - Anfänger-Themen 2
J ArrayList über verschiedene Klassen verwenden Java Basics - Anfänger-Themen 7
A .jar über Webbrowser aufrufen Java Basics - Anfänger-Themen 2
D Ausgabe über JLabel Java Basics - Anfänger-Themen 12
L Erste Schritte Arrays über eine for Schleife ansprechen. Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
F Gewichteter Mittelwert über eine Zeitperiode Java Basics - Anfänger-Themen 3
B Schleife über einen Container Java Basics - Anfänger-Themen 7
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
T jar von stick aus über jre auf stick starten Java Basics - Anfänger-Themen 6
L Iterieren über ArrayList Java Basics - Anfänger-Themen 1
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
F Methoden aus anderer classe über nehmen Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben