AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Procedurbezeichnung

Ein Thema von bernau · begonnen am 15. Sep 2011 · letzter Beitrag vom 16. Sep 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.307 Beiträge
 
Delphi 12 Athens
 
#1

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 13:30
@Luckie: Workfile (Arbeitsdatei) ist die Datei, die grade bearbeitet wird und ist eine Funktion innerhalb einer Klasse.

@Jumpy: Hast recht. WorkFileName wäre eigendlich besser.

@DeddyH: An eine Aufzählung habe ich auch schon gedacht. Dann wieder verworfen. Denke aber, das ist die besste Lösung. Wäre interessant zu wissen, ob so ein Type schon irgendwo definiert ist.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#2

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 14:03
Mit der Benennung stimmt da so einiges nicht. "WorkFile" heißt "ArbeiteDatei". Das ist unverständlich. Wenn du "Arbeitsdatei" ausdrücken wolltest. so wäre das WorkingFile oder (mehr oder weniger) CurrentFile. Aber auch das ist nichts für eine Funktion. Eine Funktion sollte i.d.R. ein Verb im Namen haben, denn sie ist nichts, sondern tut etwas. Und das mit File und FileName wurde ja schon gesagt. Also wenn dann getWorkingFileName oder getCurrentFileName.

Boolean-Parameter halte ich für eine ganz schlechte Idee. Die Dinger sind Kontrollkopplunten und zudem schlecht lesbar. Siehe hier: http://www.christian-rehn.de/2011/09...sie-vermeiden/ und hier: http://martinfowler.com/bliki/FlagArgument.html

Auch enum-Parameter halte ich nicht für gut. Das sind nämlich immer noch Kontrollkopplungen und zeugen davon, dass die Funktion etwas tut, was eigentlich nicht ihre Aufgabe ist. ==> SingeResponsibilityPrinciple

Ich würde deshalb immer, wenn cih mit Datennamen arbeite den kompletten Pfad zurück geben und ggf. ExtraxtFileXY anwenden. Wenn du das immer so tust, ist auch immer klar, was passiert. Wenn es Ausnahmen gibt (was giobt die Funktion nochmal zurück?) entstehen unnötige Leichtsinnsfehler.

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 14:36
Und wie heißt die Klasse? Wie wäre es mit CurrentFilename und CurrentFilePath als Bezeichnungen für die Properties? Und wenn die dahinter liegende Methode sicherstellt, dass CurrentFilePath sicherstellt, dass der Pfad mit einem Backslash endet, dann kann man das ganze ohne Probleme zusammensetzen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.307 Beiträge
 
Delphi 12 Athens
 
#4

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 15:43
Und wie heißt die Klasse?
OK, jetzt muss ich etwas ausholen

Die Klasse nennt sich "TccParamStr". Die Klasse kapselt Funktionen um die Komandozeilenparameter (gelesen mit ParamStr(x)) besser auswerten zu können.

Komoandozeilenparameter gibt es in der Regel in drei verschieden Arten. (Bei mir zumindest.)

1) Parameter ohne Wert: z.B. "debug" oder "ShowError"

2) Parameter mit Wert: z.B. "Value=1"

3) Dateinamen. (z.B. weil über den Explorer eine Datei auf die EXE gezogen wurde)

Die Parameter können in einer beliebigen Reihenfolge erscheinen.

Wenn ein Dateiname übergeben wurde, dann ist das in der Regel die Datei die bearbeitet werden soll. Deshalb der Name "WorkFile". (Jetzt WorkingFileName )

D.h. die Funktion sucht aus allen übergebenen Parametern den heraus, der einen Dateinamen beinhaltet. Der wird in "WorkingFileName" zurück gegeben.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 15:47
Spar dir das Working. Oder gibt es noch Dateinamen, die nicht bearbeitet werden? Es kann doch immer nur eine Datei geben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.307 Beiträge
 
Delphi 12 Athens
 
#6

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 15:50
Nur "Filename" ist mir zu pauschal. Könnte ja auch die Datei gemeint sein, die sich in ParamStr(0) befindet
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 16:01
Nur "Filename" ist mir zu pauschal. Könnte ja auch die Datei gemeint sein, die sich in ParamStr(0) befindet
Aber der Parameter wird ja nicht so in der Klasse rumfliegen als Property oder? Und wenn doch, dann würde ich die Bezeichnung ParamFilename wählen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.307 Beiträge
 
Delphi 12 Athens
 
#8

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 15:28
Mit der Benennung stimmt da so einiges nicht. "WorkFile" heißt "ArbeiteDatei". Das ist unverständlich. Wenn du "Arbeitsdatei" ausdrücken wolltest.
Na ja. Man sagt ja auch Workflow. Und das heist ja auch nicht "ArbeiteAblauf" sondern "ArbeitsAblauf".


Eine Funktion sollte i.d.R. ein Verb im Namen haben, denn sie ist nichts, sondern tut etwas. Und das mit File und FileName wurde ja schon gesagt. Also wenn dann getWorkingFileName oder getCurrentFileName.
Dann müsste ja jede Function ein "Get" im Namen beinhalten, weil Sie ja immer etwas macht und zurückgibt. Ein WorkingFilename finde ich leserlicher als GetWorkingFilename.

Es gibt auch Funktionen, die geben einfach einen Zustand zurück. Da schreibe ich doch eher "IsHot" als "GetIsHot". Da ist nichts mit Verb.

Boolean-Parameter halte ich für eine ganz schlechte Idee. Die Dinger sind Kontrollkopplunten und zudem schlecht lesbar. Siehe hier: http://www.christian-rehn.de/2011/09...sie-vermeiden/ und hier: http://martinfowler.com/bliki/FlagArgument.html
Hast mich überzeugt.


Auch enum-Parameter halte ich nicht für gut. Das sind nämlich immer noch Kontrollkopplungen und zeugen davon, dass die Funktion etwas tut, was eigentlich nicht ihre Aufgabe ist. ==> SingeResponsibilityPrinciple
Warum sollte es nicht Aufgabe der Funktion sein, eine Rückgabeeigenschaft auszuwerten.


Ich würde deshalb immer, wenn cih mit Datennamen arbeite den kompletten Pfad zurück geben und ggf. ExtraxtFileXY anwenden. Wenn du das immer so tust, ist auch immer klar, was passiert. Wenn es Ausnahmen gibt (was giobt die Funktion nochmal zurück?) entstehen unnötige Leichtsinnsfehler.

Auch das sehe ich anders. Wenn ich oft Funktionen verschachteln muss, dann mache ich daraus eine neue Funktion. Was kann man besser lesen.
Code:
result:=comparetext(ExtractFileDir(WorkingFileName),ExtractFileDir(EineAndereDatei))=0;

result:=comparetext(WorkingFileDir,EineAndereDateiDir)=0;
Ich finde, das Zweite Beispiel ist besser zu lesen.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 15:37
Meinen Beitrag hast du gelesen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.307 Beiträge
 
Delphi 12 Athens
 
#10

AW: Procedurbezeichnung

  Alt 15. Sep 2011, 15:44
Meinen Beitrag hast du gelesen?
Hey, ich bin ein alter Mann. Ich bin nicht so schnell

CurrentFilename und CurrentFilePath ist OK, aber auch die muss man zusammensetzen. DAnn finde ich eine weitere Funktion CurrentFileFullPath besser
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:53 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