Pengembangan Perangkat Lunak dengan Claude Code
Dani Zysman
AI Curriculum Manager @ DataCamp

--artist — nama artis untuk kueri--format — keluaran JSON atau CSV--output — path file untuk hasil| Pola | Contoh | Kapan Digunakan |
|---|---|---|
| Wajib | --artist "AC/DC" |
Harus diberikan |
| Opsional | --format json |
Punya nilai baku masuk akal |
| Flag | --verbose |
Boolean nyala/mati |
| Posisi | reporter.py data.csv |
Masukan utama |
--help untuk setiap argumen> Use @PLAN.md to build reporter.py
Selesai! Membuat reporter.py mengikuti PLAN.md
Fungsi inti:
- get_db_connection() SQLite hanya-baca dengan validasi
- fetch_artist_stats() 4 kueri SQL untuk agregat
- format_json/csv() Pemformatan keluaran
- write_output() Penulisan file
- parse_args() / main() Orkestrasi CLI
Fitur:
- Pencarian artis tidak peka huruf besar-kecil
- Rincian per album dengan pendapatan
- Semua pesan galat sesuai spesifikasi
- Flag --db untuk injeksi pengujian
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
Dibuat test_reporter.py: 31 tes di 7 kelas Cakupan: - Koneksi DB valid, file hilang, file tidak valid - Statistik Artis dikenal/tidak dikenal, tidak peka huruf, multi-genre - JSON Format, indentasi, serialisasi bolak-balik - CSV Dua seksi, genre dipisah pipa, jumlah baris - File I/O Tulis, timpa, path tak dapat ditulis - Argumen CLI Argumen wajib, validasi pilihan - Integrasi Keluaran JSON/CSV, artis/DB tidak ditemukan, pembersihan Menggunakan SQLite berisi minimal: independen dari chinook.dbSemua 31 tes lulus!
Pengembangan Perangkat Lunak dengan Claude Code