Rétrospective 2024
2024 a vu de nombreux changements dans l’écosystème JS, avec les sorties de React 19, React Native 0.76 et Vite 6.
En plus de supporter ces nouvelles versions de frameworks, FaasJS a publié les nouvelles fonctionnalités suivantes en 2024 :
@faasjs/server
- Support des ES Modules
- Support des Response natives, améliorant les capacités de traitement des streams
- Suppression des dépendances aux fournisseurs, renforçant les capacités de déploiement indépendant
- Support des signaux système comme SIGTERM, assurant que les requêtes se terminent avant l’arrêt
- Sortie des logs grandement optimisée et simplifiée pour un meilleur dépannage et analyse
- Support du mode middleware pour une intégration facile avec les plugins d’autres frameworks backend
- Support des fichiers statiques avec sortie en stream pour réduire l’utilisation de la mémoire
@faasjs/react
- Support de React 19
- Support des Server Actions
- Ajout de plusieurs fonctions utilitaires, comme :
createSplittingContext
comme alternative légère à Redux et autres gestionnaires d’étatuseEqualEffect
,useEqualCallback
et autres Hooks de comparaison d’objets haute performancesplittingState
pour générer rapidement plusieurs états- Hooks utilitaires comme
usePrevious
,useStateRef
- Nouveaux composants de formulaire compatibles avec React et React Native
Plans pour 2025
FaasJS existe depuis 5 ans, visant constamment à fournir aux développeurs indépendants et aux petites équipes des solutions de développement rapide et de maintenance à faible coût.
En 2025, FaasJS maintiendra ce positionnement tout en faisant de nouvelles tentatives et ajustements basés sur l’écosystème JS existant :
Amélioration des Logs et du Monitoring
FaasJS a inclus la journalisation des performances depuis ses débuts, mais uniquement sous forme de logs, ce qui n’est pas idéal pour le monitoring et l’analyse.
Ainsi, le plan pour l’année prochaine inclut des améliorations majeures de @faasjs/logger
, supportant la sortie de logs au format JSON et fournissant un Transport extensible pour l’intégration avec divers systèmes de monitoring.
Le nouveau système de journalisation facilitera le monitoring de la latence des requêtes, des erreurs, des temps de base de données, et supportera des extensions personnalisées pour suivre des métriques comme l’utilisation des tokens des grands modèles.
Stack Technologique Définie
Initialement, FaasJS a créé des packages de compatibilité pour diverses infrastructures, mais les développeurs indépendants et les petites équipes utilisent rarement plusieurs infrastructures simultanément.
Donc, en 2025, FaasJS spécifiera sa stack technologique supportée et supprimera les compatibilités inutiles.
La stack technologique principale prévue inclut :
- Docker
- Supporte le déploiement indépendant et les services cloud comme Lambda
- Utilise un Dockerfile standard pour la compatibilité avec Podman et autres moteurs de conteneurs
- Possible introduction d’outils d’auto-déploiement légers
- Alpine
- Comme image de base pour réduire la taille
- Node.js
- Comme runtime, supportant la dernière version LTS
- Pas de support spécial pour Bun et Deno
- Npm
- Comme gestionnaire de paquets, supportant la dernière version
- Pas de support spécial pour Yarn ou Pnpm
- TypeScript
- Comme langage de développement principal, supportant la dernière version LTS
- Contraintes de types frontend-backend renforcées
- React
- Comme framework frontend principal, supportant la dernière version LTS
- Focus sur React dû au développement rapide de React Native et Expo
- Support de Vue uniquement via
@faasjs/browser
- PostgreSQL
- Comme base de données principale, supportant la dernière version LTS
- Évaluation de postgres vs pg
- Évaluation de drizzle vs knex
- Suppression des packages de compatibilité pour Redis et MongoDB
- Vitest
- Comme framework de test principal, supportant la dernière version LTS
- Migration progressive de Jest vers Vitest
Intégration de l’Écosystème Astro
Bien que la stack d’Astro soit lourde, elle offre une excellente expérience de développement et convient mieux au positionnement de FaasJS que Next.js qui devient de plus en plus complexe.
Je recherche actuellement comment intégrer Astro avec FaasJS pour une meilleure expérience de développement.
Cependant, cela restera basé sur la stack technologique mentionnée ci-dessus, particulièrement Docker, car l’expérience montre que les services edge (comme Cloudflare, Vercel) échouent souvent au déploiement en raison de dépendances manquantes.
Conclusion
Le plan de l’année prochaine représente le plus grand ajustement depuis la création de FaasJS, avec de nombreuses incertitudes. Les commentaires et suggestions sont les bienvenus.