Softwareontwikkeling met Claude Code
Dani Zysman
AI Curriculum Manager @ DataCamp

--artist — artiestnaam om op te zoeken--format — JSON- of CSV-uitvoer--output — bestandspad voor resultaten| Patroon | Voorbeeld | Wanneer gebruiken |
|---|---|---|
| Verplicht | --artist "AC/DC" |
Moet worden meegegeven |
| Optioneel | --format json |
Heeft een zinvolle default |
| Vlag | --verbose |
Booleaanse aan/uit |
| Positioneel | reporter.py data.csv |
Primaire input |
--help-beschrijvingen toe voor elk argument> Use @PLAN.md to build reporter.py
Klaar! reporter.py gemaakt volgens PLAN.md
Kernfuncties:
- get_db_connection() Alleen-lezen SQLite met validatie
- fetch_artist_stats() 4 SQL-queries voor aggregaten
- format_json/csv() Uitvoeropmaak
- write_output() Wegschrijven naar bestand
- parse_args() / main() CLI-orkestratie
Features:
- Niet-hoofdlettergevoelige artiestlookup
- Uitsplitsing per album met omzet
- Alle foutmeldingen zoals gespecificeerd
- --db-vlag voor testinjectie
import argparse, sqlite3, json, csv
def main():
parser = argparse.ArgumentParser()
...
args = parser.parse_args()
conn = sqlite3.connect("chinook.db")
# Query artist's albums and tracks...
if args.format == "json":
with open(args.output, "w") as f:
json.dump(data, f, indent=2)

> Use @PLAN.md to build test_reporter.py
test_reporter.py gemaakt: 31 tests in 7 klassen Dekking: - Connection Geldige DB, ontbrekend bestand, ongeldig bestand - Stats Bekende/onbekende artiest, case-insensitive, multi-genre - JSON Indeling, inspringing, round-trip-serialisatie - CSV Twee secties, met pipes gescheiden genres, rijaantallen - File I/O Schrijven, overschrijven, niet-beschrijfbaar pad - CLI-args Vereiste args, validatie van keuzes - Integratie JSON/CSV-uitvoer, artiest/DB niet gevonden, opschonen Gebruikt minimale voorgevulde SQLite-DB: onafhankelijk van chinook.dbAlle 31 tests geslaagd!
Softwareontwikkeling met Claude Code