N Abend, Forum Ich habe einen komplexeren c code. In ihm befinden sich if else Blöcke, die ziemlich lang sind, so lang, dass man beim else schon nicht mehr weiß, was beim if abgefragt wurde, weil man 300 Zeilen tiefer ist. Ich würde gerne den code in den if und else Blöcken verkürzen, auslagern o. was ähnliches, um ihn übersichtlicher zu machen. Der Code in den Blöcken ist aber sehr dicht, zahlreiche verschiedene Funktionaufrufe, verpointerte Structs als Funktionparameter. Es läßt sich kaum was in funktionen auslagern, ohne die vielen structs als parameter mitzugeben. Frage: habt Ihr Ideen wie man hier vorgehen könnte? Danke für Vorschläge, Restrukturierer
Restrukturierer schrieb: > so lang, dass man beim else schon nicht mehr > weiß, was beim if abgefragt wurde, Dann schreib einen Kommentar beim else, wann das ausgeführt wird.
Restrukturierer schrieb: > Frage: habt Ihr Ideen wie man hier vorgehen könnte? Klein anfangen, und immer Mini-Schritt für Mini-Schritt. Ganz viele kleine Schritte führen zum Ziel. In einem Mini-Schritt immer nur genau eine Sache ändern. Dazu gehört auch ganz besonders, dass schon einmal geänderter Code in einem späteren Schritt erneut umstrukturiert wird. Auf keinem Fall versuchen, das alles auf einmal aufzuräumen. Das geht nicht, wie Du schon selbst gemerkt hast. Immer nur eine Kleinigkeit ändern, das ist wirklich das allerwichtigste. Dirk B. schrieb: > Dann schreib einen Kommentar beim else, wann das ausgeführt wird. Das kann ein Anfang sein, aber auf keinem Fall das Ende. Wenn man eine fette Funktion hat, kann man die verschiedenen Bereiche in der Funktion mit einem Kommentar markieren. Im nächsten Schritt werden die kommentierten Blöcke in eigene Funktionen gepackt. Der Funktionsname orientiert sich am ursprünglichem Kommentar. In der Ursprungsfunktion werden die Kommentare gelöscht und durch Aufrufe der neuen Funktionen ersetzt. So hat man schon mal eine Auftrennung in unterschiedlichen Abstraktionsebenen vollbracht. Am Anfang bekommen diese Teil-Funktionen teilweise sehr viele Parameter, die vermutlich auch recht wenig miteinander zu tun haben. In weiteren Mini-Schritten wird auch dies Stückchen für Stückchen gerade gezogen.
Ich mache im if block nur den sprungverteiler und springe von dort in die (routinen)/funktionen. Macht sich gut beim Restrukturieren von Spagetthicode. Namaste
:
Bearbeitet durch User
Restrukturierer schrieb: > Frage: habt Ihr Ideen wie man hier vorgehen könnte? Clean Code koennte helfen: https://www.amazon.de/Clean-Code-Refactoring-Patterns-Techniken/dp/3826655486
Beschaff dir eine GUI die Refactoring unterstützt. Damit kannst du dann Codezeilen in Funktionen auslagern. Gruppen von Bedingungen zu neuen Variablen zusammenfassen. usw.
Poste ein Beispielcode, ggf. mit anderer benamung. Dann kann ich dir zeigen, wie wir es machen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.