¿Cuál es el estilo de codificación recomendado para PowerShell?

¿Hay algún estilo de codificación recomendado para escribir scripts de PowerShell?

Susno sobre 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 lenguajes de programación hay algunosestilos de codificación recomendados (quésangrar, cómo sangrar - espacios / pestañas, dónde hacernueva línea, donde ponertirantes, ...), pero no he visto ninguna sugerencia para PowerShell.

Estoy interesado particularmente en:

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 tubería 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 que si hay-begin, -processy-end 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 qué elemento se pone en una nueva línea también.

He cubierto solo las preguntas que vienen a mi mente con mucha frecuencia. Hay algunos otros, pero me gustaría mantener esta pregunta de Desbordamiento de pila 'corta'.

Cualquier otra sugerencia es bienvenida.

Respuestas a la pregunta(3)

Su respuesta a la pregunta