PowerShell:
Refaktorisering
Hur man gör:
PowerShell har inte ett dedikerat refaktoreringsverktyg inbyggt, men du kan fortfarande städa upp din kod för läsbarhet och prestanda. Betrakta en funktion som gör för mycket och hur vi kan refaktorera den för klarhet:
function Get-InventoryData {
# Ursprungsfunktion som kombinerar datahämtning och formatering
$data = Get-Content -Path 'C:\inventory-list.txt'
$inventoryData = $data | ForEach-Object {
$fält = $_ -split ','
[PSCustomObject]@{
ItemID = $fält[0]
Namn = $fält[1]
Antal = $fält[2]
Pris = $fält[3]
}
}
$inventoryData | Format-Table -AutoSize
}
# Refaktoriserad till separata funktioner
function Import-InventoryData {
param($Path)
Get-Content -Path $Path | ForEach-Object {
$fält = $_ -split ','
[PSCustomObject]@{
ItemID = $fält[0]
Namn = $fält[1]
Antal = $fält[2]
Pris = $fält[3]
}
}
}
function Format-InventoryData {
param($Data)
$Data | Format-Table -AutoSize
}
# Användning
$inventory = Import-InventoryData -Path 'C:\inventory-list.txt'
Format-InventoryData -Data $inventory
Exempel på utdata:
ItemID Namn Antal Pris
------ ---- ----- -----
1001 Widget Type A 50 9.99
1002 Gadget Type B 20 14.99
Fördjupning
Refaktorisering i programmering har rötter som sträcker sig tillbaka till de tidigaste dagarna av mjukvaruutveckling, även om det formaliserades som en praxis på 1990-talet. Martin Fowlers bok “Refaktorisering: Förbättring av befintlig kods design” är ett av de mest betydande verken i ämnet, som betonar vikten av refaktorisering för att uppnå ren kod.
Även om PowerShell inte kommer med specifika refaktoreringsverktyg som vissa integrerade utvecklingsmiljöer (IDE) för andra språk gör (tänk Eclipse eller Visual Studio), kan du fortfarande praktisera goda refaktoreringsprinciper manuellt. Det viktiga att komma ihåg är att refaktorisering inte bara handlar om att ändra kod för ändrandets skull, men att göra avsiktliga, beteendebibehållande modifieringar som förbättrar kodens struktur och design.
Alternativ till manuell refaktorisering i PowerShell inkluderar användning av IDE:er som stöder språket, såsom Visual Studio Code med PowerShell-tillägget, som erbjuder funktioner som kodformatering och grundläggande refaktoreringskapaciteter. För mer betydande refaktorisering kan du överväga att använda Pester-tester för att säkerställa att ändringarna inte förändrar funktionaliteten.
Dessutom kan genomförande av refaktorisering innebära mer systemiska förändringar som modularisering, där kod delas upp i återanvändbara moduler eller funktioner, vilket förbättrar efterlevnaden av principen DRY (Don’t Repeat Yourself). Andra vanliga refaktoreringstekniker inkluderar att byta namn för tydlighet, ta bort dubblettkod och minska komplexiteten i villkorslogik.
Se också
För att fördjupa dig ytterligare, här är några resurser:
- Martin Fowlers Refaktoriseringsbok: Refaktorisering: Förbättring av befintlig kods design
- Testa refaktoriserad kod med Pester: Pester Testningsramverk
- PowerShell bästa praxis: The PowerShell Best Practices and Style Guide