Mjukvaruutveckling med Claude Code
Dani Zysman
AI Curriculum Manager @ DataCamp

--artist — artistnamn att söka på--format — JSON- eller CSV-utdata--output — filsökväg för resultat| Mönster | Exempel | När används |
|---|---|---|
| Obligatoriskt | --artist "AC/DC" |
Måste anges |
| Valfritt | --format json |
Har ett rimligt standardvärde |
| Flagga | --verbose |
Boolesk av/på |
| Positionsbaserat | reporter.py data.csv |
Primär indata |
--help-beskrivningar för varje argument> Use @PLAN.md to build reporter.py
Klart! reporter.py skapad enligt PLAN.md
Kärnfunktioner:
- get_db_connection() Skrivskyddad SQLite med validering
- fetch_artist_stats() 4 SQL-frågor för aggregat
- format_json/csv() Utdataformatering
- write_output() Filskrivning
- parse_args() / main() CLI-orkestrering
Funktioner:
- Skiftlägesokänslig artistsökning
- Uppdelning per album med intäkter
- Alla felmeddelanden enligt specifikation
- --db-flagga för testinjektion
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 skapad: 31 tester fördelade på 7 klasser Täckning: - Anslutning Giltig databas, saknad fil, ogiltig fil - Statistik Känd/okänd artist, skiftlägesokänslig, flera genrer - JSON Format, indrag, round-trip-serialisering - CSV Två sektioner, pipe-avgränsade genrer, radantal - Fil-I/O Skrivning, överskrivning, oskrivbar sökväg - CLI-argument Obligatoriska argument, validering av val - Integration JSON-/CSV-utdata, artist/databas hittas inte, upprensning Använder en minimal seedad SQLite-databas: oberoende av chinook.dbAlla 31 tester godkända!
Mjukvaruutveckling med Claude Code