Fragensteller
Namenskonvention in Powershell

Allgemeine Diskussion
-
Hallo ich wollte mal eine kleine Diskussion starten, wie ihr in Powershell eure Variablen, Funktionen etc. benennt.
Habt ihr vielleich dabei auch irgendwelche Tipps für mich?
Ich benenne eigentlich nur aufgrund des Zweckes also zum Beispiel:
Variable um Ordner auszulesen heisst bei mir $ordner oder falls präziser gebraucht $ordnerprojekt1Wie sieht es bei euch aus, habt ihr für verschiedene Datentypen noch Präfixe oder kürzt ihr Beschreibungen ab. ($fol = $ordner)
Grüsse aus der Schweiz
PS: Ich wusste nicht, ob ich den Thread als Frage oder Diskussion starten soll...
Alle Antworten
-
Hallo,
als Diskussion finde ich es passend, den das soll es ja werden.
Ich halte mich bei Powershell Skripten an die allgemeinen C# Naming and Coding Conventions und das obwohl ich ein alter VBler bin.
Es ist einfach einfacher, in allen Sprachen / IDE es gleich zu halten, sonst kommt man (ich) durcheinander.
Siehe z.B. MSDN Guidelines for Names.
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing -
Gute Frage! :)
Ein vernünftiges Benamsungsschema ist erfahrungsgemäß sehr wichtig um besonders bei größeren Skripten nicht den Überblick zu verlieren und auch um sich unnötige Arbeit beim Troubleshooting zu ersparen.
Da meine Scripte in der Regel später von anderen gewartet und vor allem verstanden werden müssen, habe ich mir angewöhnt in den Variablennamen den Inhalt möglichst eindeutig zu beschreiben. I.d.R. nach dem Muster:
<1 Zeichen: Scope (z.b. lokale oder scriptweite Variable> + <min.3Zeichen: Abstammung (stammt der Inhalt aus einer anderen Variable oder Funktion)> + <sonstigeInhaltsbescheibung>
also z.b. eine skriptweite Variable die Dateigrößen enthält, die ich aus $Folder extrahiert habe, wäre: $sFolderAllFilesizes
Teilweise werden die Namen so sehr lang, aber mit einem vernünftigen Editor (wie z.b. PowerGUi oder PowerSE) muss man die Namen eh nur einmal ganz eintippen, und es hat den Vorteil, das man selbst bei sehr komplexen Scripten nie überlegen muss, was das jetzt noch mal für eine Variable war.
Abkürzungen benutze ich nur wenn sie eindeutig sind. Englische statt deutsche Namen verkürzen die Sache aber auch meist deutlich (LastWriteDate vs. DatumLetzterSchreibzugriff) und es gib keine Probleme mit Umlauten.
Wo wir gerade dabei sind: für ein effektives Troubleshooting ist es auch eine gute Idee wichtige Variablen als skriptweite Variablen ($script:xyz) anzulegen, auch wenn sie in einer Funktion befüllt - und nur dort gebraucht werden. Der Inhalt von skriptweiten Variablen steht nämlich nach dem Ausführen des Scripts (im Editor) oder einem gewollten oder fehlerhaften Abbruch noch zur Verfügung und können von der Console aus abgerufen werden, was das Debugging erheblich erleichtern kann.
Funktionen starten bei mir alle mit "FN"+<Name der Funktion>, um z.b. Verwechslungen mit gleichnamigen CMDlets zu vermeiden.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".
- Bearbeitet Denniver ReiningMVP, Moderator Mittwoch, 21. Dezember 2011 11:17