You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Most of the powerGate cmdlets pipe their input object into the cmdlet. This results in very poor readability as it looks like an assignment on the first sight. Using the -InputObject parameter would increase readability.
For example:
could be
An exception can be made if there is an assignment prior to the pipe as in this case there is no risk of confusion
Use $null = instead of | Out-Null
In multiple places unused output is piped into | Out-Null. This is hard to read as the scripting guy has to look to the right to see that the output is handled, when usually they would look to the left to see an assignment.
Instead $null = should be used as this is more consistent and easier to read
Don't use positional parameters
Also cmdlet calls use the -InputObject parameter, but as a positional parameter. This also causes worse readability. Named parameters are preferred as they make it obvious on sight what parameters are used. They also make it easier to debug errors when invalid values like $null are passed.
should be
Consistently name variables
Some variables are not named in a way that reflects their content. In the following example the variable is named erpBomHeaderResult, but it actually contains an Erp-BOM header.
should be
Some variables are named, but actually never used. In this case the return value of the function should be assigned to $null. This makes it immediately clear that the value never is used.
should be
Tasks:
Use -InputObject instead of pipe operator
Use $null = instead of | Out-Null
Don't use positional parameters
Consistently name variables
The text was updated successfully, but these errors were encountered:
This is very helpful for those of us who didn't grow up using script languages like PowerShell. It would be cool to collect up a coolOrange style guide so guys like me don't make a mess when we do write scripts. I would not put excess time into it but maybe collect these into StackOverflow as you think of them?
Thank you for your feedback Milt. I fully agree. A consistent coding style is especially helpful for beginners and I think it also benefits veteran scripters.
If I recall correctly we started to write something up back when I was in the project team. Jakob informed me that they still have regular coding style meetings. I asked Jakob to invite me if they need some input.
Also I think it would be nice if we could provide a custom linter. That would make it easier to adhere to guidelines and could even be shared with customers. Though it probably is a lot of work to write one.
Description
Use
-InputObject
instead of pipe operatorMost of the powerGate cmdlets pipe their input object into the cmdlet. This results in very poor readability as it looks like an assignment on the first sight. Using the -InputObject parameter would increase readability.
For example:
could be
An exception can be made if there is an assignment prior to the pipe as in this case there is no risk of confusion
Use
$null =
instead of| Out-Null
In multiple places unused output is piped into
| Out-Null
. This is hard to read as the scripting guy has to look to the right to see that the output is handled, when usually they would look to the left to see an assignment.Instead
$null =
should be used as this is more consistent and easier to readDon't use positional parameters
Also cmdlet calls use the
-InputObject
parameter, but as a positional parameter. This also causes worse readability. Named parameters are preferred as they make it obvious on sight what parameters are used. They also make it easier to debug errors when invalid values like $null are passed.should be
Consistently name variables
Some variables are not named in a way that reflects their content. In the following example the variable is named erpBomHeaderResult, but it actually contains an Erp-BOM header.
should be
Some variables are named, but actually never used. In this case the return value of the function should be assigned to $null. This makes it immediately clear that the value never is used.
should be
Tasks:
-InputObject
instead of pipe operator$null =
instead of| Out-Null
The text was updated successfully, but these errors were encountered: