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:
-----------------------------------------------------------------------------}