feat(workshop): add bonus exercises for custom providers and currencies
Introduce optional bonus tasks in part4 covering: - CSV-based exchange rate provider - historical exchange rate provider with date handling - custom currency (DKP) with bidirectional conversion Provide exercise scaffolding and tests for all scenarios. Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
This commit is contained in:
parent
59d2342104
commit
8e61f2d2e2
11 changed files with 677 additions and 4 deletions
|
|
@ -154,9 +154,11 @@ BigDecimal amount = new BigDecimal("10.123") // gültig oder nicht?
|
|||
|
||||
<div class="my-6"></div>
|
||||
|
||||
- CHF: 2 Nachkommastellen
|
||||
- JPY: keine Nachkommastellen
|
||||
- TND: 3 Nachkommastellen
|
||||
<ul v-click>
|
||||
<li>CHF: 2 Nachkommastellen</li>
|
||||
<li>JPY: keine Nachkommastellen</li>
|
||||
<li>TND: 3 Nachkommastellen</li>
|
||||
</ul>
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -991,6 +993,66 @@ Warenkorb / Bestellung
|
|||
|
||||
---
|
||||
|
||||
# Bonusaufgabe 1
|
||||
|
||||
Eigener Exchange Rate Provider
|
||||
|
||||
Package: `swiss.fihlon.workshop.money.part4`
|
||||
|
||||
- Implementiere einen eigenen `ExchangeRateProvider`
|
||||
- Lade Wechselkurse aus `exchange-rates.csv`
|
||||
- CSV enthält:
|
||||
- Quellwährung
|
||||
- Zielwährung
|
||||
- Wechselkurs
|
||||
- Stelle Umrechnungen zwischen den Währungen bereit
|
||||
- Noch **ohne** Historisierung
|
||||
|
||||
Relevante Interfaces: `ExchangeRateProvider`
|
||||
|
||||
👉 Ziel: eigener Provider mit lokal geladenen Kursen
|
||||
|
||||
---
|
||||
|
||||
# Bonus 2
|
||||
|
||||
Historische Kurse
|
||||
|
||||
Package: `swiss.fihlon.workshop.money.part4`
|
||||
|
||||
- Erweitere deinen Provider aus Bonus 1
|
||||
- Verwende `exchange-rates-hist.csv`
|
||||
- CSV enthält zusätzlich:
|
||||
- Datum pro Wechselkurs
|
||||
- Wähle den passenden Kurs für ein angefragtes Datum
|
||||
- Fallback: sinnvoller Standard (z. B. letzter verfügbarer Kurs)
|
||||
|
||||
Relevante Interfaces: `ExchangeRateProvider`
|
||||
|
||||
👉 Ziel: zeitabhängige Wechselkurse unterstützen
|
||||
|
||||
---
|
||||
|
||||
# Bonus 3
|
||||
|
||||
Eigene Währung
|
||||
|
||||
Package: `swiss.fihlon.workshop.money.part4`
|
||||
|
||||
- Implementiere die eigene Währung `DKP`
|
||||
- Vorgegebener Umrechnungsfaktor:
|
||||
- 10 CHF = 1 DKP
|
||||
- Baue einen eigenen Converter
|
||||
- Unterstütze:
|
||||
- CHF → DKP
|
||||
- DKP → CHF
|
||||
|
||||
Relevante Interfaces: `CurrencyUnit` und `ExchangeRateProvider`
|
||||
|
||||
👉 Ziel: eigene Währung ins Modell integrieren
|
||||
|
||||
---
|
||||
|
||||
# Voraussetzungen
|
||||
|
||||
Java-Versionen
|
||||
|
|
@ -1057,4 +1119,4 @@ layout: center
|
|||
layout: center
|
||||
---
|
||||
|
||||
# **Danke!**
|
||||
# Danke!
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue