![]() |
Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Aktuell bearbeite ich alten Quellcode und hübsche ihn mit Kommentaren und weiteren Dingen auf.
So habe ich mir z.B. angewöhnt große zusammenhängende Code-Passagen folgendermaßen zu markieren und sichtbar vom Rest zu trennen
Delphi-Quellcode:
Macht ihr auch soetwas oder eher gar nicht?
// Code description ...
// ============================================================================================================================================== ganz viel code! // ============================================================================================================================================== Mir hilft Cnpack dabei sehr. Eine Tastenkombination und schon habe ich meinen Block im Editor. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Delphi-Quellcode:
:roll:
{$REGION 'Code description'}
ganz viel code! {$ENDREGION} Und dann könnte man es eventuell mit etwas Refactoring versuchen. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Mit Kommentaren aufhübschen? Ein Widerspruch in sich. :?
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Bei mir gibt es keine großen Dateien. Ganz einfach :)
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Ja. Aber sie sollten nach der Überarbeitung wieder verschwunden sein.
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Ich bleibe dabei: Kommentare sind nicht überflüssig, und machen auch nichts kaputt. Ich habe letzte Woche vor einem Codestück gesessen, und dachte mir "Was hat dieser Drecksack sich dabei gedacht?" Dazu muss ich folgendes noch erklären:
1. Der Code war zwei Monate alt 2. Der Drecksack bin ich :twisted: Die entsprechende Stelle war ein äußerst eleganter Zweizeiler, nur leider mußte ich eine gute Viertelstunde darüber grübeln, was ich mir dabei gedacht habe. Was es machen sollte war klar, nur verstand ich nicht mehr wie, und wie ist manchmal schon wichtig... Ein paar erhellende Worte darüber oder daneben hätten mein Zeitkonto etwas schonen können, jetzt haben die grauen Herren sich wieder eine Zigarre auf meine Kosten rollen können ;) Aber zum Thema: Pro Klasse bzw. Klassenbaum eine Unit, und pro Methode nicht mehr als 50 Zeilen, dann wirds schön übersichtlich. Sherlock |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Mit unter schreibt man code den man nach Jahren portieren oder nochmal überarbeiten will da man sein wissen verbessert hat. Da ist es schon hilfreich wenn man vorher ein Kommentar (Sinnvollen) hinterlassen hat. So was wie "Start der Anwendung" in FormCreate zählt natürlich nicht dazu. Zitat:
gruss |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Ich habe zwar noch immer relativ große Dateien aber wenn man eine eigene Sortierung der Dateien in der Projektverwaltung hätte, würde ich ich viel mehr und viel kleinere Dateien haben. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Wem sagst Du das? Sherlock |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Was natürlich auf den heutigen stand nicht mehr kontrolliert wird von keinem mir bekannten Compiler. gruss |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Wenn man das selbst in der Hand hat, dann ist ja alles kein Problem...
Für Interfaces, Klassen, Konstanten, Resourcestrings, Hilfsfunktionen jeweils eigene Units. Die Units mglw in Unterverzeichnissen strukturiert speichern. Funktionen möglichst klein halten, ca. 15-50 Zeilen. Funktionsköpfe und Klassendefinitionen gut beschreiben. so weit so gut. Die unlesbaren kilometerlangen Spaghetticodes erbt man ja meistens von Leuten, die nicht mehr greifbar sind und da sitzt das Problem, dem ich so begegne: Nach dem ersten Sichten, wie alles zusammenhängt, kommt bei mir erstmal ein Codeformatter dran. zB "JEDI Code Formatter", mein derzeitiger Favorit. Danach werden alle Funktionen und Klassen möglichst ausgelagert in eigene Dateien, siehe oben. Die Dateien bekommen selbsterklärende Namen. Im Zuge dessen werden mittels Refactoring Variablen sprechender benamst, Konstante mit selbsterklärende Namen eingeführt und auch Kommentare ergänzt, aber nicht massiv. Der Sinn sollte sich möglichst durch den Code erschliessen. Meine wirksamste "Waffe" sind Funktionsköpfe, in denen beschrieben wird, was die Funktion macht:
Delphi-Quellcode:
{-----------------------------------------------------------------------------
Procedure: ColorPercentLighter Purpose: Produce a brighter color value Author: Connor McLeod Date: 19.Dez.2016 Arguments: AColor: start with this colour and make it brighter APercent: resulting colour will be APercent brighter than AColor Result: TColor Example: MyControl.Font.Color := ColorPercentLighter(clYellow, 7); History: Remarks: Todo: -----------------------------------------------------------------------------} |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Mittlerweile versuche ich alles in einem Verzeichnis zu halten und verwende immer mehr Namespaces, welche mir die gleiche logische Funktionalität bieten wie Verzeichnisse. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Das klingt ganz nach einer globalen Lib, die in ein eigenes, übergeordnetes Verzeichnis kommt ;-)
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Bzw. eigenes Repo.
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Übrigens könnte man das auch mit einem verlinkten OptionSet vereinfachen. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Nö. Ist doch egal, wer der Drecksack war. Wenn ein tieferes Verständnis nötig ist, kann das ruhig in einem Kommentar erklärt werden.
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Zitat:
![]()
Wenn du jetzt Änderungen in dem OptSet machst, wirken die sich auf alle Projekte aus, in denen das verwendet wird. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Übrigens halte ich
Delphi-Quellcode:
für einen recht sinnvollen Kommentar, wenn z.B. vorher Dutzende von Zeilen mit z.B. Initialisierung und Verifizierung von Werten stehen.
{-------- ab hier gehts los -------}
Gruß K-H |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Habe ich zwei Anwendungen welche die gleiche DLL verwenden.. Die erste Anwendung x legt die DLL beim kompilieren in den Pfad x/bin ab die zweite in y/build Was dann? gruss |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Je weniger Codezeilen man pro Methode schreibt, desto mehr Funktionalität muß man auslagern, was weitere Unterprogramme bedeutet. Die eine - lokale - Übersichtlichkeit wird mit Verschlechterung der anderen - globalen - Übersichtlichkeit erkauft, m.E. zu teuer. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Ich habe nicht selten Prozeduren mit 100 bis 500 Zeilen. Eine Execute-Prozedur eines Threads hat sogar beinahe 1700 Zeilen und selbst da ist schon verdammt viel in externe Prozeduren ausgelagert. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Ich halte "50 Zeilen" nicht für eine betonierte Regel, sondern eine Richtlinie, die erreichen möchte, alles so kurz/einfach wie möglich zu halten. Wie dieses Ziel erreicht wird, ist wohl eher eine Frage von Gusto/Programmierstil und kann deshalb nicht genau definiert werden. Aber es läßt sich trefflich drüber streiten ;-) |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Das mit den 50 Zeilen und dem absoluten Auslagern von Code in Prozeduren hat noch einen ganz anderen negativen Effekt:
man produziert mit Prozedur deutlich mehr Müll als ohne Prozedur. Denn da wäre der Prozedur-Kopf, begin, end und eventuell noch eine Deklaration im Unit-Kopf. Sollte man diese Funktion 100x gebrauchen ist das ja OK. Aber alles unter/bis ~3 Verwendungen + wenige Codezeilen, da benutze ich einfach Copy-Paste. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Du kannst die Suchpfade angeben wie du willst aber letztendlich wird die DLL in unterschiedlichen Ordnern Anwendungs\Pfad abgelegt. Ich kann das nur lösen indem ich unterschiedliche *.DPR's (Projektdateien) verwende. Ein einbinden des Suchpfades so das alle Anwendungen auf die Units zugreifen können wird das Problem nicht lösen. Spätestens beim debuggen scheitert das ganze. gruss |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Bei einem kleinen Quick'n'Dirty Programm oder einem Testprojekt kann man das mal machen. Aber auch da geht das recht schnell. Refactoring --> Methode extrahieren --> Fertsch. Sofern der Code nicht so vollgemüllt ist das das Refactoring einem den SourceCode total zerschiesst. Ist mir auch schonmal passiert. :evil: |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Anlass war dieser Satz von bernau: Zitat:
Was hat das mit DLLs zu tun, die (ob nun aus einem Projekt oder aus mehereren) in verschiedenen Verzeichnisse abgelegt werden? Die DLL wird doch gar nicht im Suchpfad der Units gesucht, sondern allenfalls in der Umgebungsvariable PATH. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Das Problem bei so einen Copy and waste Vorgehen ist, dass man unter Garantie eine Stelle vergisst, wenn man etwas ändern muss. Und dann geht die Fehlersuche los.
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Yupp. Und darum glaube ich auch, dass die Regel "wenn du einen Code 2x benötigst, dann lagere ihn in eine procedure/function aus" seine Berechtigung hat. Für die Lesbarkeit mag das zwar dann in manchen Fällen etwas schlechter sein, aber für die Wartbarkeit ist es ein Gewinn.
|
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Zitat:
Einspruch - wenn der Funktionsname gut gewählt ist, leidet die Lesbarkeit nicht. |
AW: Code-Style: wie verschönert/verbessert ihr die Lesbarkeit großer Dateien?
Die Lesbarkeit leidet eben nicht darunter, weil man ja den Code durch einen beschreibenden Methodennamen ersetzt. Es geht dann so weit, daß ehemals 500 Zeilen Spaghetti in einer Methode dann zu 30 Zeilen werden, die man bestens lesen und verstehen kann (untendrunter gehts halt wieder ans blutige):
Delphi-Quellcode:
Was ist daran auszusetzen? Selbst wenn jeder ersetzte Block nur einmal benutzt wird, so ist die Lesbarkeit für das grobe Überfliegen des Codes und vor allem zum Neueinstieg nicht zu übertreffen.
begin
ErrechneBildGrenzen; SetzeMinimalWerte(NeueKoordinaten); Muss := VergleicheIstMitSoll(Ist, Soll); ZeichneWert(Muss); {etc...} end; Edit: What Connor said... Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz