Quotidien Shaarli

Tous les liens d'un jour sur une page.

August 19, 2025

Tunnelmole - A free and open source tunneling tool

Un concurrent de ngrok ?

Parlons pattern: BFF - DEV Community

Le Backend For Frontend (BFF) est un pattern architectural qui agit comme une couche intermédiaire entre les applications frontend (web, mobile, etc.) et les API ou microservices. Son objectif est de simplifier la récupération et la transformation des données en centralisant la logique d’agrégation et d’adaptation des données côté serveur, plutôt que de la laisser aux clients. Cela évite de surcharger les applications frontend avec des tâches complexes et permet d’offrir une réponse sur mesure, optimisée pour chaque type de client (mobile, web, etc.). Contrairement à une API Gateway, le BFF est dédié à un type spécifique de client, ce qui permet de mieux répondre à ses besoins en termes de format de données, gestion d’erreurs ou authentification. Ce pattern est particulièrement utile dans un contexte MACH (Micro Services, API-first, Cloud Native, Headless) ou lorsque les besoins des utilisateurs varient selon le type d’application, mais il ajoute une couche supplémentaire à maintenir et nécessite des compétences fullstack. Son adoption se justifie surtout si l’expérience utilisateur doit être différente selon les plateformes.

Lessons learned from an architecture kata: Workshop insights and design approaches - Alexandre Touret's Blog

Alexandre Touret partage son retour d’expérience sur un atelier d’Architecture Kata organisé lors de la Riviera Dev, où plus de soixante participants ont planché sur la conception d’une plateforme numérique dédiée au tourisme solidaire et durable. L’objectif était de proposer une solution intégrant profils utilisateurs éco-responsables, tableau de bord d’empreinte carbone, gamification et gestion d’activités locales, avec des contraintes techniques et métiers variées. L’article présente trois approches distinctes : deux propositions d’équipes (dont une très détaillée avec des diagrammes Structurizr) et la sienne, soulignant l’importance de clarifier les besoins métiers, de prioriser les flux principaux et d’externaliser les fonctions critiques (comme les paiements). L’exercice illustre la diversité des solutions possibles selon l’expérience des participants et rappelle que la pratique régulière des katas permet d’améliorer la prise de décision, la communication et l’adaptabilité en architecture logicielle. Une ressource utile pour quiconque s’intéresse à l’amélioration des compétences en design système.

Volt UI Component Library for Vue.js

Il s'agiç d'une bibliothèque de composants pour Vue.js basée sur Tailwind et PrimeVue

GitHub - AllThingsSmitty/basic-design-patterns: 🔧 A collection of essential design pattern examples in JavaScript 🧰

Ce dépôt présente les principaux design patterns avec des exemples en JavaScript

UI Lib Picker

Il s'agit d'un comparatif de différentes bibliothèques de composants UI pour Vue / Nuxt

DDD for backend developers: why is it so hard to get started | by PixelKK | Jul, 2025 | Medium

Résumé pour Shaarli :

Le Domain-Driven Design (DDD) peut sembler complexe pour les développeurs backend habitués à une approche "data-first" (comme avec Laravel ou Symfony), car il inverse la logique : au lieu de partir des données ou des outils, on organise le code autour du métier et de ses règles. Le DDD introduit des frontières claires (Domain, Application, Infrastructure) et un langage ubiquitaire pour aligner code et besoins business, ce qui casse les habitudes de développement procédural ou centré sur le framework. Les concepts clés comme les Bounded Contexts, Entities, Value Objects et Repositories aident à structurer le code pour le rendre plus maintenable et testable. La courbe d’apprentissage est raide car elle demande de passer d’une pensée technique à une pensée métier, mais même une adoption progressive apporte plus de clarté et de modularité. L’article propose une approche "DDD-lite" avec une structure de projet simple et suggère d’utiliser le BDD pour faciliter la transition en collaborant avec les experts métier. En résumé : le DDD, c’est avant tout des frontières et du vocabulaire partagé, pas de la magie architecturale.

Prioritizing technical debt: when to rewrite and when to live with it | by Dmitry Glazunov | ITNEXT

La dette technique est inévitable dans tout projet logiciel, mais la clé réside dans sa gestion stratégique plutôt que dans son élimination totale. Cet article explique comment évaluer quand il est judicieux de réécrire du code (par exemple, avant d’ajouter une nouvelle fonctionnalité ou en cas de risques majeurs) et quand il vaut mieux la tolérer temporairement (lorsque le coût dépasse les bénéfices immédiats). L’auteur propose une matrice décisionnelle et des conseils pour convaincre les parties prenantes en traduisant l’impact technique en arguments business : gain de temps, réduction des risques, et amélioration de la vélocité d’équipe. L’objectif ? Équilibrer pression court terme et santé long terme du code, sans tomber dans le piège de la quête de perfection.

Créer une app iPhone sans coder ? Mon retour d’expérience avec Github Copilot et le Vibe Coding

Le « vibe coding » permet-il de créer une app iPhone sans coder ? Ludovic Toinel partage son expérience : grâce à GitHub Copilot (avec Claude 3.7) et ChatGPT (GPT-4o), il a développé Contactidy, une app utilitaire pour normaliser les contacts, en une soirée. Si l’IA a généré la majorité du code, du design et même les traductions, des corrections manuelles (refactoring, gestion du Info.plist, bindings SwiftUI) ont été nécessaires pour obtenir un résultat propre et fonctionnel. Malgré quelques limites (code parfois complexe, temps de réponse), l’approche s’avère très efficace pour des projets simples, à condition d’avoir un minimum de connaissances techniques pour guider et corriger l’IA. L’app est disponible sur l’App Store. Une méthode prometteuse, mais pas encore magique !

EventCatalog — The Missing Piece to Your Event-Driven Application | by Mario Bittencourt | Jul, 2025 | ITNEXT

EventCatalog est un outil open source qui comble un manque crucial dans les architectures orientées événements : la documentation claire et maintenable. En adoptant une approche "documentation-as-code", il permet de décrire et visualiser les messages (événements, commandes, requêtes), les canaux de communication, les domaines, services et entités (inspirés du Domain-Driven Design), ainsi que les équipes et le langage ubiquitaire. Intégrable avec des registres de schémas (OpenAPI, AsyncAPI, JSON, Avro), il automatise la génération de documentation interactive, facilitant la compréhension et la maintenance des systèmes asynchrones. Grâce à des fonctionnalités comme les graphes de dépendances, la visualisation des schémas et la gestion des équipes, EventCatalog rend accessible et vivante la complexité des architectures événementielles, tout en restant simple à déployer et à mettre à jour. Une solution idéale pour aligner documentation et développement, surtout dans des écosystèmes distribués.