Есть ли рекомендуемый стиль написания кода для написания сценариев 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
)...
или (другое форматирование, которое я видел, возможно, в коде Джайкула)
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 {
} ....
Здесь важен отступ, и какой элемент помещается на новую строку.
Я покрывал только те вопросы, которые мне приходили в голову очень часто. Есть и другие, но я бы хотел, чтобы этот вопрос переполнения стека был коротким.
Любые другие предложения приветствуются.