Jaki jest zalecany styl kodowania dla PowerShell?
Czy jest jakiś zalecany styl kodowania do pisania skryptów PowerShell?
Jegonie o tym, jak ustrukturyzować kod (ile funkcji, jeśli użyć modułu, ...). To jest o 'jak napisać kod, aby był czytelny”
W językach programowania jest ich trochęzalecane style kodowania (co doakapit, jak wciskać - spacje / tabulatory, gdzie robićNowa linia, gdzie umieścićszelki, ...), ale nie widziałem żadnych sugestii dotyczących PowerShell.
Jestem szczególnie zainteresowany:
Jak pisać parametry
function New-XYZItem
( [string] $ItemName
, [scriptblock] $definition
) { ...
(Widzę, że jest to bardziej jak składnia „V1”)
lub
function New-PSClass {
param([string] $ClassName
,[scriptblock] $definition
)...
lub (dlaczego dodać pusty atrybut?)
function New-PSClass {
param([Parameter()][string] $ClassName
,[Parameter()][scriptblock] $definition
)...
lub (inne formatowanie widziałem może w kodzie Jaykula)
function New-PSClass {
param(
[Parameter()]
[string]
$ClassName
,
[Parameter()]
[scriptblock]
$definition
)...
lub ...?
Jak napisać złożony rurociąg
Get-SomeData -param1 abc -param2 xyz | % {
$temp1 = $_
1..100 | % {
Process-somehow $temp1 $_
}
} | % {
Process-Again $_
} |
Sort-Object -desc
lub (nazwa cmdletu w nowej linii)
Get-SomeData -param1 abc -param2 xyz |
% {
$temp1 = $_
1..100 |
% {
Process-somehow $temp1 $_
}
} |
% {
Process-Again $_
} |
Sort-Object -desc |
A jeśli tak jest-begin
, -process
, i-end
parametry? Jak uczynić to najbardziej czytelnym?
Get-SomeData -param1 abc -param2 xyz |
% -begin {
init
} -process {
Process-somehow2 ...
} -end {
Process-somehow3 ...
} |
% -begin {
} ....
lub
Get-SomeData -param1 abc -param2 xyz |
% `
-begin {
init
} `
-process {
Process-somehow2 ...
} `
-end {
Process-somehow3 ...
} |
% -begin {
} ....
Wcięcie jest tutaj ważne i jaki element jest również umieszczany w nowej linii.
Omówiłem tylko pytania, które często przychodzą mi na myśl. Jest kilka innych, ale chciałbym, aby to pytanie Przepełnienie stosu było „krótkie”.
Wszelkie inne sugestie są mile widziane.