La Via del Codice: Dialogo 1
In una piccola caffetteria, un giovane programmatore siede frustrato davanti al suo laptop. Un anziano sviluppatore, notando la sua agitazione, si avvicina.
Anziano: Vedo che stai lottando con il codice, giovane.
Giovane: (sospirando) Non riesco a far funzionare questo maledetto contatore. È solo JavaScript, dovrebbe essere semplice! Ho un deadline domani per un intero e-commerce, e sono bloccato su questa stupida funzione.
Anziano: (sedendosi) Mmh. Dimmi, quando mangi una torta, come procedi?
Giovane: (perplesso) La... mangio? Un morso alla volta, suppongo.
Anziano: E perché non la ingoi intera?
Giovane: (ridendo) Sarebbe assurdo! Mi strozzerei.
Anziano: Eppure è esattamente quello che stai cercando di fare con il tuo codice. Mostrami cosa hai scritto.
Giovane:
function buildEcommerce() {
setupDatabase();
createUI();
handlePayments();
// Altri 200 righe di codice...
}
Anziano: Vedi? Stai cercando di ingoiare l'intera torta. Proviamo un approccio diverso. Qual è la cosa più piccola che potresti costruire ora?
Giovane: Beh... suppongo che potrei iniziare dal contatore che non funziona.
Anziano: Ancora troppo grande. Più piccolo.
Giovane: Un... bottone che cambia colore quando ci clicco sopra?
Anziano: (sorridendo) Ora ci siamo. Scrivilo.
Giovane:
const button = document.querySelector('#myButton');
button.addEventListener('click', () => {
button.style.backgroundColor = 'blue';
});
Anziano: Funziona?
Giovane: Sì! È... quasi troppo semplice.
Anziano: La semplicità è il primo passo della maestria. Ora, aggiungi il contatore.
Giovane:
let count = 0;
button.addEventListener('click', () => {
count++;
button.textContent = count;
});
Anziano: Vedi? Da un semplice bottone a un contatore. Da un contatore a un carrello. Da un carrello a un e-commerce. Questo è la Via.
Giovane: (pensieroso) Ma quando scrivo codice più complesso, spesso mi perdo nei dettagli. È frustrante, faccio errori stupidi...
Anziano: Ah, la fretta. Il più grande nemico del programmatore. Quando il codice non funziona, cosa fai?
Giovane: Di solito mi arrabbio e inizio a cambiare cose a caso sperando che funzioni.
Anziano: (prendendo un sorso di caffè) Quando un detective trova un cadavere, corre subito ad arrestare il primo sospetto?
Giovane: Non credo
Anziano: Che fa?
Giovane: Boh... raccoglie indizi, formula ipotesi, le testa?
Anziano: Esatto. Mostrami un bug che ti sta tormentando.
Giovane:
for(let i=0; i<array.lenght; i++) {
// Il loop non funziona!
}
Anziano: (indicando lo schermo) Guarda attentamente. Lettera per lettera.
Giovane: (dopo un momento) Oh... ho scritto 'lenght' invece di 'length'!
Anziano: Un detective paziente nota ciò che un detective frettoloso ignora. Ma dimmi, quando scrivi una nuova funzione, cerchi subito la perfezione?
Giovane: Ci provo... ma spesso finisco paralizzato dal tentativo di scrivere codice perfetto al primo colpo.
Anziano: (sorridendo) Un maestro di arti marziali non nasce tale. Prima impara a stare in piedi, poi a camminare, poi a correre, infine a combattere. Ogni versione del suo stile è imperfetta, ma necessaria.
Giovane: Quindi... va bene scrivere codice imperfetto?
Anziano: Non solo va bene, è necessario. Guarda:
// Versione 1: Funziona, ma è brutta
function calcolaPrezzo(prodotto) {
return prodotto.prezzo * 1.22;
}
// Versione 2: Meglio, ma ancora migliorabile
function calcolaPrezzo(prodotto, tassaPercentuale = 22) {
return prodotto.prezzo * (1 + tassaPercentuale / 100);
}
// Versione 3: Ora sì!
function calcolaPrezzo({prezzo}, {tassaPercentuale = 22} = {}) {
if (prezzo < 0) throw new Error('Prezzo non valido');
return prezzo * (1 + Math.max(0, tassaPercentuale) / 100);
}
Giovane: Ogni versione itera la precedente...
Anziano: E ogni versione era perfetta per il suo momento. La perfezione non è uno stato, è un processo.
Giovane: (dopo una pausa) Ho sempre pensato che la programmazione fosse solo... scrivere codice. Ma mi stai insegnando molto di più.
Anziano: La programmazione è uno specchio. Ci mostra come pensiamo, come affrontiamo i problemi, come gestiamo la frustrazione. Ogni bug è un'opportunità di crescita, ogni refactoring una lezione di umiltà.
Giovane: (guardando il suo codice con occhi nuovi) Quindi quale dovrebbe essere il mio prossimo passo con l'e-commerce?
Anziano: Quale pensi che sia il più piccolo passo utile che puoi fare ora?
Giovane: Potrei... iniziare con una semplice lista di prodotti. Solo HTML e CSS. Poi aggiungere il bottone che abbiamo fatto. Poi il carrello...
Anziano: (alzandosi) Hai capito la Via. Ricorda: la fretta genera errori, la pazienza genera codice. La perfezione paralizza, l'imperfezione insegna. E soprattutto...
Giovane: Sì?
Anziano: Controlla sempre l'ortografia di 'length'. (sorride e se ne va)
Giovane: (ridendo, mentre torna al suo codice con rinnovato entusiasmo) Length. Non lenght. Mai più.
Blog post più recenti