Qual é o estilo de codificação recomendado para o PowerShell?

Existe algum estilo de codificação recomendado como escrever scripts do PowerShell?

Estánão sobre como estruturar o código (quantas funções, se usar módulo, ...). É sobre 'como escrever o código para que seja legível'.

Em linguagens de programação existem algunsestilos de codificação recomendados (o querecuar, como recuar - espaços / guias, onde fazernova linha, onde colocarsuspensórios, ...), mas eu não vi nenhuma sugestão para o PowerShell.

Estou particularmente interessado em:

Como escrever parâmetros

function New-XYZItem
  ( [string] $ItemName
  , [scriptblock] $definition
  ) { ...

(Vejo que é mais parecido com a sintaxe 'V1')

ou

function New-PSClass  {
  param([string] $ClassName
       ,[scriptblock] $definition
  )...

ou (por que adicionar um atributo vazio?)

function New-PSClass  {
  param([Parameter()][string] $ClassName
       ,[Parameter()][scriptblock] $definition
  )...

ou (outra formatação que vi talvez no código de Jaykul)

function New-PSClass {
  param(
        [Parameter()]
        [string]
        $ClassName
        ,
        [Parameter()]
        [scriptblock]
        $definition
  )...

ou ...?

Como escrever um pipeline complexo

Get-SomeData -param1 abc -param2 xyz | % {
    $temp1 = $_
    1..100 | % {
      Process-somehow $temp1 $_
    }
  } | % {
    Process-Again $_
  } |
  Sort-Object -desc

ou (nome do cmdlet na nova linha)

Get-SomeData -param1 abc -param2 xyz |
  % {
    $temp1 = $_
    1..100 |
      % {
        Process-somehow $temp1 $_
      }
  } |
  % {
    Process-Again $_
  } |
  Sort-Object -desc |

E se houver-begin, -processe-end parâmetros? Como faço para que seja mais legível?

Get-SomeData -param1 abc -param2 xyz |
  % -begin {
     init
  } -process {
     Process-somehow2 ...
  } -end {
     Process-somehow3 ...
  } |
  % -begin {
  } ....

ou

Get-SomeData -param1 abc -param2 xyz |
  %  `
    -begin {
      init
    } `
    -process {
      Process-somehow2 ...
    } `
    -end {
      Process-somehow3 ...
    } |
  % -begin {
  } ....

O recuo é importante aqui e qual elemento é colocado na nova linha também.

Eu cobri apenas as perguntas que vêm em minha mente com muita freqüência. Existem outros, mas eu gostaria de manter essa pergunta do Stack Overflow 'curta'.

Quaisquer outras sugestões são bem vindas.

questionAnswers(3)

yourAnswerToTheQuestion