Bei uns ist das sehr einfach:
Zunächst wird getrennt zwischen den Projekten.
- Common.* --> Gemeinsame Units für mehrere Projekte (allgemeine Tools, ...)
- Frontend.* --> Dateien unseres Frontends
- Backend.* --> Dateien unseres Backends
Und dann wird nach Funktionalität unterschieden:
- Common.Dialog.* --> Formulare
- Common.Gui.* --> Oberflächenspezifische Units
- Common.Hardware.* --> Units zur Hardwareunterstützung
- Common.Interfaces.Core.* -->Interfaces zu Klassen in den Core-Units
- Common.Interfaces.Gui.* --> Interfaces zu den Gui-Klassen
- Common.Core.* --> Kernunits des Projekts
Und so weiter...
Die entsprechenden Punkte bezeichnen auch die Verzeichnisse (z.B. Repository\Common\Interfaces\
Gui\Common.Interfaces .Gui.GuiElement.pas für das Interface IGuiElement). So lässt sich eine bestimmte
Unit auch sofort auf der Festplatte finden.
Das Vorgehen hat auch den Vorteil, dass die
Unit immer genauso wie die Klasse oder das Interface heißt. Ich kann also in der uses-Klausel z.B. ComIntGuiElem schreiben (nur zur Verdeutlichung mit Großbuchstaben) und die CnWizards werden mir die passende
Unit Common.Interfaces.Gui.GuiElement vorschlagen.
Deshalb müssen wir nie lange suchen, das spart enorm Zeit.
Und ganz wichtig:
Nie unnötig abkürzen... das verringert nur die Lesbarkeit. Das gilt für Unitnamen wie für Variablen usw.
Schreibfaul sollte man beim Programmieren nicht sein, zumal die CnWizards da extrem viel Tipparbeit abnehmen... wenn man denn seine Bezeichner gut gewählt hat.