9 motivi per creare la tua web app con Jamstack

Creare un'applicazione flessibile e iterabile in breve tempo può essere difficile. Cloud noti come AWS, Azure e GCP aiutano a fornire applicazioni web scalabili a costi ridotti entro poche settimane. Scegli un database gestito, sposta il codice dell'applicazione nei contenitori Docker o nelle funzioni di back-end e distribuisci tutto su qualsiasi modifica del codice. Questo è l'aspetto dello sviluppo di applicazioni moderne, giusto?

In questo post descriverò le cose più importanti necessarie per sviluppare e distribuire software a un ritmo incredibile, con un'applicazione Next.js scritta in TypeScript, distribuita tramite Vercel e supportata da un database serverless chiamato FaunaDB. Spiegherò ognuna di queste cose in dettaglio, aggiungendo alcuni esempi qua e là. Consiglio vivamente di provarli tutti. Tutti hanno livelli gratuiti generosi e possono essere utilizzati da un piccolo team di sviluppatori fino a tre membri.

L'utilizzo di piattaforme di distribuzione incentrate sullo sviluppatore in combinazione con offerte serverless è riassunto come Jamstack. "JAM" significa JavaScript, API e markup. Maggiori informazioni sul Jamstack possono essere trovate su //jamstack.org/.

La distribuzione è un dettaglio dell'implementazione

Il numero di servizi che posso usare in un cloud è enorme. A questo punto, AWS dispone di 250 servizi diversi. Devo definire come connettermi e configurare le distribuzioni per le mie nuove funzionalità, per il mio ambiente non di produzione e per il mio ambiente di produzione

Se sto lavorando a un progetto con più sviluppatori in parallelo, mi piacerebbe semplicemente passare un URL al mio collega per condividere il mio attuale ramo di funzionalità.

Inoltre, devo configurare domini e sottodomini, ridimensionare il servizio, collegare endpoint pubblici, gestire le connessioni al database, impostare la gestione dei segreti, ecc. 

La piattaforma Vercel si connette perfettamente con i sistemi di controllo della versione come GitHub o GitLab. Collego semplicemente il mio repository e adeguo l'impostazione del nome host del server dei nomi e il gioco è fatto.

Nel mio progetto attuale, ho definito alcune pratiche attività npm che vengono utilizzate in ogni build per garantire che il nostro software funzioni e soddisfi gli standard e le migliori pratiche del software:

{

"scripts": {

    "tsc": "tsc", // controlla l'indipendenza dal tipo

    "lint": "eslint", // esegue l'analisi statica del codice

    "lint: ci": "eslint --max-warnings = 0",

    "lint: fix": "eslint --fix",

    "test": "jest --watch", // esegue i test

    "test: ci": "jest --ci",

    "test: coverage": "jest --coverage",

    "checks": "npm-run-all lint: ci tsc test: ci",

    "dev": "env-cmd next dev", // avvia l'ambiente di sviluppo locale

    "start": "next",

    "start-port": "next start -p $ PORT",

    "build": "build successiva",

    "now-build": "npm-run-all checks build", // CI build

    "serve": "inizio successivo",

  }

}

Per impostazione predefinita, Vercel esegue l' now-buildattività su ogni build. Ciò attiva alcune altre attività che controllano staticamente il nostro codice, eseguono tutti i test e creano il nostro software.

Dato che tutto funziona, ottengo immediatamente molte funzionalità della piattaforma di distribuzione. Traggo vantaggio dai miglioramenti imminenti senza che mi creino problemi in futuro.