¿Existe algún estilo de codificación recomendado sobre cómo escribir scripts de PowerShell?
No se trata de cómo estructurar el código (cuántas funciones, si usar el módulo, ...). Se trata de ' cómo escribir el código para que sea legible '.
En los lenguajes de programación hay algunos estilos de codificación recomendados (qué sangrar , cómo sangrar: espacios / tabulaciones, dónde hacer una nueva línea , dónde poner llaves , ...), pero no he visto ninguna sugerencia para PowerShell.
Me interesa particularmente:
Cómo escribir parámetros
function New-XYZItem
( [string] $ItemName
, [scriptblock] $definition
) { ...
(Veo que es más como sintaxis 'V1')
o
function New-PSClass {
param([string] $ClassName
,[scriptblock] $definition
)...
o (¿por qué agregar un atributo vacío?)
function New-PSClass {
param([Parameter()][string] $ClassName
,[Parameter()][scriptblock] $definition
)...
o (otro formato que vi tal vez en el código de Jaykul)
function New-PSClass {
param(
[Parameter()]
[string]
$ClassName
,
[Parameter()]
[scriptblock]
$definition
)...
o ...?
Cómo escribir una canalización compleja
Get-SomeData -param1 abc -param2 xyz | % {
$temp1 = $_
1..100 | % {
Process-somehow $temp1 $_
}
} | % {
Process-Again $_
} |
Sort-Object -desc
o (nombre del cmdlet en la nueva línea)
Get-SomeData -param1 abc -param2 xyz |
% {
$temp1 = $_
1..100 |
% {
Process-somehow $temp1 $_
}
} |
% {
Process-Again $_
} |
Sort-Object -desc |
¿Y si existen -begin
, -process
y -end
los parámetros? ¿Cómo lo hago más legible?
Get-SomeData -param1 abc -param2 xyz |
% -begin {
init
} -process {
Process-somehow2 ...
} -end {
Process-somehow3 ...
} |
% -begin {
} ....
o
Get-SomeData -param1 abc -param2 xyz |
% `
-begin {
init
} `
-process {
Process-somehow2 ...
} `
-end {
Process-somehow3 ...
} |
% -begin {
} ....
La sangría es importante aquí y también qué elemento se coloca en la nueva línea.
He cubierto solo las preguntas que me vienen a la mente con mucha frecuencia. Hay algunos otros, pero me gustaría que esta pregunta de Stack Overflow sea 'breve'.
Cualquier otra sugerencia es bienvenida.