Travailler dans le monde du développement peut être un peu déroutant, avec beaucoup de tendances à venir pour interrompre nos vies normales et nous donner un mauvais cas de FOMO. Nous sommes surtout coincés entre l'apprentissage, le réapprentissage et le désapprentissage. Parfois, les nouvelles tendances ne sont pas différentes des technologies que nous avons déjà utilisées, d'autres fois, cela va changer votre vie ou dans ce cas, votre STACK.
Dans cet article, nous allons regarder le JAMstack et comment il est venu à faire une énorme différence dans la façon dont nous construisons des platformes web. Nous explorerons comment cette approche de simplification de la STACK technologique peut conduire à des temps de développement plus courts, avec de meilleures performances et une plus grande sécurité.
Qu'avons-nous fait?
Nous avons classiquement construit des sites web et des applications web en configurant des serveurs pour aider à interagir avec une base de données et oui, cela a fonctionné, mais nous devrions également passer beaucoup de temps à nous soucier des performances et de la mise en place de ces installations. Les protocoles de sécurité pour ces plates-formes coûtent également beaucoup et comme nous avons des informations qui passent du côté serveur au côté client, les plates-formes peuvent être sujettes à des risques de sécurité.
Qu'est-ce que JAMstack?
JAMstack (JavaScript, API & Markdown) est une nouvelle façon de créer des sites Web et des applications qui offre de meilleures performances, une sécurité accrue, un coût de mise à l'échelle inférieur et une meilleure expérience de développement. Il y parvient en gardant la plupart des fonctionnalités du côté client et en abstrayant toutes les autres fonctionnalités de L'API 3rd party. fondamentalement, tout le levage de charges lourdes est fait par L'API.
En mettant l'accent sur les performances web et une grande expérience utilisateur, quelques tendances ont émergé:
- PWA (applications hors ligne, fiable, natif comme UX)
- Serverless (back-end simplifié, services de pointe, évolutivité infinie sans tenir compte de l'emplacement physique des serveurs)
- GraphQL (accès standardisé aux données pour les applications qui utilisent un schéma de base de données ad hoc, à évolution rapide)
- SSG (utilisant des techniques CDN pour la mise en cache edge des pages de contenu pré-rendues)
Les tendances ci-dessus se sont développées indépendamment jusqu'à ce que JAMstack vienne les unifier. Et maintenant que JAMStack est là, les gens commencent à s'éloigner des serveurs. En même temps, ils courent après la vitesse, l'optimisation et les sites Web accrocheurs.
Répondre aux STACK
Avant d'aller plus loin dans la discussion sur la façon dont JAMstack atteint son awesomeness, jetons un coup d'oeil aux autres STACKS et comment ils fonctionnent, pour aider à mieux apprécier le JAMstack. Avant son existence, les développeurs utilisaient différents outils pour configurer des plates-formes web et des applications en tant que telles.
LAMPE
LAMP représente la base D'un site Web hébergé sous Linux. Les STACKS LAMP sont composées d'un système D'exploitation Linux (l), D'un serveur web Apache (a), D'une couche de base de données MySQL (M) et d'une couche de script PHP (P). Le problème majeur de cette pile est qu'il a une courbe d'apprentissage. Cela augmente la quantité de temps pour configurer une application fonctionnelle et cela peut éventuellement conduire à des problèmes de performance sur les applications avec des utilisateurs simultanés, ainsi que des problèmes de sécurité.
MEAN
Le stack est composée D'une base de données de documents MongoDB (M), Express.js (E) qui est un framework d'application web back-end, Angular.js (A) qui est un framework d'application web frontal et un nœud.js (N), un environnement D'exécution JavaScript. Les plates-formes sont construites en JavaScript du début à la fin ici et il est vraiment recommandé pour les grands ensembles de données non relationnelles, le seul recul ici est que tout est fait en JavaScript.
MERN
La pile est composée D'une base de données de documents MongoDB (M), Express.js (E) qui est un framework d'application web back-end, React (R) qui est une bibliothèque JavaScript pour créer des interfaces utilisateur et des nœuds.js (N), un environnement D'exécution JavaScript. Encore une fois, les plates-formes sont construites en JavaScript du début à la fin et le seul revers ici est que tout est fait en JavaScript.
Comment fonctionnent les autres STACKS
- Le bâtiment et l'hébergement sont couplés
- Un utilisateur demande une page. Le fichier est traité et servi après une (longue) série d'interactions entre une base de données, un code back-end, un serveur, un navigateur et des couches de mise en cache
- Les mises à jour de base sont transmises aux serveurs de production, Souvent via FTP. La base de données doit être maintenue ou mise à jour
- Les mises à jour de contenu sont poussées à travers les CMS traditionnels, comme WordPress ou Drupal
Flux de travail JAMstack
- Le bâtiment et l'hébergement sont découplés
- Un utilisateur demande une page. Le fichier est déjà compilé et est directement servi au navigateur à partir d'un CDN
- Les mises à jour de base sont poussées par Git; le site est entièrement reconstruit via des outils de construction modernes tels que des générateurs de sites statiques (Gatsby, Hugo)
- Les mises à jour de contenu sont poussées par Git ou un site statique CMS
JAMstack superpuissances
Vous demandez peut-être pourquoi vous avez besoin d'utiliser une autre stack . Eh bien, j'ai cinq raisons pour lesquelles vous devriez utiliser JAMstack:
- Meilleures performances: la construction avec JAMstack aide à générer des pages au moment du déploiement, car elles sont principalement stockées sous forme de balisage et peuvent être livrées sur un CDN.
- Haute sécurité: les sites Web statiques ont un très faible potentiel de vulnérabilités car il ne s'agit que de fichiers HTML et de gestion des API externes servis sur un CDN. Cela réduit les risques possibles pour l'attaque sur le site. Il est facile d'intégrer le certificat SSL avec Let's Encrypt. En outre, il tire parti de L'utilisation d'API de microservice côté serveur pour sécuriser les sites Web.
- Déploiement rapide et bon marché: les sites Web JAMstack peuvent facilement être déployés sans avoir à configurer les bases de données et à sécuriser la base de données. Nous ne traitons que des fichiers statiques qui sont simples à mettre en place et à exécuter.
- Awesome developer experience: L'un des avantages les plus importants de L'utilisation de JAMstack est qu'il n'est pas difficile à apprendre. Avec une expérience HTML, CSS et JS, les développeurs peuvent créer des sites web complexes. L'utilisation du site générateurs supprime la nécessité de maintenir une pile séparée pour le contenu et le marketing.
- Grande communauté: la communauté JAMstack se développe au fil du temps. Nouveau support pour diverses fonctionnalités jaillit chaque jour. Encore plus excitant est la communauté locale meetups en cours de création. La communauté en ligne est aussi incroyable.
Une autre grande caractéristique à considérer est la possibilité d'intégrer des fonctionnalités dynamiques de base dans les sites Web JAMstack. Cette technologie a la capacité de gérer des fonctionnalités dynamiques côté serveur, en gérant les fonctions back-end avec des outils tels que Serverless. Gestion des formulaires avec Formspree ou Netlify Forms. Capacité de recherche complète recherche Google, lunr.JS et Algolia, gérer la livraison optimale de l'image avec Cloudinary. Tout ce que vous avez à faire est plug and play.