Skip to content

Use consistent coding style for powerGate cmdlets #232

@ThomasRossmeisl

Description

@ThomasRossmeisl

Description

Use -InputObject instead of pipe operator

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:
image
could be
image

An exception can be made if there is an assignment prior to the pipe as in this case there is no risk of confusion
image

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.
image

Instead $null = should be used as this is more consistent and easier to read
image

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.
image
should be
image

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.
image
should be
image

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.
image
should be
image

Tasks:

  • Use -InputObject instead of pipe operator
  • Use $null = instead of | Out-Null
  • Don't use positional parameters
  • Consistently name variables

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions