![]() |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Wieso definierst Du dir nicht einfach eine Message ('WM_MyMessage') und sendest die per Broadcast an alle Fenster. Deine eigenen Fenster antworten dann auf diese message mit ihrem Handle und einer ID. Daran kannst Du dann im Sender genau den Empfänger ermitteln, den Du willst. Und zwar *ohne* die Caption zu verwenden.
Ich finde das sauberer als mit FindWindow. Aber wenn sich bei Dir die Caption eh nie ändert (oder das Fenster gar unsichtbar ist und nur als Kommunikationsplattform dient), dann ist das mindestens genauso gut. Zitat:
|
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Nur mal ein Beispiel, damit ihr nicht ständig auf der Wolle-Klasse besteht.
Code:
Das wäre bei mir:
Ein FormName beginnt immer mit dem Präfix "Frm", z.B. "FrmKunden". Ist es ein Hauptformular heißt die Unit "Main_Kunden.pas", ist es ein modaler Dialog entsprechend "Dlg_Kunden.pas". Bei DB-Anwendungen heißt die entsprechende Datenmodul-Unit "Dat_Kunden.pas". Die Interface-Procedure zum Anzeigen eines Formularess (ich erzeuge generell alle Formulare zur ....
Code:
Und schon habe ich lesbaeren Code, der sich auch noch sehr gut mit Codevervollständigung verträgt.
KundenFrm.pas
KundenDm.pas KundenData.pas Das meinte ich mit "Klassenähnlich". Ausserdem habe ich nicht immer die Zeit für jede mögliche Sub-Klasse diese auch auszugliedern. Manchmal muss es Q&D gehen. Über diese Schreibweise ist der Zusammenhang dann schonmal vorgemerkt, und ich kann dann später leicht eine Klasse draus machen. Rollo |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Leider ist das primäre Programmiermodel von Delphi (TDataModule, Komponenten) nur bedingt geeignet, bei komplexeren Projekten ein objektorientiertes Design durchzuziehen. Da muss man dann eben zu solchen Nomenklaturkrücken greifen.
Ähnlich ist das bei SQL, das auch keine Namespaces und Klassen vorsieht: Hier verwendet man Schemaspaces, um ein wenig Ordnung in das Chaos zu bringen. Das entspricht in etwa dem Bestreben, den Namen der Entität ("Kunde") als Präfix für die unterschiedlichen Objekte zu verwenden. Leider ist das -zumindest bei SQL- nur bis zu einem gewissen Grad möglich, das man imho keine echten Namespacehierarchien("Foo.Bar.Blub.Bla") aufbauen kann. In Delphi geht das, zumindest bei den Unit-Namen(:gruebel:) Aber immerhin: Ordnung ist das halbe Leben. |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
Aber, das soll jetzt keine Kritik oder Abwertung sein. Wie schon mehrfach angemerkt, alles Geschmacksache. Macht jeder so wie er es gewohnt ist, und für richtig hält. Zitat:
|
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Hallo mm1256,
ich denke das ist alles eine Frage der Abwägung. Weder das funktionale Konzept noch das Klassenkonzept ist richtig wenn man es übertreibt. Die Mischung macht es eben. Nimm z.B. eine StateMachine. Die mache ich sehr oft mit einfachen
Code:
wenn es für mich noch überschaubar bleibt.
case xx of
1:; 2:; 3:; end Das ist für mich lesbar genug, natürlich ist das total verpönt ... Ich könnte natürlich bei jeder Kleinigkeit einen neue Klasse bauen und das mit Methodenpointern lösen, etc. etc. Ich gebe dir Recht das diese "immer Klassen" Logik vielleicht richtig ist bei - sehr grossen Projekten - wenn viele Entwickler beteiligt sind - wenn das z.B. in Packages benutzt wird die vertrieben werden sollen etc. Aber weil ich meistens meinen Code alleine pflegen muss, und weil die Module sehr selten irgendwo weiterverwendet werden können muss ich halt abschätzen was nützt und was nicht. Deshalb habe ich einen Mittelweg, der Klassenaufteilung per Namen schon vorzeichnet, und dann bei Bedarf schnell ausgegliedert werden kann, weil alle zusammenhängenden Teile schnell gefunden werden. Mich stört schon z.B. die IDE Automatic das GetVariable, SetVariable angelegt wird, und nicht VariableGet, VariableSet. Letzteres würde die beiden Methoden untereinander platzieren, ersteres verteilt es wild im Unit. Natürlich habt ihr nur Units die alle auf einen Bildschirm passen, aber soweit bin ich vielleicht noch nicht :-) Rollo |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Die Bezeichnung ist aber korrekt. Ein Befehl ist immer ein Imperativ.
Kommando: SetValue und löst bei Erfolg das Ereignis: ValueChanged aus. |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Ich sage ja das es gewöhnungsbedürftig ist, aber es listet mir bei autovervollständigung alles schön zusammen auf,
was sehr stark hilft die Übersicht zu behalten. Für gutes englisch bekomme ich dann wohl keinen Preis. Zitat:
Code:
Rollo
ValueSet
ValueGet ValueChanged |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
Wobei man es natürlich auch übertreiben kann. |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
Gruß K-H |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Ich mag mich ja irren, aber mein XE2 bietet mir bei der Codevervollständigung alle Bezeichner an, die die von mir getippte Zeichenfolge enthalten, nicht nur die, die damit beginnen. Wo also was steht ist dem Delphi vollkommen egal. Ist das bei den neueren Delphis geändert worden?
Sherlock |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
Kommando: SetzeWert HoleWert Ereignis: WertGeändert Und beim Programmieren will ich entweder einen Befehl ausführen (CreatePerson/CreateFoo/CreateBar) fange mit Create an und bekomme alles was ich erzeugen kann aufgelistet, oder ein Ereignis behandeln/auslösen (PersonCreated/PersonChanged/PersonDeleted). Dann ist aber auch der Kontext klar und ich fange mit dem Kontext Person an und bekomme alle Events zum Kontext. |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
Lieber ein
Delphi-Quellcode:
Function ErzeugeKunde:TKunde;
begin Result := TKunde.Create; .... end; |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
ErzeugeKunde LöscheKunde Was eben nicht nur vom Lesen her besser zu verstehen ist als KundeErzeuge oder KundeLösche. Allerdings ist es völlig wurscht, ob das in deutsch, englisch oder Postmodern-Esperanto geschrieben wird.
Delphi-Quellcode:
oder
CreateCustomer
Delphi-Quellcode:
kann der Compiler sehr gut von
ErzeugeKunde
Delphi-Quellcode:
/
TCustomer.Create
Delphi-Quellcode:
unterscheiden. Macht dem also nichts.
TKunde.Create
|
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
ein schlechtes Deutsch? Ist doch viel besser, wenn ich mit dem Bezeichner (z.B. Kunde) anfange, denn ich will ja erst einmal etwas mit dem "Kunden" machen. Mir wird dann zum Kunden aufgelistet, was ich mit dem Kunden machen kann. Egal ob es Events oder Befehle sind. |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
Aber ich habe doch eine deutsche IDE... :cyclops: 8-) |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
|
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Leute, das ist doch Wurscht. Man kann sowohl die 'aktive' ('MachBierAuf') oder die passive ('BierAufmachen') verwenden. Wichtig ist, das man es stringent durchzieht, also nicht aktiv und passiv mischen. So wie Bier und Eiswürfel. Wie komm ich jetzt darauf?
Wenn man OOP verwendet, wird das sowieso zweitranging. Da heißen die Methoden dann 'Create', 'Load', 'Store' usw. und werden auf einen 'Customer', 'Kunden' etc. angewendet. Übrigens: Wer Entitäts- und Aktionsnamen in einem Namen hat ('ErzeugeKunde' oder 'KundeErzeugen'), der könnte sich mal mit OOP beschäftigen. :stupid: Ist gar nicht so schwer. :mrgreen: |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
![]() Zitat:
|
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Sir Rufo,
schau dir einmal eine solche Namensvergabe in der CodeCompletion an und du wirst anfangen es zu lieben :-) Sprache hin oder her ... Rolf |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
@Rollo62
Da ich gerade dieses CQRS umsetze liebe ich genau den von mir vorgeschlagenen Ansatz ;) |
AW: Präfix oder Suffix - Wie haltet Ihr es mit der Namensgebung?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 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