Technologie Gadgets, SEO Tipps, Geld Verdienen mit WEB!

Lo sviluppatore PHP Martin Joo sull’uso di Laravel, come…

Lo sviluppatore PHP Martin Joo sull'uso di Laravel, come...

L’ingegnere software e creatore di contenuti Martin Joo ha trascorso gran parte del suo viaggio armeggiando con PHP, Laravel e API. Fedele sostenitore della progettazione basata sul dominio e dello sviluppo basato sui test, i libri di Martin su Laravel lo hanno reso un nome influente nella comunità. I suoi scritti includono titoli come Microservices with Laravel, Laravel Eloquent Recipes e Proper API Design con Laravel.

Siamo lieti di avere la possibilità di scegliere il cervello di Martin oggi, mentre ci parla della sua carriera professionale, condivide approfondimenti sui suoi libri e sul processo di scrittura e spiega perché non tornerà mai all’hosting condiviso convenzionale dopo aver provato l’hosting cloud gestito.

Shahzeb: Ciao Martin, è bello averti per questa intervista. Potresti per favore parlare di te ai nostri lettori? Qualche intuizione che vorresti condividere sulla tua carriera professionale?

Martino: CIAO! È bello essere qui! Quindi sono uno sviluppatore dal 2012, quando avevo 19 anni. Da allora, ho lavorato principalmente su applicazioni B2B più grandi. In questo momento sto lavorando per una startup in Ungheria. Stiamo sviluppando un’applicazione per risorse umane, pubbliche relazioni e una sorta di impegno sociale per le grandi aziende. Comunicare correttamente con decine di migliaia di dipendenti è una vera sfida per queste aziende, quindi stiamo cercando di risolvere questo problema. E si sa, stiamo affrontando le sfide quotidiane di un progetto più ampio, complesso e con molte funzionalità.

Shahzeb: Puoi condividere il tuo viaggio con Laravel? Hai qualche esperienza della tua carriera che trovi interessante e che vorresti condividere con il nostro pubblico?

Martino: Utilizzo Laravel dal 2015 circa ed è stato amore a prima vista. Ho avuto precedenti esperienze con Giava E C#quindi ho subito amato la semplicità del framework.

Penso che la mia esperienza più preziosa sia stata quando stavo cercando di capire come sviluppare progetti più grandi e mantenibili mantenendo la semplicità offerta da Laravel. Ho provato così tante cose; Ho applicato così tanti modelli; Ho implementato alcune architetture molto sovraingegnerizzate. Quindi, dopo mesi (se non anni) di tentativi falliti, ho deciso di adottare le parti migliori della progettazione basata sul dominio e di incorporarle nei progetti Laravel mantenendo la semplicità del framework. Il miglior feedback è stato quando mi sono registrato su Twitter e ho visto che altre persone della community stavano applicando soluzioni molto simili. Sto parlando di nomi come Freek Van Der HertenBrent, Steve King e sviluppatori regolari come te e me.

Un’altra grande esperienza è stata quando finalmente ho riconosciuto che i test delle funzionalità e delle API erano superiori in un’applicazione aziendale di alto livello. Prima di allora, ero un collaudatore di unità “hardcore”. “Isolamento” era probabilmente la mia parola d’ordine preferita. Ma dopo aver visto alcuni video di Jeffrey Way e Adam Wathan sul test delle funzionalità, non ho mai guardato indietro.

Shahzeb: Martin, anche tu hai scritto il libro Progettazione basata sul dominio con Laravel. Potresti parlarci un po’ di questo libro? Chi dovrebbe leggere questo libro e in che modo avvantaggia gli sviluppatori?

Martino: Trovare l’“architettura perfetta” e sviluppare il “progetto perfetto” è sempre stato per me come il “Santo Graal”. Ho lavorato su progetti vecchi di 8, 10 o più di 10 anni, quindi mantenere l’architettura pulita è stato enorme. E come ho detto prima, ho provato tante cose. DDD era molto promettente. Ma era estremamente complesso e, a dire il vero, una scelta sbagliata per Laravel. Sto parlando del “DDD”, con regole molto rigide e probabilmente più di 25 termini complicati e astratti, come “Polisemia” o “Più modelli canonici.”

Pensavo che questi concetti fossero buoni ma presentati in modo accademico e risultassero in un codice che non si adattava a Laravel. Questi ragazzi provenivano dal mondo Java o C#, dove le cose erano diverse e più “burocratiche”.
Di conseguenza, ho applicato costantemente questi concetti in un modo molto più semplice e con solo una manciata di regole rigide. E hanno funzionato. Hanno lavorato bene anche in team con sviluppatori junior e mediori.

Così un giorno mi sono chiesto: “perché non scrivere un libro a riguardo e condividerlo con gli altri?” E alla fine ho scritto il libro. Credo che sia meglio per gli sviluppatori intermedi e senior che hanno già una discreta esperienza ma desiderano avere un’architettura migliore.

Shahzeb: Che tipo di ricerca svolgi e quanto tempo dedichi alla ricerca prima di iniziare a scrivere un libro?

Martino: La ricerca principale che ho svolto per questo libro è stata l’applicazione di esempio. In ogni libro che scrivo, creo un progetto di esempio che mostra al lettore come applicare i concetti in un’applicazione del mondo reale. Volevo creare qualcosa di complicato per questo libro che tragga vantaggio dalla progettazione basata sul dominio. Innanzitutto, ho pensato che sarebbe stato qualcosa come Twitter. Tutti conoscono Twitter, ed è da qui che proviene il mio pubblico, quindi sarebbe stato un ottimo esempio. Ma a quanto pare, Twitter è piuttosto semplice. Voglio dire, dal punto di vista del modello di dominio (non dal punto di vista di un algoritmo o di un sistema di raccomandazioni).

Quindi la mia idea successiva era l’email marketing o il fornitore di servizi di posta elettronica. Penso che ogni sviluppatore lo sappia MailChimp, GocciolareO ConvertKit, perché l’azienda ha spesso un pubblico e dobbiamo integrarci con questi fornitori. Oppure, nel peggiore dei casi, dobbiamo scrivere il nostro servizio o modulo di newsletter (ciao!). E hanno alcune funzionalità molto complicate (sequenze di posta elettronica o automazione, per esempio), quindi ho pensato che sarebbe stato l’esempio perfetto da inserire nel libro.

Successivamente, ho trascorso circa una o due settimane a copiare le funzionalità principali di ConvertKit e a modellare l’intero sistema. In realtà era l’esempio perfetto!

Uno dei pacchetti del libro contiene anche il codice sorgente e un caso relativo a un’app per il monitoraggio del portafoglio e dei dividendi. Fortunatamente è stata una scelta facile perché avevo già quel progetto. Era la mia app personale per monitorare il portafoglio (dopo tutto, sono uno sviluppatore di software e mi piace perdere tempo a scrivere applicazioni non necessarie). E ho pensato che fosse un’occasione perfetta per realizzare un caso di studio sulla modellazione dei dati e sulla progettazione complessiva.

Tuttavia, poiché si trattava di un progetto personale con un repository Github privato, inizialmente avevo il mio indirizzo Gmail e tutte le mie partecipazioni e transazioni finanziarie nel seeder del database. Dopo averlo eliminato, ho controllato l’intero codice almeno quattro volte per assicurarmi che tutto fosse pronto per la condivisione.

Shahzeb: Hai una vasta conoscenza dello sviluppo di Laravel. Cosa ti ha motivato a diventare uno sviluppatore web Laravel? Chi sono stati i tuoi mentori e ispirazioni in questo viaggio?

Martino: Grazie, ma ho molte aree in cui potrei Migliorare! La mia motivazione principale era la semplicità di Laravel. So che è un cliché, ma è vero ed è una caratteristica fondamentale di una struttura. Prima di Laravel lavoravo principalmente con Kohana, Yii e un po’ di Symfony. Ad esempio, Symfony è un ottimo framework, secondo me, e un fondamento di Laravel, ma usare Symfony sembra così “rumoroso” e “burocratico” rispetto a Laravel.

Naturalmente, un’altra grande motivazione è il vasto ecosistema. Voglio dire, Laravel ha un servizio o un pacchetto di prima parte per ogni problema. Basti pensare a Forge o Breeze! E anche il numero di pacchetti di terze parti è enorme. Come bonus abbiamo anche Spatie 🙂 E se fai un ulteriore passo avanti, troverai un’enorme community su Twitter, ad esempio.

Un’altra cosa grandiosa di Laravel è che un’azienda lo mantiene. Quindi la possibilità che Laravel venga abbandonato dai suoi manutentori è quasi zero (come Kohana o una dozzina di altri framework sono stati abbandonati).

E, ultimo ma non meno importante, ci sono molti ottimi creatori di contenuti nella community di Laravel. Solo per citarne alcuni:

Fondamentalmente, erano i miei mentori quando ero uno sviluppatore junior, e lo sono ancora oggi. E, naturalmente, alcuni dei miei colleghi.

Shahzeb: Ti piacerebbe parlare ai nostri lettori di alcuni dei migliori progetti Laravel su cui hai lavorato?

Martino: Direi che il progetto attuale a cui sto lavorando è piuttosto interessante. Prima di tutto, ha un’incredibile quantità di funzionalità. Puoi fare qualsiasi cosa, dalla creazione di comunità, alla pubblicazione di aggiornamenti social, alla gestione di biglietti e vacanze o alla gestione della mensa. Il numero di funzionalità ti offre un gran numero di sfide. Ad esempio, evita lo spaghetti code quando sono presenti alcune funzionalità connesse o richieste complicate su una funzionalità precedente.

Un’altra sfida è che parte del codice base è stata scritta da un altro team qualche anno fa. E sfortunatamente, la pulizia del codice o la copertura dei test non erano la loro priorità. Ma non ho problemi a testare e refactoring del codice legacy, quindi è sempre una bella sfida. Tuttavia, mi piace un buon equilibrio tra nuove funzionalità e hacking del codice legacy.

Shahzeb: Quale tipo di web hosting preferiresti? Secondo te, quali sono i vantaggi di ospitare un sito su un fornitore di soluzioni gestite piuttosto che su un hosting condiviso convenzionale?

Martino: Utilizzo esclusivamente fornitori gestiti. Mi danno letteralmente tutto ciò di cui ho bisogno, PHP, MySQL, Redis, ecc. Non sono il più grande ragazzo DevOps al mondo, quindi avere un team esperto che sa come gestire e mantenere questi componenti è qualcosa che sono felice di pagare !

Mi piace anche il fatto che al giorno d’oggi ci siano molte attività che possono essere eseguite Utilizzando il nostro browser invece di avviare un terminale ed eseguire complicati comandi Linux.

A dire il vero, non credo che tornerei mai all’hosting condiviso convenzionale.

Shahzeb: Cosa ne pensi delle soluzioni di hosting gestito come DreamHost che forniscono uno stack PHP ottimizzato e offrono il framework Laravel in un clic con funzionalità per distribuire le proprie app Web?

Martino: Avere fornitori di servizi cloud con soluzioni gestite è una delle cose più incredibili successe al nostro settore negli ultimi anni!

Con DreamHost, puoi letteralmente fornire un nuovo server in circa 5 minuti. E installa tutto ciò di cui ha bisogno un’applicazione Laravel. Ma, cosa ancora più importante, dopo aver eseguito l’applicazione, puoi distribuire una versione con un clic. È così facile.

Qualche anno prima, quando non avevo esperienza con Linux o operazioni operative, lottare con i server e il terminale era sempre la ragione principale per cui non avevo lanciato troppi progetti collaterali. È stato un peso per me. Al giorno d’oggi, quando abbiamo diversi ottimi fornitori, il lancio di un progetto non è più un “mini-progetto nel prossimo fine settimana”. È un compito di un’ora nella tua pausa pranzo!

Shahzeb: Cosa ti piace fare quando sei lontano dal tuo laptop?

Martino: Suono la chitarra in un gruppo rock e amo la musica. Di solito, in estate, abbiamo sempre qualche concerto da suonare e qualche birra da bere dopo gli spettacoli 🙂

Mi piace anche fare sport. Ho sempre amato le arti marziali e ne ho provate alcune negli ultimi anni, ma la boxe è la mia preferita. Tuttavia, oggigiorno, ho intenzione di provare la thai box.

Oltre a questo, mi piace uscire con la famiglia e gli amici.

Shahzeb: Chi dovremmo intervistare dopo e perché?

  • Steve King
  • Matt Kingshott
  • Povilas Korop
  • Nuno Maduro

Shahzeb: Martin, sono sicuro che molte persone hanno preso appunti. Sono anche sicuro che adorerebbero vedere una foto della tua postazione di lavoro se desideri condividerne una!

Martino: Scusa, ma la mia postazione di lavoro è piuttosto noiosa, a dire il vero. Quindi non lo condividerei se va bene 🙂

Shahzeb: Certo, grazie ancora, Martin Joo!