Naar hoofdinhoud
🔒 Voorbeeldmodus. De eerste vijftien Foundations-lessen zijn gratis; deze is Pro. Start een 7-daagse trial om de editor, AI-hints en de rest van het curriculum te ontgrendelen. Kaart vereist, op elk moment opzegbaar in Dashboard.Start 7-daagse trial →
← CursussenSystem Design for Python JuniorsModule 1 · Basisprincipes van systeemontwerpIdempotentiepredict14 / 105
+100 XP
Opdracht
📝 **Taak:** Voorspel het logboek van vier regels. De server gebruikt een idempotency-key cache; dezelfde sleutel retourneert het resultaat in de cache, een nieuwe sleutel verwerkt een nieuwe lading. 📋 Implementeer bovenstaande functie. Tests worden automatisch uitgevoerd. 💡 **Hint:** Herlees de theorie als je vastloopt.
Voorspel uitvoer

Lees de code zorgvuldig

class ChargeService:
    def __init__(self):
        self.balance = 0           # running ledger
        self.seen = {}             # idempotency-key → cached response
        self.log = []

    def charge(self, key, amount):
        if key in self.seen:
            self.log.append(f"cached {self.seen[key]}")
            return self.seen[key]
        self.balance += amount
        receipt = f"OK {self.balance}"
        self.seen[key] = receipt
        self.log.append(f"processed {receipt}")
        return receipt

svc = ChargeService()
svc.charge("idem-A", 100)    # first attempt — processes
svc.charge("idem-A", 100)    # retry SAME key — should return cached
svc.charge("idem-A", 100)    # another retry — still cached
svc.charge("idem-B", 50)     # new key — fresh charge

print("\n".join(svc.log))

# What does this print? Type your prediction.

Wat zal het programma uitprinten? Schrijf hier:

💬 Discussie

Wees de eerste — stel een vraag of deel een tip.
Log in om mee te doen aan de discussie. Lezen is gratis.
Discussie laden…