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