Guarda Claude Code in azione

Sviluppo software con Claude Code

Dani Zysman

AI Curriculum Manager @ DataCamp

Sviluppo software con Claude Code

Dove si inserisce Claude Code

Gerarchia dei prodotti Claude: Web Chat, Desktop App, Terminal CLI

  • Claude.ai: Interfaccia chat, attività generali
  • Claude Desktop: App con accesso ai file
  • Claude Code: Da terminale, pensato per il coding
Sviluppo software con Claude Code

Per iniziare

$ curl -fsSL https://claude.ai/install.sh | bash

Per maggiori info: https://code.claude.com/docs/en/overview

$ cd /path/to/your/project
$ claude

Comandi utili:

  • /clear per azzerare la cronologia
  • /exit o Ctrl + C per uscire
  • /help mostra i comandi disponibili
Sviluppo software con Claude Code

Orientarsi in codice confuso

def process_data(records, threshold=0.5):
    result = []
    for r in records:
        if r.get('value') and r['value'] > threshold:
            x = r['value'] * 1.1 if r.get('premium') else r['value']
            result.append({'id': r['id'], 'adjusted': x, 'flag': x > 1})
    return sorted(result, key=lambda d: d['adjusted'], reverse=True)[:10]
  • Variabili con una lettera
  • Nessun commento
  • Logica compressa
Sviluppo software con Claude Code

Claude spiega e documenta

> What does process_data() do?
process_data(): Filtra, Regola e Classifica

Filtra: mantiene i record con value > threshold (predefinito: 0.5)
Regola: applica +10% se premium=True
Trasforma: restituisce id, adjusted e flag (se adjusted > 1)
Ordina: ritorna i primi 10 per adjusted decrescente
> Add a docstring to process_data()
"""Filtra i record sopra la soglia, applica un aumento premium del 10% e
restituisce i primi 10 per valore adjusted."""
Sviluppo software con Claude Code

Individuare un bug

def add_item(item, item_list=[]):
    item_list.append(item)
    return item_list

Individui il problema?

Sviluppo software con Claude Code

Claude trova e corregge il bug

> Find the bug in add_item() and fix it
Bug trovato e corretto: il problema era un argomento predefinito mutabile.

Usare item_list=[] fa sì che tutte le chiamate a add_item() senza 
passare una lista condividano lo stesso oggetto lista predefinito, 
causando l'accumulo di elementi tra le chiamate.
def add_item(item, item_list=None):
    if item_list is None:
        item_list = []
    item_list.append(item)
    return item_list
Sviluppo software con Claude Code

Risoluzione dei problemi

Problema Soluzione
"Context window exceeded" Usa /clear per reimpostare
Limiti di frequenza Attendi e riprova
Risultati scadenti Mantieni i prompt su un solo task
Sviluppo software con Claude Code

Il ciclo di feedback

Il ciclo di sviluppo: Descrivere, Generare, Rivedere, Rifinire

Sviluppo software con Claude Code

Esercitiamoci!

Sviluppo software con Claude Code

Preparing Video For Download...