Mi sono trovato davanti a questo scempio:
composer.json
composer.json.bak245p8
composer.json.bak245p8bis
composer.lock
composer-lock
E mentre contemplavo questo olocausto della ragione, ho capito: serve un girone dantesco dedicato.
«Nel mezzo del cammin della nostra codebase
mi ritrovai per una selva oscura
ché la retta via di git era smarrita»
I. La Bolgia dei Suffissatori Compulsivi
Qui soffrono coloro che invece di fare git commit aggiungono .bak, .old, .backup, .2, .final, .final2, .final_DEFINITIVO, .final_DEFINITIVO_stavolta_si.
Pena: Condannati a cercare per l’eternità quale sia la versione giusta tra 47 file con nomi simili, mentre un demonio alle loro spalle urla “ERA NELL’ALTRO .BAK!”
II. Il Pozzo dei Commentatori di Codice
Programmatori che invece di cancellare codice vecchio lo commentano “per sicurezza”, creando migliaia di righe di codice zombie.
// function vecchia() {
// // non cancellarla mai
// // potrebbe servire
// // chi lo sa
// }
Pena: Leggere all’infinito codice commentato cercando di capire quale pezzo sia ancora in uso, mentre il codice commentato si moltiplica più velocemente di quanto possano leggere.
III. La Palude dei Maledetti composer.json
Il cerchio più profondo. Qui dimorano coloro che:
composer.json invece di fare branchcomposer.json.bak245p8bis (BIS! C’ERA GIÀ UN .bak245p8!)composer.lock e ti buttano li in scioltezza un composer-lockcomposer update in produzione alle 3 di nottevendor/ nel repositoryPena: Condannati a risolvere dependency conflict infiniti mentre ogni loro composer install installa versioni random di librerie incompatibili tra loro. Il comando composer update impiega 40 giorni e alla fine fallisce sempre con “Your requirements could not be resolved”.
Ma c’è di peggio. Oh, c’è MOLTO di peggio.
Perché questa non è una codebase qualunque. Questa è Magento 2.
E questi maledetti hanno commesso il peccato imperdonabile: hanno installato lo stesso modulo (Amasty_CheckoutThankYouPage) in DUE POSTI DIVERSI:
vendor/app/code/Il risultato?
Autoload error: Module 'Amasty_CheckoutThankYouPage' from '/var/www/html/app/code/Amasty/CheckoutThankYouPage'
has been already defined
Magento non sa quale usare. Io non so quale sia aggiornato. Dio stesso ha perso la speranza.
Ora dovrò passare ORE a:
vendor/app/code/composer.lock corrispondono a quello che c’è realmenteQuesto è il vero inferno: non solo non hanno usato git, ma hanno violato la regola fondamentale di Magento 2: O composer O app/code/, MAI ENTRAMBI PER LO STESSO MODULO.
Io accuso questi programmatori di:
git add, git commit, git push. Non è chiedere troppo.Git non è un optional. Non è “roba da smanettoni”. Non è “complicato”.
È il MINIMO sindacale della professione.
È come un idraulico che non sa dove si chiude l’acqua.
È come un elettricista che non sa distinguere fase e neutro.
È come un chirurgo che dice “i guanti? Mah, se ho tempo”.
Giovani sviluppatori, ascoltate bene:
E se un giorno vi trovate a scrivere composer.json.bak2:
FERMATEVI.
Respirate.
Fate quel commit che state rimandando.
Non diventate anche voi abitanti del nono cerchio.
Al collega dev stolto che ha creato .bak245p8bis:
Ti perdono.
Ma solo dopo che avrai fatto un corso di git.
E una confessione pubblica su Stack Overflow.
E 100 ore di community service sistemando repository aziendali.
«Lasciate ogne speranza, voi ch’intrate…
…in una codebase senza git»
Fine del J’accuse