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