Il codice e i tool dietro al mio sito
Never Stop
Testing
Come avrai capito, mi piace studiare e sperimentare cose nuove: questo è il mio sito personale ma anche e soprattutto il mio laboratorio. Qualcosa è pubblico e visibile, altro no.
Cosa c'è sotto il cofano?
In questa pagina svelo il trucco della magia. Stai vedendo come funziona, qui scoprirai perchè funziona così ;-)
In questa versione del sito, ho voluto sperimetare lo stack TALL: Tailwind, Alpine, Laravel, Livewire.
Codice
Larastan
Per l'analisi statica del codice utilizzo Larastan, wrapper per Laravel di PHPStan. Al momento a livello 8.
Larastan permette di individuare bug e vulnerabilità nel codice prima dell'esecuzione, migliorando la qualità del software. Mantiene il codice pulito e conforme alle migliori pratiche, riducendo il debito tecnico e aumentando l'affidabilità. Facilita il refactoring e l'aggiornamento del codice, rendendo lo sviluppo più efficiente e meno soggetto a errori.
Laravel Pint
Per la pulizia e la formattazione del codice uso Laravel Pint.
Strumento essenziale per mantenere un codice pulito e leggibile, automatizzando la formattazione secondo standard predefiniti. Riduce disaccordi nello stile, migliora la coerenza del progetto e risparmia tempo, permettendo di concentrarsi su aspetti più critici dello sviluppo. Inoltre, facilita la collaborazione tra team, assicurando convenzioni di codifica uniformi.
Rector
E poi un check con Rector ad ogni upgrade di PHP o di Laravel.
Rector automatizza il refactoring del codice, rendendo le applicazioni più moderne e sicure. Permette aggiornamenti rapidi e uniformi, riducendo errori manuali e mantenendo il codice allineato con le migliori pratiche e le versioni più recenti di PHP. Migliora la qualità del software e l'efficienza dello sviluppo.
Infrastruttura
Dominio / DNS
Google Domains
Un servizio ancora in beta per Google ma che fa già quello per cui lo si paga. Google Domains offre una gestione semplice, veloce ed intuitiva dei record DNS; la protezione da spoofing dei DNS e estensioni DNSSEC con un click e la privacy sulle informazioni di contatto su WHOIS e RDAP per prevenire lo spam.
Google Suite
La funzionalità di Gmail sulle caselle di dominio, oltre a 30GB di spazio per tutti i prodotti della Google Suite (Calendar, Drive, Fogli, Documenti, Moduli...)
Server / Hosting
Ploi.io
Solitamente uso Laravel Forge ma ho voluto provare anche questo (se trovo il tempo farò anche una comparativa) e, per ora non me ne pento, anzi.
Ploi.io è un SaaS per il deploy di applicazioni web in maniera semplice e veloce. La configurazione del droplet o della VPS la gestisce lui ma fornendotri una dashboard veramente molto granulare per le impostazioni di fino.
Sviluppato da un amante di Laravel, se rileva che state usando questo framework, vi farà apparire una sezione ad hoc da dove eseguire tutti i comandi Artisan senza collegarsi in SSH. Molto comoda!
Digital Ocean
Digital Ocean è un fornitore di servizi cloud scalabili senza le complicazioni eccessive (per progetti non troppo complessi) di Google Cloud Platform o di AWS.
Fra le varie soluzioni, propone droplet, load balancer, dischi di archiviazione aggiuntiva, spazio scalabile e contenitori kubernetes.
Dropbox
DropBox è un famoso sistema di archiviazione e condivisione dei file sul cloud. In questo sito lo uso per archiviare i backup del server. Se non lo conosci, accedendo da questo link ti verranno regalati 500MB, oltre ai 2GB gratuiti.
Mailgun
Mailgun offre una interfaccia API per l'invio, la ricezione e il tracciamento di email transazionali studiata per gli sviluppatori.
Mailchimp
Non credo che Mailchimp necessiti di presentazione, comunque... lo strumento per la gestione delle newsletter e campagne DEM e di mail automation. In questo sito usato all'1% delle sue possibilità, per ora.
Tecnologia usata
Server Side
PHP
PHP è il mio linguaggio di programmazione web preferito. In questo droplet gira la versione: 8.3.12.
Laravel
Laravel a mio avviso è IL framework PHP. Sviluppato da Taylor Otwell è giunto ormai alla versione 11 e facilita in maniera esponenziale lo sviluppo di web app avanzate. In questo sito uso la versione 11.23.5.
Filament
Filament è uno strumento per la creazione rapida di pannelli di controllo. Semplifica e riduce il tempo necessario per creare il pannello di amministrazione CRUD dei record a DB. In questo sito gira la versione 3.2.113.0.
Livewire v3
Livewire è un framework che permette la creazione di interfacce reattive (come React o Vue) ma senza abbandonare il comfort di PHP e Laravel.
Client Side
Blade
Blade è un template engine nativo di Laravel che semplifica il riutilizzo e l'organizzazione del codice.
Dalla versione 7 di Laravel, a Blade sono stati aggiunti gli steroidi, ovvero i Blade component tag che in accoppiata con Alpine e Livewire fanno magie.
Tailwind CSS v3
Tailwind è un framework CSS di basso livello, altamente customizzabile tramite un file di configurazione. Stop ai componenti già fatti che sembrano velocizzare il lavoro ma in realtà lo rallentano con strutture e nomi di classi da ricordare: Tailwind è utility-first e fluente. Vuoi un testo blu? Aggiungi la classe .text-blue-500
PS: tramite purgeCSS integrato, il foglio di stile in produzione conterrà solo le classi realmente necessarie/utilizzate facendolo pesare pochi kB. Per il mio sito esattamente 32.6kB. Non male, no?
Alpine.js
Alpine.js è un piccolissimo framework JS che ti permette di dare reattività al DOM in maniera dichiarativa (e non imperativa come jQuery) e senza l'ingombo di librerie più complesse, come React o Vue.