Hallo StrammerMax,
wenn ich mir Deine Postings so durchlese, lokalisiere ich zwei Probleme:
1. Ein fremd verschuldetes: Du sollst das Projekt so Reporten, dass ein Laie es warten kann.
2. Ein selbst verschuldetes: Mangelnde Kommentierung/ Protokollierung
zu 1.
Wer solche Forderungen stellt, weiß nicht wovon er redet. Es ist schlicht und ergreifend nicht möglich einem Laien das Programmieren/ Entwickeln von Software im Rahmen einer Projektdokumentation beizubringen. Mach das Deinem Chef oder wer auch immer diese Schnappsidee hatte klar. Wenn er es nicht begreift, besorge ein paar Bücher, nur zu den Grundlagen und lege sie ihm auf den Tisch. Dazu kannst Du anmerken, dass selbst das Lesen dieser Bücher nicht zum Ziel führt. Entwickeln funktioniert nicht nach Schema F. Um das zu lernen muss man entsprechende Denkstrukturen ausbilden. Das ist wörtlich zu nehmen. Man muss sein Gehirn darauf schulen. Wenn Dein Auftraggeber das nicht begreift, lass ihn Rekursion erklären. Das ist der Klassiker, an dem jeder erstmal zu knabbern hat, weil das paralleles bzw. mehrschichtiges Denken erfordert. Das kann kein Mensch von Haus aus, weil es für uns kein natürlicher Prozess ist. Das kann man auch sehr gut daran sehen, dass Rekursion in der freien Wildbahn eher selten verwendet wird.
zu 2.
Je nachdem, wie kompliziert ein zu kommentierendes Code-Fragment ist, würde ich es immer granularer kommentieren, bis hin zu zeilenweise. Oft reicht aber auch z.B. über einer Schleife zu erklären, was sie macht. Am Anfang einer Funktion sollte man eigentlich immer erstmal einen kurzen Text schreiben, was die Funktion macht, was ihre Eingangsparameter sind und was sie ausgeben soll. Außerdem sollte da drin stehen, wann die Funktion erstellt wurde und wann was an ihr geändert wurde. Ich schreibe soll man machen, weil ich dazu ehrlich gesagt meistens selbst zu faul bin. Dafür kommentiere ich aber sehr viel im Quelltext. Wie schon im oben von Elex verlinkten Thread von Dir erwähnt, ist nur zu hoffen, dass Du sprechende Namen für die Variablen und Konstanten gewählt hast. Allein das bringt schon sehr viel für das Verständnis von Quellcode.
Allgemein
10.000 Zeilen sind natürlich schon mal rein von der Menge her ein Brett. Du könntest auf Papier aufmalen, was die einzelnen Prozeduren machen und wie sie miteinander interagieren. Dabei wird Dir selbst nochmal viel klar werden. Aber redundanten Code wirst Du vermutlich nicht mehr vor dem Abgabetermin eindampfen. Das kannst Du auch anschließend machen und dann "in Ruhe" dafür sorgen, dass die Funktion des Ganzen auch weiterhin gegeben ist. Vorher würde ich die Gelegenheit dann aber nutzen und abwarten, welche Wünsche oder Anmerkungen zu Macken an Deinem Projekt aus Anwendersicht kommen. Je nachdem wie groß der Anwenderkreis ist, sei Dir sicher, bei einem so umfangreichen Projekt kommt mit Sicherheit entsprechendes Feedback.
Zitat:StrammerMax
...
Zudem haben Änderungen im Code teilweise gravierende Auswirkungen. Da ich von Anfang an alles ohne Namen, mit festen Zuweisungen von Zeilen implementiert habe würde es alles zerschießen, wenn jemand auch nur eine Zeile löscht oder hinzufügt.
...
Das ist ein ziemlicher SuperGAU. Statt das nachträglich zu flicken, dürfte der Vorschlag von Sulprobil zielführender sein, das Projekt neu aufzusetzen. Dann aber vorher mal ein paar Notizen machen, was passieren soll und wie Du es umsetzen willst. Eine Art Blaupause hast Du Dir ja schon auf etwas chaotische Weise geschaffen. Führe Dir an dieser Stelle vor Augen, bevor man umfangreichere Dinge angeht, muss man sie planen. Das ist ein iterativer Prozess. Man kann bei größeren Projekten nicht einfach drauf los programmieren. Das kann nur nach hinten losgehen. Analog dazu kannst Du den Bau eines Hauses betrachten. Niemand würde auf die Idee kommen einfach ein paar Säcke Zement und einen Haufen Ziegelsteine zu bestellen und loszumauern, wie es einem grade einfällt. Nein, zuerst plant ein Architekt so ein Haus. Man spricht nicht umsonst vom Software-Architekten (wenn auch nicht offiziell, da Architekt eine geschütze Berufsbezeichnung ist.)
Du wirst wohl jetzt erstmal in den sauren Apfel beißen müssen und die Dokumentation nachträglich erarbeiten müssen. Es ist zwar kein Trost, aber ich nehme mal an, da mussten wir alle irgendwann mal durch, weil am Anfang von jedem (den ich kenne jedenfalls) Kommentierung als völlig überflüssig angesehen wird. Nach einer solchen Erfahrung, wie Du sie grade auch noch in einem umfangreicheren Projekt machst, ist man von dieser Ansicht geheilt :99:
Viele Grüße,
Zwenn