Gibt es einen empfohlenen Codierungsstil zum Schreiben von PowerShell-Skripten?
Es geht nicht darum, wie man den Code strukturiert (wie viele Funktionen, wenn man ein Modul verwendet, ...). Es geht darum, wie man den Code so schreibt, dass er lesbar ist .
In Programmiersprachen gibt es einige empfohlene Codierungsstile (was einzurücken ist , wie einzurücken ist - Leerzeichen / Tabulatoren, wo neue Zeilen zu erstellen sind , wo geschweifte Klammern zu setzen sind , ...), aber ich habe keinen Vorschlag für PowerShell gesehen.
Ich interessiere mich besonders für:
Wie schreibe ich Parameter?
function New-XYZItem
( [string] $ItemName
, [scriptblock] $definition
) { ...
(Ich sehe, dass es eher wie 'V1'-Syntax ist)
oder
function New-PSClass {
param([string] $ClassName
,[scriptblock] $definition
)...
oder (warum leeres Attribut hinzufügen?)
function New-PSClass {
param([Parameter()][string] $ClassName
,[Parameter()][scriptblock] $definition
)...
oder (andere Formatierung, die ich vielleicht in Jaykuls Code gesehen habe)
function New-PSClass {
param(
[Parameter()]
[string]
$ClassName
,
[Parameter()]
[scriptblock]
$definition
)...
oder ...?
So schreiben Sie eine komplexe Pipeline
Get-SomeData -param1 abc -param2 xyz | % {
$temp1 = $_
1..100 | % {
Process-somehow $temp1 $_
}
} | % {
Process-Again $_
} |
Sort-Object -desc
oder (Name des Cmdlets in der neuen Zeile)
Get-SomeData -param1 abc -param2 xyz |
% {
$temp1 = $_
1..100 |
% {
Process-somehow $temp1 $_
}
} |
% {
Process-Again $_
} |
Sort-Object -desc |
Und was ist, wenn es -begin
, -process
und -end
Parameter? Wie mache ich es am lesbarsten?
Get-SomeData -param1 abc -param2 xyz |
% -begin {
init
} -process {
Process-somehow2 ...
} -end {
Process-somehow3 ...
} |
% -begin {
} ....
oder
Get-SomeData -param1 abc -param2 xyz |
% `
-begin {
init
} `
-process {
Process-somehow2 ...
} `
-end {
Process-somehow3 ...
} |
% -begin {
} ....
Die Einrückung ist hier wichtig und welches Element auch in eine neue Zeile gesetzt wird.
Ich habe nur Fragen behandelt, die mir sehr häufig in den Sinn kommen. Es gibt einige andere, aber ich möchte diese Frage zum Stapelüberlauf kurz halten.
Alle anderen Vorschläge sind willkommen.