modulo 23 di 24 / Ore 41-60
Moduli 17-24 / Checkpoint 60 ore
Pulizia finale della demo
Portare il progetto allo stato pulito prima della valutazione: rimuovere console.log di debug, ripristinare i dati di esempio, aggiornare README e verificare che tutto parta correttamente.
Pulizia finale della demo
Questa lezione appartiene al Modulo 23 — Preparazione della consegna finale estesa.
Cosa significa “pulire” la demo
Pulire la demo non significa renderla perfetta — significa rimuovere tutto ciò che distrae dalla valutazione del lavoro reale. Chi valuta deve vedere il progetto funzionante, non i residui del processo di sviluppo.
Ci sono quattro categorie di pulizia:
- Pulizia del codice —
console.logdi debug, codice commentato, variabili inutilizzate - Pulizia dei dati — localStorage con dati di test, dati incoerenti, stato inaspettato
- Pulizia della documentazione — README con sezioni incomplete o placeholder, link rotti
- Pulizia dell’ambiente — schede del browser aperte, errori in console, URL sbagliati
Pulizia 1: codice
Rimuovere console.log di debug
// ❌ Da rimuovere prima della consegna
function registraPrestito(comando) {
console.log("comando ricevuto:", comando); // debug
console.log("archivio stato:", archivioStrumenti.leggiTutti()); // debug
const strumento = archivioStrumenti.trovaPerId(comando.strumentoId);
console.log("strumento trovato:", strumento); // debug
// ...
}
// ✅ Dopo la pulizia
function registraPrestito(comando) {
const strumento = archivioStrumenti.trovaPerId(comando.strumentoId);
// ...
}
Eccezione: i console.error nei blocchi catch vanno tenuti — sono logging legittimo, non debug.
Rimuovere codice commentato
// ❌ Da rimuovere
// function vecchiaVersione(id) {
// return localStorage.getItem(id);
// }
// if (DEBUG_MODE) {
// mostraStatoInterno();
// }
Il codice commentato crea rumore. Se serve per storia, è nel git history.
Verificare import inutilizzati
// ❌ Import che non vengono usati
import { vecchiaFunzione } from "./utils.js"; // non usato
import { mappaDeprecata } from "./mapping.js"; // non usato
Pulizia 2: dati
Preparare dati di esempio coerenti
Prima della valutazione, carica nel Registro uno scenario di dati pulito e realistico:
Strumenti da avere nel localStorage per la demo:
- Trapano elettrico (Elettrico, disponibile)
- Multimetro digitale (Misura, disponibile)
- Saldatore a stagno (Elettrico, disponibile)
- Seghetto alternativo (Manuale, in_manutenzione) — utile per mostrare lo stato
- Pinza amperometrica (Misura, guasto) — utile per mostrare l'errore di prestito
Creare un file datiIniziali.js
Invece di caricare i dati manualmente prima di ogni demo, prepara un file che li carica automaticamente se localStorage è vuoto:
// src/datiIniziali.js
export const strumentiIniziali = [
{ id: "s1", nome: "Trapano elettrico", categoria: "Elettrico", stato: "disponibile" },
{ id: "s2", nome: "Multimetro digitale", categoria: "Misura", stato: "disponibile" },
{ id: "s3", nome: "Saldatore a stagno", categoria: "Elettrico", stato: "disponibile" },
{ id: "s4", nome: "Seghetto alternativo", categoria: "Manuale", stato: "in_manutenzione" },
{ id: "s5", nome: "Pinza amperometrica", categoria: "Misura", stato: "guasto" }
];
// In main.js — carica i dati iniziali se localStorage è vuoto
const esistenti = archivioStrumenti.leggiTutti();
if (esistenti.length === 0) {
strumentiIniziali.forEach(s => archivioStrumenti.salva(s));
}
Pulizia 3: documentazione
README — sezioni da verificare
Apri il README e controlla che ogni sezione sia completa:
Sezioni obbligatorie nel README:
[ ] Nome del progetto e breve descrizione (1-2 frasi)
[ ] Come avviare (comandi precisi, senza ambiguità)
[ ] Struttura delle cartelle con descrizione di ogni livello
[ ] Funzioni principali (cosa sa fare il Registro)
[ ] Scelte architetturali (almeno una con motivazione)
[ ] Limiti noti (almeno uno — onestà intellettuale)
[ ] Come eseguire i test (se presenti)
Placeholder da rimuovere
❌ "[Inserire qui la spiegazione]"
❌ "TODO: completare questa sezione"
❌ "Vedi lezione X per dettagli"
❌ Link che puntano a localhost ma non funzionano dalla cartella
Pulizia 4: ambiente
Checklist pre-valutazione
Ambiente:
[ ] Il progetto si apre correttamente con doppio click su index.html (o server locale)
[ ] La console del browser non mostra errori rossi all'avvio
[ ] localStorage è nello stato corretto (svuotato e ripopolato con dati iniziali)
[ ] Le schede del browser sono pulite (no tab con versioni vecchie aperte)
[ ] L'editor mostra il file corretto (no modifiche non salvate)
Contenuto:
[ ] Tutti i console.log di debug sono rimossi
[ ] Il codice commentato inutile è rimosso
[ ] Il README è completo e leggibile
[ ] I dati di esempio sono caricati e realistici
[ ] Il diagramma (se presente) è coerente con il codice attuale
Procedura guidata
- Esegui grep per
console.login tutti i file JS — rimuovi quelli di debug, tieni iconsole.error. - Cerca commenti
//che contengono codice inattivo — rimuovili. - Svuota localStorage e carica i dati di esempio.
- Apri il README e completa ogni sezione incompleta.
- Apri il progetto su un browser pulito (o in incognito) e verifica che parta senza errori.
- Controlla la console: nessun errore rosso.
Attività in classe
## Pulizia finale — log delle modifiche
console.log rimossi:
- [file:riga] — motivo rimozione
Codice commentato rimosso:
- [file:riga]
README sezioni completate:
- [sezione]
Dati di esempio preparati: sì/no
- Strumenti disponibili: [n]
- Strumenti in altri stati: [n]
Errori in console dopo pulizia: sì/no (quali?)
Tempo stimato per avviare il progetto da zero: _____ secondi
Spiegazione guidata per studiare
La pulizia della demo è l’ultimo passo prima della valutazione — e spesso il più trascurato. Un progetto con console.log di debug sparse, dati incoerenti in localStorage, o un README con placeholder non trasmette competenza — trasmette fretta.
Il punto centrale è: chi valuta vede il prodotto finito, non il processo di sviluppo. Il processo ha valore, ma va raccontato in retrospettiva — non lasciato come residuo nel codice.
Il rischio tipico è aggiungere funzionalità all’ultimo momento invece di pulire ciò che esiste. Un progetto pulito e completo al 70% è più forte di un progetto al 90% con debug visibili e README a metà.
Passo per passo nel progetto
- Apri ogni file JS — cerca
console.logmanualmente o con grep. - Per ogni
console.log: è debug (rimuovi) o logging legittimo conconsole.error(tieni)? - Svuota localStorage (DevTools → Application → Clear storage).
- Carica i dati di esempio tramite il file
datiIniziali.jso manualmente. - Apri il progetto in una finestra in incognito — simula “prima volta”.
- Leggi il README come se fossi un valutatore esterno — è comprensibile?
Esempio da leggere lentamente
Checklist di pulizia completata — cosa ho fatto:
1. Rimosso 7 console.log da registraPrestito.js e ui.js.
Tenuto console.error nei blocchi catch — è logging legittimo.
2. Rimosso blocco di codice commentato in archivioLocalStorage.js
(vecchia versione di salva() che non usavo più).
3. Svuotato localStorage. Caricato datiIniziali.js con 5 strumenti.
Verificato che i filtri funzionino con i nuovi dati.
4. Completato README: aggiunta sezione "Come avviare" con comando
python3 -m http.server 8000, e sezione "Limiti noti" con
"i dati non sono protetti — chiunque con accesso al browser può modificarli".
5. Aperto in incognito: nessun errore in console, il progetto parte correttamente.
Prova di comprensione
- Hai rimosso tutti i
console.logdi debug? Come li hai trovati? - Il README ha tutte le sezioni obbligatorie complete?
- Il progetto si apre correttamente in una finestra in incognito senza errori?
Errori da evitare
- rimuovere
console.errorinsieme aiconsole.log— i log degli errori servono; - dimenticare di aggiornare il README dopo l’ultima modifica al codice;
- lasciare dati di test in localStorage — la demo parte da uno stato imprevisto;
- fare pulizia e modificare logica nello stesso passo — separa le due operazioni.
Prodotto da consegnare
Può essere:
- il log delle modifiche di pulizia (cosa è stato rimosso, dove);
- una screenshot della console del browser dopo la pulizia (nessun errore rosso);
- il README completato con tutte le sezioni obbligatorie.
Checklist di chiusura
- Nessun
console.logdi debug nei file JS (iconsole.errorsono ok) - Nessun codice commentato inutile
- localStorage svuotato e ripopolato con dati di esempio realistici
- README completo: avvio, struttura, funzioni, scelte, limiti
- Il progetto si apre senza errori in una finestra in incognito
- Nessun errore rosso in console all’avvio
Domande per la revisione
- Quanti
console.loghai rimosso? In quali file erano concentrati? - Il README descriveva il progetto com’è adesso, o come era settimane fa?
- Quanto tempo ci vuole per avviare il progetto da zero su un computer diverso?
Risultato atteso
Alla fine lo studente deve saper dire:
Ho rimosso [n] console.log di debug dai file [lista].
Ho preparato [n] strumenti di esempio in localStorage.
Il README ha queste sezioni complete: [lista].
Il progetto si apre correttamente in incognito senza errori in console.
Se questa spiegazione non è possibile, la lezione non è ancora davvero conclusa.