Разработка программного обеспечения с Claude Code
Dani Zysman
AI Curriculum Manager @ DataCamp

--artist — имя исполнителя для запроса--format — формат вывода: JSON или CSV--output — путь к файлу с результатами| Шаблон | Пример | Когда использовать |
|---|---|---|
| Обязательный | --artist "AC/DC" |
Нужно указывать всегда |
| Необязательный | --format json |
Есть значение по умолчанию |
| Флаг | --verbose |
Булево вкл/выкл |
| Позиционный | reporter.py data.csv |
Основной ввод |
--help для каждого аргумента> Use @PLAN.md to build reporter.py
Готово! Файл reporter.py создан на основе PLAN.md
Основные функции:
- get_db_connection() Подключение к SQLite только для чтения, с проверкой
- fetch_artist_stats() 4 SQL-запроса для агрегатов
- format_json/csv() Форматирование вывода
- write_output() Запись в файл
- parse_args() / main() Оркестрация CLI
Функциональность:
- Поиск исполнителя без учёта регистра
- Разбивка по альбомам с указанием выручки
- Все сообщения об ошибках согласно спецификации
- Флаг --db для внедрения тестовой базы
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: 31 тест в 7 классах Покрытие: - Connection Валидная БД, отсутствующий файл, некорректный файл - Stats Известный/неизвестный исполнитель, без учёта регистра, несколько жанров - JSON Формат, отступы, сериализация туда-обратно - CSV Два раздела, жанры через «|», количество строк - File I/O Запись, перезапись, недоступный путь - CLI args Обязательные аргументы, проверка допустимых значений - Integration Вывод JSON/CSV, исполнитель/БД не найдены, очистка Использует минимальную тестовую SQLite БД: независимо от chinook.dbВсе 31 тест пройден!
Разработка программного обеспечения с Claude Code