Claude Code ile Yazılım Geliştirme
Dani Zysman
AI Curriculum Manager @ DataCamp

--artist — sorgulanacak sanatçı adı--format — JSON veya CSV çıktı--output — sonuç dosya yolu| Desen | Örnek | Ne Zaman Kullanılır |
|---|---|---|
| Zorunlu | --artist "AC/DC" |
Sağlanmalı |
| İsteğe bağlı | --format json |
Mantıklı varsayılanı var |
| Bayrak | --verbose |
Boolean açık/kapalı |
| Konumsal | reporter.py data.csv |
Birincil girdi |
--help açıklaması ekle> Use @PLAN.md to build reporter.py
Done! Created reporter.py following PLAN.md
Core functions:
- get_db_connection() Read-only SQLite with validation
- fetch_artist_stats() 4 SQL queries for aggregates
- format_json/csv() Output formatting
- write_output() File writing
- parse_args() / main() CLI orchestration
Features:
- Case-insensitive artist lookup
- Per-album breakdown with revenue
- All error messages as specified
- --db flag for test injection
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
Created test_reporter.py: 31 tests across 7 classes Coverage: - Connection Valid DB, missing file, invalid file - Stats Known/unknown artist, case-insensitive, multi-genre - JSON Format, indentation, round-trip serialization - CSV Two sections, pipe-delimited genres, row counts - File I/O Write, overwrite, unwritable path - CLI args Required args, choices validation - Integration JSON/CSV output, artist/DB not found, cleanup Uses minimal seeded SQLite DB: independent of chinook.dbAll 31 tests passing!
Claude Code ile Yazılım Geliştirme