Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Code Smells (https://www.delphipraxis.net/160263-code-smells.html)

bernau 11. Jan 2012 08:34

AW: Code Smells
 
Zitat:

Zitat von DeddyH (Beitrag 1145316)
Zitat:

Zitat von Coffeecoder (Beitrag 1145315)
Delphi-Quellcode:
procedure anpassenChart(pchart : TChart);
Begin
    ....
end;

Der Präfix P erweckt aber eher den Eindruck, es handle sich um einen Zeiger auf ein TChart. Wieso nicht einfach Chart, AChart oder meinetwegen TheChart?

Daran habe ich auch zuerst gedacht. Aber letztendlich ist es ein Zeiger auf ein Objekt vom Type TChart. Sieht trotzdem schrecklich aus ;-)

Klaus01 11. Jan 2012 08:56

AW: Code Smells
 
Zitat:

Zitat von bernau (Beitrag 1145325)

Daran habe ich auch zuerst gedacht. Aber letztendlich ist es ein Zeiger auf ein Objekt vom Type TChart. Sieht trotzdem schrecklich aus ;-)

Wenn man das dann zuende denkt- dan wäre ja jede Klasseninstanz auch schlichtweg "nur" ein Pointer.

Grüße
Klaus

bernau 11. Jan 2012 09:03

AW: Code Smells
 
Zitat:

Zitat von Klaus01 (Beitrag 1145327)
Zitat:

Zitat von bernau (Beitrag 1145325)

Daran habe ich auch zuerst gedacht. Aber letztendlich ist es ein Zeiger auf ein Objekt vom Type TChart. Sieht trotzdem schrecklich aus ;-)

Wenn man das dann zuende denkt- dan wäre ja jede Klasseninstanz auch schlichtweg "nur" ein Pointer.

Grüße
Klaus

Ja. Ist es.

DeddyH 11. Jan 2012 09:05

AW: Code Smells
 
Somit wäre dann aber ein PObject ein Pointer auf einen Pointer. Unschön, wenn nicht irgendwie beabsichtigt.

bernau 11. Jan 2012 09:11

AW: Code Smells
 
Zitat:

Zitat von DeddyH (Beitrag 1145333)
Somit wäre dann aber ein PObject ein Pointer auf einen Pointer. Unschön, wenn nicht irgendwie beabsichtigt.

So kann man es aus sehen. Das wäre sogar die richtige Interpretation. Daher auf keinen Fall ein p als Präfix für ein instanziertes Objekt. Verwirrt nur.

Coffeecoder 11. Jan 2012 09:21

AW: Code Smells
 
Zitat:

Zitat von bernau (Beitrag 1145335)
Zitat:

Zitat von DeddyH (Beitrag 1145333)
Somit wäre dann aber ein PObject ein Pointer auf einen Pointer. Unschön, wenn nicht irgendwie beabsichtigt.

So kann man es aus sehen. Das wäre sogar die richtige Interpretation. Daher auf keinen Fall ein p als Präfix für ein instanziertes Objekt. Verwirrt nur.

Ich ändere dies in der neuen Version zu "achart".

himitsu 11. Jan 2012 09:38

AW: Code Smells
 
Für mich sind Parameter mit Präfix einfach nur häßlich.

Typen mit T, Pointertypen mit P, Interfacetypen mit I, sowie Fields/Felder mit F, sind ja vollkommen OK,
aber Property- und Parameternamen auch noch verschandeln?



Aber wenn man schon soeinen Scheiß macht, dann sollte man das dann auch komplett durchzuiehen.

Globale Variablen mit G, Lokale mit L, die Parameter/Argumente mit A, Constanten mit C und für die Property oder die Klassenvariablen (Class Var) fällt uns bestimmt auch noch was ein.
Eventuell noch die nicht ganz "globalen" Variablen innerhalb der Implementation noch mit einem V davor :gruebel:

Und zum Schluß überall noch den kranken ungarischen Dreck davor.



Am Ende überlegt man sich das nameXCamelCase dann nochmal, findet es nun ebenfalls Scheiße und wechselt zu KA_WIE_DAS_HEISST. :angle2:









Wer unbedingt will, kann intern ja eine Umleitung einrichten.
Delphi-Quellcode:
procedure MeineProzedur(MeinParameter: MeinTyp);
var
  Argument_MeinParameter: MeinTyp absolute MeinParameter;
begin
  if Argument_MeinParameter = 0815 then

end;

Coffeecoder 11. Jan 2012 09:42

AW: Code Smells
 
Es sind noch immer (nur) Konventionen ;)
[OT] In Java macht folgendes mit den Parameterübergabe:
Code:
...

public void setName(String name) {
       this.name = name;
}
Ohne Präfix :)
[/OT]

himitsu 11. Jan 2012 09:46

AW: Code Smells
 
[OT] Das mach ich in Delphi genauso. :stupid:

bernau 11. Jan 2012 09:47

AW: Code Smells
 
Du wirst lachen, aber lokale Variablen fangen bei mir tatsächlich mit (einem kleinen) L an. Wobei das nich ganz optimal ist, da man das "l" mit einer "1" (in Worten "Eins") verwechseln kann. Gibt auch einige Styleguides die das bemängeln. Da bei mir aber keine Variable mit einer Ziffer anfängt, kann ich das verschmerzen. Parameter/Argumente bekommen immer ein kleines "a". Hat den Vorteil, daß ich immer sehe, welche Variable lokal ist und welche von aussen kommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr.
Seite 3 von 4     123 4      

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