Git Worktree: Lavorare su Più Branch Senza Stash

Sei a metà di un feature branch, tre file modificati e niente ancora committato, quando un collega ti scrive per un crash da null pointer in produzione. La mossa classica è git stash, checkout di main, risolvi, pusha, poi git stash pop sperando che il lavoro a metà non dipendesse dai file da cui sei appena scappato. git worktree salta tutto questo. Fa il checkout del branch di hotfix in una seconda cartella, accanto al tuo feature branch, entrambe appoggiate sullo stesso repository. ...

24 ottobre 2026 · 5 minuti · 1029 parole · SpaghettiCoder

Cos'è lo Spaghetti Code e Come Rifattorizzarlo

Apri una funzione per sistemare un bug di una riga e quaranta minuti dopo stai ancora seguendo quale ramo imposta quale variabile. Tre compiti che non c’entrano nulla tra loro sono saldati in un unico blocco, e nessuno dei tre ha un nome. Tiri un filo e non riesci a capire quali altri si muovono. Questo è lo spaghetti code, e il nome non c’entra niente con l’indentazione o lo stile dei nomi. Descrive il flusso di controllo: l’esecuzione salta tra le condizioni come un filo di pasta che attraversa tutti gli altri nella ciotola, e seguire un singolo percorso fino alla fine significa tenere in testa quattro livelli di if contemporaneamente. ...

25 settembre 2026 · 10 minuti · 2038 parole · SpaghettiCoder

Git Bisect: Trovare il Commit che ha Introdotto un Bug

La test suite è verde da tre settimane. Oggi npm test fallisce su un’asserzione che non ha niente a che fare con quello che hai appena modificato, e git log v1.4.0..HEAD mostra 340 commit di quattro persone dall’ultima release, di cui qualcuno era sicuro che funzionasse. Leggere ogni diff ti costa una giornata. Fare checkout di commit a caso è più veloce, ma resta comunque non un piano. git bisect trasforma tutto questo in una ricerca binaria. Gli dai un commit che sai essere buono e uno che sai essere rotto; lui fa il checkout del commit a metà tra i due e aspetta che tu lo testi e riporti il risultato. Ogni risposta dimezza l’intervallo. 340 commit si risolvono in al massimo 9 test, perché 2^9 = 512. ...

22 settembre 2026 · 6 minuti · 1157 parole · SpaghettiCoder

Git Rebase vs Merge: differenze e quando usarli

Fai il pull dell’ultimo main e Git si blocca con CONFLICT (content): Merge conflict in checkout.js. Risolvi il conflitto e nel log compare un commit chiamato Merge branch 'main' into feature/checkout, appoggiato sopra i tre commit che avevi effettivamente scritto tu. Quattro commit, una sola modifica reale. Un collega che legge quella storia il mese prossimo non riesce più a distinguerli. git merge e git rebase rispondono alla stessa domanda: come allineo il mio branch alle modifiche fatte altrove. Lasciano tracce molto diverse, e scegliere quello sbagliato su un branch condiviso causa danni reali. ...

13 settembre 2026 · 8 minuti · 1656 parole · SpaghettiCoder

Cos'è Docker e a cosa serve: guida per chi inizia

Cosa fa Docker in concreto Docker è una piattaforma open source che impacchetta un’applicazione con tutto ciò che le serve per funzionare — codice, librerie, runtime, configurazione — in un container che si comporta allo stesso modo su qualsiasi macchina. Il trasloco rende concreto il compromesso. Hai due opzioni: Portare tutti i tuoi oggetti sfusi, sperando che arrivino intatti Mettere tutto in scatole organizzate, etichettate e facili da spostare Docker fa esattamente questo con le applicazioni software: le “impacchetta” in container che contengono tutto il necessario per funzionare. ...

31 gennaio 2026 · 5 minuti · 855 parole · SpaghettiCoder