Есть ли рекомендуемый стиль кодирования, как писать сценарии PowerShell?
Это не о том, как структурировать код (сколько функций, если использовать модуль,...). Это о том, " как написать код, чтобы он был читабельным ".
В языках программирования есть некоторые рекомендуемые стили кодирования (что делать с отступом, как делать отступы - пробелы/табуляции, где создавать новую строку, где ставить фигурные скобки,...), но я не видел никаких предложений для PowerShell.
Я особенно заинтересован в:
Как записать параметры
function New-XYZItem
( [string] $ItemName
, [scriptblock] $definition
) { ...
(Я вижу, что это больше похоже на синтаксис 'V1')
или же
function New-PSClass {
param([string] $ClassName
,[scriptblock] $definition
)...
или (зачем добавлять пустой атрибут?)
function New-PSClass {
param([Parameter()][string] $ClassName
,[Parameter()][scriptblock] $definition
)...
или (другое форматирование, которое я видел в коде Jaykul)
function New-PSClass {
param(
[Parameter()]
[string]
$ClassName
,
[Parameter()]
[scriptblock]
$definition
)...
или же...?
Как написать сложный конвейер
Get-SomeData -param1 abc -param2 xyz | % {
$temp1 = $_
1..100 | % {
Process-somehow $temp1 $_
}
} | % {
Process-Again $_
} |
Sort-Object -desc
или (имя командлета в новой строке)
Get-SomeData -param1 abc -param2 xyz |
% {
$temp1 = $_
1..100 |
% {
Process-somehow $temp1 $_
}
} |
% {
Process-Again $_
} |
Sort-Object -desc |
А что если есть параметры -begin
, -process
и -end
? Как сделать его максимально читабельным?
Get-SomeData -param1 abc -param2 xyz |
% -begin {
init
} -process {
Process-somehow2 ...
} -end {
Process-somehow3 ...
} |
% -begin {
} ....
или же
Get-SomeData -param1 abc -param2 xyz |
% '
-begin {
init
} '
-process {
Process-somehow2 ...
} '
-end {
Process-somehow3 ...
} |
% -begin {
} ....
Здесь важен отступ и то, какой элемент помещен на новую строку.
Я освещал только вопросы, которые приходят мне в голову очень часто. Есть и другие, но я бы хотел, чтобы этот вопрос был "коротким".
Любые другие предложения приветствуются.