Già sento i puristi di Go affilare i loro forconi. “Usa la libreria standard,” intonano. “I framework sono un anti-pattern,” urlano.
Non mi interessa.
Non sto usando Fiber perché sono pigro. Non lo sto usando perché assomiglia a Express.js. Lo sto usando perché ho una dipendenza patologica dalla velocità, e net/http, benedetto il suo cuore sicuro e compatibile, è semplicemente troppo educato per la violenza che voglio infliggere alla mia CPU.
Devo sfogarmi. Qualcosa che mi rode l’anima dalla prima volta che mi sono unito a un progetto a metà sviluppo e ho posto la fatidica domanda: “Dov’è la documentazione dell’API?”
La risposta, invariabilmente, era una delle seguenti:
“Controlla la collection di Postman.” (Traduzione: un cimitero di 200 richieste, metà delle quali obsolete, chiamate cose come GET users FINAL v2 (copy))
“Guarda semplicemente il codice.” (Traduzione: reverse-engineer il nostro spaghetti e buona fortuna)
“La documenteremo più tardi.” (Traduzione: non la documenteremo mai)
Inizierò questo post con una confessione che potrebbe procurarmi qualche nemico: odio il JSON.
Non è un odio irrazionale, di quelli che compaiono dal nulla. È un odio costruito, mattone dopo mattone, in anni di debug di payload malformati, campi che dovevano essere numeri ma arrivavano come stringhe, e quel classico null dove ti aspettavi un array vuoto. Il JSON è l’equivalente digitale di una conversazione telefonica con tua nonna: pensi di aver capito cosa ha detto, ma quando arrivi lì, la torta di carote non aveva quella glassa al cioccolato che ti aspettavi (i brasiliani capiranno).
Per chi ha saltato le lezioni dell’Accademia della Flotta Stellare, il Kobayashi Maru è un’esercitazione progettata come uno “scenario senza vittoria”. L’obiettivo non è vincere, ma vedere come gestisci un fallimento inevitabile. Nel mondo dell’Ingegneria Backend, il nostro scenario senza vittoria è l’Eccezione Non Gestita.
Passi settimane ad architettare un servizio bellissimo e pulito. Usi i Record, ottimizzi le query SQL, applichi i principi SOLID. E poi, il giorno del rilascio in produzione, un utente invia un JSON malformato e la tua API vomita una Stack Trace di 50 righe direttamente nella console del suo browser. È brutto, è poco professionale ed espone la tua logica interna al mondo.
Se sei uno sviluppatore che ha gestito elaborazione di buste paga o riconciliazione bancaria/finanziaria in un’azienda che utilizza Spring, probabilmente hai lavorato con Spring Batch. Confesso di non esserne un grande fan; ha quella caratteristica verbosità e overhead dell’ecosistema Java, che fa sembrare che anche il lavoro più semplice richieda molta più struttura del necessario. Ma a cosa serve lamentarsi? La tecnologia che la tua azienda utilizza è ciò che garantisce la tua sopravvivenza (casa, cibo, vestiti). Quindi, lamentarsi non è l’argomento di oggi.