Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Wie haltet Ihr's mit Namensräumen? (https://www.delphipraxis.net/178618-wie-haltet-ihrs-mit-namensraeumen.html)

Der schöne Günther 17. Jan 2014 19:13

Wie haltet Ihr's mit Namensräumen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nach nun bald einem Jahr Delphi habe ich eine Sache immer noch nicht einmal im Ansatz verstanden - Oder da ist nichts, was es zu verstehen gäbe.

Die Dokumentation spricht, wohl in Anlehnung an andere Sprachen, immer gerne von Namespaces. Die meisten kennen, als Beispiel, sicher die Units
Delphi-Quellcode:
System.Generics.Collections
und
Delphi-Quellcode:
System.Generics.Defaults
.

Bedeutet das, dass es einen Namensraum
Delphi-Quellcode:
System.Generics
gibt? Nein, da ist nichts. "Unit-Prefixe" wäre eher der richtige Name.

Ich kann einen sogenannten "Project Default Namespace" einführen indem ich meine dpr statt
Delphi-Quellcode:
program meinProgramm;
mit
Delphi-Quellcode:
Günther.meinProjekt.meinProgramm
beginne. Habe ich nun eine Unit
Delphi-Quellcode:
Günther.meinProjekt.ersteUnit
, kann ich diese beispielsweise in einer uses-Clause als
Delphi-Quellcode:
ersteUnit
nennen, anstatt
Delphi-Quellcode:
Günther.meinProjekt.ersteUnit
zu tippen. Das muss zwar noch jemand der Code Completion erzählen, aber gut.

Mein hauptsächlicher Weltschmerz: Der .pas-Dateiname muss immer dem Unit-Namen gleichen. Gleichzeitig zeigt das Fenster "Projektverwaltung" immer den vollen Dateinamen an. Das sieht dann so aus wie im Anhang.


Muss ich nun immer alles in einen Topf werfen oder muss ich mir einen zusätzlichen Monitor anschaffen um das zwei Meter breite Fenster da unterzubringen?

himitsu 17. Jan 2014 20:34

AW: Wie haltet Ihr's mit Namensräumen?
 
Wenn du Günther.meinProjekt in die Projektoptionen aufnimmst, dann kannst du in der Usesklausel gern nur noch das ersteUnit reinschreiben.

Bei den Generics ist das nur zufällig dreiteilig, da es schon zweiteilig war, als diese Units 2009 so aufgenommen hatte und erst viel später hatte man sich dann entschlossen die Namespaces für alle Units einzuführen, wobei die beiden Generic-Units quasi "ausversen" nochmal mit erweitert wurden.


Ich hab aktuell auch angefangen Namespaces zu verwenden, allerdings bin ich da auch nur bei Zweiteilig geblieben.
Zu sehr übertreiben wollte ich es nun auch nicht.

Der eigentlich Vorteil ist aber, daß man über die Projektoptionen zwischen mehreren Versionen umschalten kann.

Du schreibst nur Forms und kannst dann später entweder gegen die VCL oder gegen FMX verlinken.

jaenicke 17. Jan 2014 23:05

AW: Wie haltet Ihr's mit Namensräumen?
 
Also wir nutzen schon Unitnamen wie:
Common.Interfaces.Frontend.InputHandler.pas
Allerdings nicht mit Namespaces, sondern in der Regel explizit mit dem Namen der Unit.

Zitat:

Zitat von Der schöne Günther (Beitrag 1244184)
Muss ich nun immer alles in einen Topf werfen oder muss ich mir einen zusätzlichen Monitor anschaffen um das zwei Meter breite Fenster da unterzubringen?

Also ein Monitor ist für die Softwareentwicklung schon sehr knapp bemessen. Im Büro arbeitet jeder mit zwei Monitoren, das geht eigentlich gar nicht sinnvoll anders.

Als Standardquelltextbreite sind bei uns 130 Zeichen konfiguriert, dementsprechend breit ist auch das Editorfenster. Da passen solche Unitnamen locker hin. ;-)

Namespaces sind zwar schon nett, aber wenn es nicht einen Grund dafür gibt, wie gleichnamige Units mit unterschiedlichen Präfixen wie schon genannt, sehe ich keine Notwendigkeit dafür. Die fördern nur Mehrdeutigkeiten. Die Unitnamen mit Punkten und Gruppierung erlauben ja gerade ähnliche Funktionen in unterschiedlichen Gruppen gleich zu nennen am Ende ohne dass es Probleme damit gibt.

Mavarik 18. Jan 2014 10:20

AW: Wie haltet Ihr's mit Namensräumen?
 
Hi!

Also Das mit VCL.MeinForm und FMX.MeinForm leuchtet mir noch ein...

Beim "Rest" sehe ich jedoch keinen Vorteil.

Vielleicht noch

ProjektA.Runtime und ProjektB.Runtime um innerhalb der Units keine IFDEF ProjektA zu haben, aber dann muss ich Änderungen immer in beiden Units machen...

OK.. Zurück ich sehe keinen Vorteil...:stupid:

Mavarik


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz