Reduce code duplication by extracting repeated patterns into variables, loops, or helper functions. When you find yourself writing similar lines of code multiple times, refactor to a more DRY (Don't Repeat Yourself) approach to improve maintainability and readability.
Reduce code duplication by extracting repeated patterns into variables, loops, or helper functions. When you find yourself writing similar lines of code multiple times, refactor to a more DRY (Don’t Repeat Yourself) approach to improve maintainability and readability.
Example 1 - Refactor repetitive logging:
# Before
Write-Host "Configuration File: $ConfigPath"
Write-Host $rawConfig
Write-Host "SelectionType: $Selection"
Write-Host "DisplayNameFilter: $DisplayNameFilter"
Write-Host "Filters: $Filters"
# After
$logEntries = @{
"Configuration File" = $ConfigPath
"Raw Configuration" = $rawConfig
"SelectionType" = $Selection
"DisplayNameFilter" = $DisplayNameFilter
"Filters" = $Filters
}
foreach ($key in $logEntries.Keys) {
Write-Host "$key: $($logEntries[$key])"
}
Example 2 - Store nested paths in variables:
# Before
if ($yml["options"]["@azure-tools/typespec-csharp"]["package-dir"]) {
$packageDir = $yml["options"]["@azure-tools/typespec-csharp"]["package-dir"]
}
if ($yml["options"]["@azure-tools/typespec-csharp"]["service-dir"]) {
$service = $yml["options"]["@azure-tools/typespec-csharp"]["service-dir"]
}
# After
$csharpOpts = $yml["options"]["@azure-tools/typespec-csharp"]
if ($csharpOpts["package-dir"]) {
$packageDir = $csharpOpts["package-dir"]
}
if ($csharpOpts["service-dir"]) {
$service = $csharpOpts["service-dir"]
}
Enter the URL of a public GitHub repository