Ciao, e benvenuto nella quarta puntata della trentunesima stagione. Nella scorsa puntata abbiamo visto che la stella polare di Laravel è la felicità di chi programma, perseguita con tre strategie. Oggi vediamo la prima di queste strategie, forse la più caratteristica dei framework come Laravel: fare scelte sensate al posto tuo, così che tu non debba decidere mille piccole cose. Si chiama, in modo un po' tecnico, la convenzione sulla configurazione. Ma l'idea è semplice e bellissima: seguire una convenzione già decisa, invece di configurare tutto da capo ogni volta. Oggi capiamo perché questo rende felici.
Partiamo dal problema che questa strategia risolve, perché è più insidioso di quanto sembri: la fatica di decidere. Costruire un'applicazione comporta mille piccole decisioni: dove va messa questa cosa, come la chiamiamo, come colleghiamo questo a quello, in che modo organizziamo quest'altro. Ognuna, presa da sola, è piccola. Ma sommate, tutte queste decisioni diventano un peso enorme, una fatica costante che rallenta e stanca. È la fatica di decidere: dover scegliere, di continuo, mille dettagli, molti dei quali non hanno nemmeno una risposta importante, ma vanno comunque decisi. Questa fatica delle mille scelte è un nemico silenzioso della produttività e della serenità.
Ed ecco la soluzione di Laravel, la convenzione sulla configurazione, che voglio farti afferrare bene. Invece di lasciarti decidere ogni piccola cosa, Laravel decide per te, in anticipo, con scelte sensate e ragionevoli. Stabilisce delle convenzioni: le cose si fanno così, si mettono qui, si chiamano in questo modo. E se tu segui queste convenzioni, tutto funziona da solo, senza che tu debba configurare o decidere nulla. Devi decidere qualcosa solo quando vuoi davvero fare diversamente dalla convenzione; ma nella stragrande maggioranza dei casi, segui semplicemente la via già decisa, e ti va benissimo. Laravel toglie dalle tue spalle il peso delle mille decisioni, facendole lui, con buon senso, al posto tuo.
Voglio darti un'immagine che rende questo concreto, perché lo chiarisce alla perfezione: la cucina già organizzata. Immagina di entrare in due cucine. La prima è vuota: devi decidere tu dove va ogni cosa, dove mettere i coltelli, dove le pentole, dove le spezie, prima ancora di poter cucinare. È faticoso e ti rallenta. La seconda cucina è già organizzata in modo sensato: i coltelli sono nel posto ovvio, le pentole a portata di mano, tutto dove ti aspetteresti che sia. In quella cucina, ti metti a cucinare subito, senza decidere nulla. Laravel è la seconda cucina: tutto è già al suo posto sensato, secondo una convenzione, così tu ti metti subito al lavoro, senza il peso di decidere dove va ogni cosa.
Voglio farti apprezzare i vantaggi di questa strategia, perché sono profondi e molteplici. Primo: la velocità e la serenità. Senza il peso delle mille decisioni, cominci subito e procedi spedito, concentrandoti su ciò che conta davvero invece che su dettagli insignificanti. Secondo, e più sottile: la coerenza tra progetti. Siccome tutti seguono le stesse convenzioni, tutte le applicazioni fatte con Laravel si assomigliano, sono organizzate allo stesso modo. Chi conosce le convenzioni può entrare in qualsiasi applicazione Laravel e ritrovarcisi subito, perché tutto è dove si aspetta che sia. È come se tutte le cucine del mondo fossero organizzate allo stesso modo: sapresti cucinare in ognuna. Velocità, serenità e coerenza: sono i doni della convenzione.
Voglio collegare questa idea a un valore che abbiamo incontrato, perché è lo stesso in forma nuova. Ricordi Go, con la sua filosofia di avere un modo solo, ovvio, di fare le cose, invece di mille modi diversi? La convenzione di Laravel è cugina di quell'idea: c'è una via convenzionale, ovvia, di fare le cose, e seguendola tutti scrivono in modo simile, e il codice è coerente e leggibile. Sia Go che Laravel, ciascuno a modo suo, hanno capito che avere una via convenzionale, invece di infinite scelte, porta uniformità, leggibilità e serenità. Meno scelte, più coerenza: è un valore ricorrente, che riduce la fatica e rende il codice più comprensibile a tutti.
Voglio darti una nota onesta, per chiudere, perché la convenzione ha anche un piccolo prezzo, che riprenderemo. Seguire le convenzioni del framework è comodo e liberatorio finché il tuo modo di lavorare coincide con quello previsto. Ma se vuoi fare qualcosa in un modo molto diverso da quello convenzionale, allora la convenzione, da aiuto, diventa un vincolo: devi combattere contro le aspettative del framework, discostarti dalla via facile, e le cose si complicano. La convenzione è un dono quando la accetti, ma un ostacolo quando vuoi discostartene molto. È un aspetto dell'essere opinionato di Laravel, di cui parleremo apertamente. Per ora, tieni il grande valore della convenzione: toglierti il peso delle mille decisioni.
Per oggi ci fermiamo qui. La prima strategia con cui Laravel rende felice chi programma è la convenzione sulla configurazione: invece di lasciarti decidere mille piccole cose, decide per te con scelte sensate, stabilendo convenzioni che, se le segui, fanno funzionare tutto da solo. Ti toglie il peso della fatica di decidere, come una cucina già organizzata in cui ti metti subito a cucinare. I vantaggi sono velocità, serenità e coerenza tra progetti. È cugina della filosofia di Go, del modo solo ovvio di fare le cose. Con onestà, la convenzione può diventare un vincolo se vuoi discostartene molto, ma nella maggior parte dei casi è un dono. Nella prossima puntata vediamo la seconda strategia: tutto già incluso. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.