Ich habe einen guten Teil meiner Brötchen genau damit verdient, bestehende Projekte weiter zu entwickeln und/oder verfahrene zum Laufen zu bringen.
Ein Problem waren in einem Projekt z.B. Variablennamen, da gab es in einem Projekt temp_Messwert und akt_Messwert, beide vom gleichen Typ!
Nun wurde akt_Messwert als temporäre Variable für Berechnungen verwendet und in temp_Messwert wurde das Resultat der aktuellen Messung abgelegt. Zudem waren beide Variablen global!
Ähnliches bei den Funktionsnamen.
Ein weiteres Problem ist oft, dass Programmierer gar nicht daran denken, dass etwas wiederverwendet werden könnte oder sogar nur die Funktionen eines Geräts erweitert werden könnten.
Entsprechend ist dann alles spaghettimässig miteinander verknüpft
Ganz nett auch, wenn fast alles in einem einzigen riesigen Modul zusammengefasst ist!
Dabei kann man z.B. in C/C++ zusammenhängende Teile in einem einzelnen Modul zusammenfassen. Weiterhin deklariert man alle lokalen Variablen und Funktion entsprechend so, dass sie global nicht sichtbar sind. In der Header-Datei ist dann alles aufgeführt, was von Ausserhalb aufgerufen werden kann, bzw. an Deklarationen, Konstanten usw. benötigt wird.
Damit hat man schon einmal die halbe Dokumentation und die Sicherheit, dass nicht von irgend wo her, Interna angesprochen werden.
Schon beim entsprechenden Anpassen des Source-Codes an solche Vorgaben, findet man dann ungewollte Seiteneffekt, bzw. so verstecke Bugs im Code.
Erst bei einem entsprechen strukturierten Projekt-Aufbau, kann man dann daran gehen einzelne Module zu optimieren oder auszubauen!
MfG Peter(TOO)