Bangun dan Uji Alat

Pengembangan Perangkat Lunak dengan Claude Code

Dani Zysman

AI Curriculum Manager @ DataCamp

Dari Rencana ke Kode

recraft: half: Pengembang di meja sedang membuat alat CLI dengan terminal menampilkan keluaran argparse

  • Spesifikasi kita dari Pelajaran 4.1:
    • --artist — nama artis untuk kueri
    • --format — keluaran JSON atau CSV
    • --output — path file untuk hasil
  • Claude akan menghasilkan:
    • parsing argumen argparse
    • Kueri basis data via MCP
    • Logika keluaran file
Pengembangan Perangkat Lunak dengan Claude Code

Pola Argumen CLI

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
  • Praktik terbaik:
    • Tambahkan deskripsi --help untuk setiap argumen
    • Gunakan nilai baku untuk mengurangi input wajib
    • Validasi dini, gagal cepat dengan pesan jelas
Pengembangan Perangkat Lunak dengan Claude Code

Membangun Reporter

> 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
Pengembangan Perangkat Lunak dengan Claude Code

Kode yang Dihasilkan

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)
Pengembangan Perangkat Lunak dengan Claude Code

Uji Alatnya

bagan alir: reporter.py, pytest, Verifikasi Keluaran

  • Pengujian memverifikasi:
    • Artis valid mengembalikan data
    • File keluaran dibuat
    • Format JSON/CSV benar
Pengembangan Perangkat Lunak dengan Claude Code

Menguji Alat CLI

  • Unit Test
    • Uji fungsi individual
    • Mock panggilan basis data
    • Cepat, terisolasi, dapat diulang
  • Integration Test
    • Jalankan perintah CLI sesungguhnya
    • Gunakan basis data nyata
    • Lebih lambat tapi lebih realistis
  • Apa yang diuji:
    • Jalur utama — artis valid, keluaran benar
    • Kasus galat — artis tidak ditemukan, format buruk
    • Kasus tepi — nama kosong, karakter khusus
    • Penanganan file — izin tulis, timpa
Pengembangan Perangkat Lunak dengan Claude Code

Pengujian Berlangsung

> 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.db

Semua 31 tes lulus!
Pengembangan Perangkat Lunak dengan Claude Code

Ayo berlatih!

Pengembangan Perangkat Lunak dengan Claude Code

Preparing Video For Download...