Il flusso Explore-Plan-Code

Sviluppo software con Claude Code

Dani Zysman

AI Curriculum Manager @ DataCamp

Il problema del "Buttarsi Subito"

Iceberg: prompt sopra la linea di galleggiamento, complessità nascosta sotto

Sviluppo software con Claude Code

Il Workflow

Diagramma di flusso: Init → Explore → Plan → Code

Sviluppo software con Claude Code

Panoramica del progetto API

music-analytics-api/
  app.py           # Application entry point
  routes.py        # API endpoints
  models.py        # Artist/Album models
  analytics.py     # Statistics functions
  middleware.py    # Request logging
  config.py        # Session settings

Una semplice Music Analytics API con pattern già presenti da rispettare.

Sviluppo software con Claude Code

CLAUDE.md: memoria del progetto

CLAUDE.md:

  • Fornisce a Claude un contesto persistente sul progetto
  • Claude lo legge automaticamente a ogni sessione
  • Non serve rispiegare la configurazione ogni volta
Sviluppo software con Claude Code

Inizia con /init

> /init
Music Analytics API
A Flask-based REST API for music data analytics.

Project Structure
- app.py       Flask application entry point
- routes.py    API endpoint definitions
- analytics.py Statistical analysis functions

Coding Conventions
- Use type hints for function parameters
- Include docstrings for all public functions
- Follow PEP 8 style guidelines
Sviluppo software con Claude Code

Modalità Plan

  • Attiva/disattiva con Shift+Tab o digita /plan
  • Dopo aver generato un piano, premi Ctrl+G per visualizzarlo, approvarlo, rivederlo o modificarlo
Sviluppo software con Claude Code

Saltare la pianificazione

> Add a /api/login endpoint that creates a session for a user
from flask import jsonify, request
from flask_login import LoginManager, login_user
from app import app

login_manager = LoginManager(app)
@app.route('/api/login', methods=['POST'])
def login():
    """Handle user login and create session."""
    data = request.get_json()
    user = User.query.filter_by(username=data['username']).first()
    if user and user.password == data['password']:
        login_user(user)
        return jsonify({'status': 'success'})
    return jsonify({'error': 'Invalid credentials'}), 401
Sviluppo software con Claude Code

Prima il piano, poi il codice

> /plan Add a /api/login endpoint that creates a session for a user
Plan: Aggiungi endpoint POST /api/login

Context
La music analytics API ha già l'infrastruttura di sessione
(flask_session, SECRET_KEY, session già importata in routes)
ma non l'autenticazione.

Files to Modify
- models.py:  aggiungi classe User, classe UserStore, singleton user_store
- routes.py:  amplia import, aggiungi rotta di login

Nessuna modifica necessaria a app.py, config.py, middleware.py o analytics.py.
Sviluppo software con Claude Code

Ragionamento esteso

> think about how to add authentication to this API
Sviluppo software con Claude Code

Livelli di ragionamento

Comando Profondità del ragionamento
think Ragionamento di base
think more Ragionamento esteso
think a lot Ragionamento completo
think longer Ragionamento con più tempo
ultrathink Ragionamento massimo
Sviluppo software con Claude Code

Gestire context window e token

excalidraw: Finestra di contesto che si riempie con prompt e risposte, con scomposizione dei token

  • "Context window exceeded" → la sessione è troppo lunga, usa /clear
  • Claude dà priorità alle conversazioni recenti quando il contesto è pieno
Sviluppo software con Claude Code

Il workflow completo

Diagramma di flusso: /init → Explore → Plan → Review → Code → Test

Sviluppo software con Claude Code

Esercitiamoci!

Sviluppo software con Claude Code

Preparing Video For Download...