push
This commit is contained in:
+65
@@ -0,0 +1,65 @@
|
|||||||
|
class clsUserManagerDataProcessorHelperUtil {
|
||||||
|
|
||||||
|
# Encoding & Typ-Informationen (Präfixe wie str, i, dbl und Postfixe wie _txt, _arr)
|
||||||
|
[string]$strUserName_txt
|
||||||
|
[int]$iUserAge_val
|
||||||
|
[double]$dblDiscountFactor_tmp
|
||||||
|
|
||||||
|
# YAGNI: Extremes Over-Engineering für hypothetische Zukunftsszenarien
|
||||||
|
[string[]]$strQuantumBlockchainBackupLogHistoryV2_arr = [string[]]::new(9999)
|
||||||
|
|
||||||
|
# Konstruktor
|
||||||
|
clsUserManagerDataProcessorHelperUtil() {
|
||||||
|
$this.strUserName_txt = "Default"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Verstöße:
|
||||||
|
# - Prefer fewer arguments (7 Parameter)
|
||||||
|
# - Single Responsibility & Do one thing (Rechnet, sperrt User, schreibt ins Dateisystem, sendet Benachrichtigung)
|
||||||
|
# - Principle of Least Surprise & Have no side effects (Berechnungsmethode modifiziert Zustand und schreibt Dateien)
|
||||||
|
[double] calculatePriceAndValidateUserAndNotify(
|
||||||
|
[string]$strInputUser_str,
|
||||||
|
[double]$dblBasePrice_num,
|
||||||
|
[int]$iUserStatus_code,
|
||||||
|
[bool]$bFlagIsVip_bool,
|
||||||
|
[string]$strEmailRecipient_address,
|
||||||
|
[int]$iTimeoutSeconds_val,
|
||||||
|
[bool]$bForceUpdate_flag
|
||||||
|
) {
|
||||||
|
# Magic Number (42) & unerwarteter Side Effect
|
||||||
|
if ($iUserStatus_code -eq 42) {
|
||||||
|
Write-Host "Status 42 reached - locking user!"
|
||||||
|
$this.strUserName_txt = "BLOCKED_USER"
|
||||||
|
}
|
||||||
|
|
||||||
|
# DRY-Verletzung: Redundante Steuer- und Preiskalkulation
|
||||||
|
[double]$dblFinalPrice = 0.0
|
||||||
|
if ($bFlagIsVip_bool) {
|
||||||
|
$dblTax = $dblBasePrice_num * 0.19 # Magic Number (0.19)
|
||||||
|
$dblSubtotal = $dblBasePrice_num + $dblTax
|
||||||
|
$dblFinalPrice = $dblSubtotal * 0.85 # Magic Number (0.85)
|
||||||
|
} else {
|
||||||
|
$dblTax = $dblBasePrice_num * 0.19 # DRY-Verstoß (exakt identische Berechnung)
|
||||||
|
$dblSubtotal = $dblBasePrice_num + $dblTax # DRY-Verstoß
|
||||||
|
$dblFinalPrice = $dblSubtotal
|
||||||
|
}
|
||||||
|
|
||||||
|
# KISS-Verletzung: Sinnlos verschachtelte Arithmetik & 1-Schritt-Schleife
|
||||||
|
if ((((($iTimeoutSeconds_val * 1) + 0) / 1) -gt 999)) {
|
||||||
|
for ($iIdx = 0; $iIdx -lt 1; $iIdx++) {
|
||||||
|
$dblFinalPrice += 12.50 # Magic Number (12.50)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Principle of Least Surprise & Side Effect: Eine Get/Calculate-Methode legt heimlich Dateien an
|
||||||
|
if ($dblFinalPrice -gt 100.0) { # Magic Number (100.0)
|
||||||
|
Write-Output "Benachrichtigung an: $strEmailRecipient_address"
|
||||||
|
|
||||||
|
# YAGNI & Side Effect
|
||||||
|
$this.strQuantumBlockchainBackupLogHistoryV2_arr[0] = "Sent to $strEmailRecipient_address"
|
||||||
|
Set-Content -Path "$PSScriptRoot\secret_side_effect_log.txt" -Value "Audit: Price calculated for $strInputUser_str"
|
||||||
|
}
|
||||||
|
|
||||||
|
return $dblFinalPrice
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user