Programmering

9 grunner til å bygge webappen din med Jamstack

Å bygge en fleksibel og iterabel applikasjon på kort tid kan være utfordrende. Kjente skyer som AWS, Azure og GCP hjelper til med å levere skalerbare webapplikasjoner med lave kostnader innen få uker. Velg en administrert database, flytt applikasjonskoden til Docker-containere eller back-end-funksjoner, og distribuer alt på eventuelle kodeendringer. Slik ser moderne applikasjonsutvikling ut, ikke sant?

I dette innlegget vil jeg beskrive de viktigste tingene som trengs for å utvikle og sende programvare i et utrolig tempo, med et Next.js-program skrevet i TypeScript, distribuert via Vercel, og støttet av en serverløs database kalt FaunaDB. Jeg vil forklare hver av disse tingene i detalj, og legge til noen få eksempler her og der. Jeg anbefaler på det sterkeste å prøve dem alle. Alle har sjenerøse gratis nivåer og kan brukes av et lite utviklerteam på opptil tre medlemmer.

Bruken av utvikler-sentriske distribusjonsplattformer i kombinasjon med serverløse tilbud er oppsummert som Jamstack. “J-A-M” betyr JavaScript, APIer og Markup. Mer om Jamstack finner du på //jamstack.org/.

Distribusjon er en detalj for implementeringen

Antall tjenester jeg kan bruke i en sky er overveldende. På dette tidspunktet har AWS 250 forskjellige tjenester. Jeg må definere hvordan jeg kobler til og konfigurerer distribusjoner for de nye funksjonene mine, for ikke-produksjonsmiljøet og for produksjonsmiljøet mitt

Hvis jeg jobber med et prosjekt med flere utviklere parallelt, vil jeg gjerne sende en URL til kollegaen min for å dele min nåværende funksjonsgren.

I tillegg må jeg sette opp domener og underdomener, skalere tjenesten, koble offentlige endepunkter, administrere databaseforbindelser, sette opp hemmelighetsadministrasjon osv.

Vercel-plattformen kobles sømløst til versjonskontrollsystemer som GitHub eller GitLab. Jeg kobler rett og slett depotet mitt og tilpasser innstillingen til navnetjenerens vertsnavn, og jeg er ferdig.

I mitt nåværende prosjekt har jeg definert noen praktiske npm-oppgaver som brukes i hver build for å sikre at programvaren vår både fungerer og oppfyller programvarestandarder og beste praksis:

{

"skript": {

"tsc": "tsc", // sjekk typesikkerhet

"lint": "eslint", // gjør analyse av statisk kode

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

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

"test": "jest --watch", // utføre tester

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

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

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

"dev": "env-cmd next dev", // start local dev environment

"start": "neste",

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

"build": "next build",

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

"serve": "neste start",

  }

}

Som standard kjører Vercel nå-bygge oppgave på hver bygning. Dette utløser noen andre oppgaver som statisk sjekker koden vår, kjører alle tester og bygger programvaren vår.

På grunn av at alt bare fungerer, får jeg mange distribusjonsplattformfunksjoner ut av esken. Jeg drar nytte av kommende forbedringer uten at de gir meg noen problemer i fremtiden.

$config[zx-auto] not found$config[zx-overlay] not found