Glow est un outil en ligne de commande conçu pour afficher et lire des fichiers Markdown avec style et efficacité directement dans le terminal. Il permet de parcourir et consulter des fichiers locaux ou des dépôts Git, offrant une expérience optimisée avec un rendu visuel soigné et des fonctionnalités pratiques comme un pager interactif inspiré de less.
Le projet est disponible sous forme de binaire ou via des gestionnaires de paquets pour la plupart des systèmes (Linux, macOS, Windows, BSD, etc.), avec des instructions d'installation détaillées pour chaque plateforme. Il peut également être compilé depuis le code source en Go (version 1.21+ requise).
Glow propose une interface utilisateur textuelle (TUI) pour naviguer facilement dans les fichiers Markdown, avec des raccourcis clavier intuitifs accessibles via la touche ?. Il prend en charge les liens distants et les fonctionnalités avancées comme la recherche ou le défilement, tout en restant léger et performant.
Un développeur partage son expérience de transition de PHP vers Go, soulignant les changements de paradigme rencontrés dès la première semaine. L’idée principale réside dans l’approche radicalement différente de la gestion des erreurs et des interfaces par rapport à PHP. Go impose une gestion explicite des erreurs via des retours multiples (comme error), remplaçant les blocs try/catch, ce qui peut sembler contraignant au début mais favorise une transparence accrue dans le code.
L’auteur aborde également l’absence d’héritage classique au profit de la composition, illustrée par l’embedding de structures, une méthode qui diffère fortement des pratiques orientées objet traditionnelles. Les interfaces en Go, définies par les comportements plutôt que par des déclarations explicites, surprennent par leur flexibilité et leur alignement avec le principe de ségrégation des interfaces (ISP) de SOLID, bien que cette approche puisse dérouter les développeurs habitués à des systèmes plus rigides.
Enfin, l’article souligne que Go privilégie la simplicité et la clarté, même au prix d’une courbe d’apprentissage plus abrupte. L’auteur reste partagé sur l’efficacité à long terme de ces choix, mais reconnaît l’influence positive de cette philosophie sur ses habitudes de codage, malgré une adaptation initiale difficile.
Le billet du Google Testing Blog explique comment optimiser l'accès aux structures de données comme les maps ou dictionnaires pour éviter des opérations redondantes. L'idée principale est de regrouper la vérification d'existence et la récupération de la valeur en une seule opération, plutôt que de les effectuer séparément. Par exemple, en Python, utiliser employees.get(employee_id) au lieu de employee_id in employees suivi de employees[employee_id] évite un double accès à la structure.
L'article illustre cette optimisation avec plusieurs langages, comme Go (via l'idiome comma ok), C++ (map.find()) ou Java (computeIfAbsent()), qui permettent de combiner vérification et récupération en une seule passe. Cela améliore non seulement les performances, mais réduit aussi les risques de conditions de course dans des environnements multithreads.
Enfin, le texte aborde des cas courants comme l'initialisation de valeurs par défaut ou l'incrémentation, en recommandant des approches idiomatiques propres à chaque langage (comme defaultdict en Python ou les default-constructed values en C++). L'objectif est d'écrire un code plus propre, efficace et robuste, surtout à grande échelle.
Cet article explique comment Go gère efficacement les entrées/sorties réseau grâce à son modèle basé sur les goroutines et le netpoller, permettant de créer des applications scalables et performantes (comme des serveurs TCP, HTTP ou WebSocket). L'article détaille le fonctionnement interne de Go pour la gestion des connexions (via epoll/kqueue), illustre avec des exemples de code simples (serveur TCP, gestion des timeouts), et partage des bonnes pratiques : fermeture des connexions, optimisation des buffers, gestion des erreurs, et monitoring avec Prometheus. Un cas pratique montre la création d'un serveur WebSocket capable de gérer des milliers de connexions simultanées. L'auteur souligne aussi les pièges courants (fuites de goroutines, épuisement des descripteurs de fichiers) et propose des outils pour tester et déboguer (wrk, pprof). Idéal pour comprendre pourquoi Go excelle dans les applications réseau haute performance.
L’API Platform Conference 2025 célèbre les 10 ans du framework avec des annonces fortes et un double focus : performance extrême et expérience développeur (DX). Côté performance, l’intégration d’extensions PHP écrites en Go (via FrankenPHP) et le support natif de gRPC pour PHP ont volé la vedette, permettant des gains inédits en rapidité et stabilité, comme en témoigne l’adoption par Laravel Cloud. API Platform 4.2 a aussi été dévoilé, avec des outils comme l’ObjectMapper de Symfony pour simplifier la transformation d’objets et des gains de performance multipliés par 2 ou 3.
La deuxième journée a mis l’accent sur la DX : schémas JSON pour la configuration YAML dans Symfony, l’arrivée de PIE (remplaçant moderne de PECL), et des réflexions sur l’Agent Experience (AX) pour mieux collaborer avec les IA. Fabien Potencier a notamment proposé d’ajouter un fichier llms.txt pour faciliter l’intégration des LLM. Enfin, des conférences sur les feature flags, la contribution au cœur de PHP, et l’histoire des femmes dans la tech ont rappelé l’importance de l’humain et de l’outillage moderne. En résumé, PHP se réinvente comme un écosystème hybride, performant et centré sur les développeurs, invitant à tester FrankenPHP, adopter les nouvelles pratiques DevOps et repenser l’architecture des projets. Une édition résolument tournée vers l’avenir ! 🚀
L'article présente la bibliothèque httpware comme une solution élégante pour gérer les middlewares et tripperwares en Go. Cette bibliothèque se distingue par son support natif des tripperwares côté client, permettant une gestion cohérente des requêtes HTTP tant du côté serveur que client. Elle offre des outils prêts à l'emploi pour la traçabilité, la sécurisation et la manipulation des requêtes HTTP, tout en restant flexible et légère. L'article explique les concepts fondamentaux des middlewares et tripperwares, décrit l'architecture de httpware, et fournit des exemples pratiques d'utilisation, comme l'ajout d'un CorrelationID et l'implémentation d'un rate limiter. Enfin, il souligne les bonnes pratiques et les pièges à éviter, positionnant httpware comme une solution robuste et simple pour les développeurs Go.
Microsoft a annoncé la migration du compilateur TypeScript de JavaScript vers Go, promettant une amélioration de performance de 10x. Cependant, cette amélioration concerne uniquement la vitesse de compilation du compilateur TypeScript, et non la performance d'exécution du code TypeScript lui-même. Le passage à Go permet de mieux gérer les tâches intensives en CPU grâce à ses goroutines et son modèle de concurrence natif, contrairement à l'architecture mono-threadée de Node.js. Cette migration soulève des questions sur la compatibilité future avec les navigateurs et l'écosystème des plugins TypeScript, mais elle illustre l'importance d'adapter les choix technologiques aux besoins spécifiques des projets en évolution
L'article explique comment créer un scanner de vulnérabilités réseau simple mais robuste en utilisant le langage Go. Le projet commence par la configuration d'un outil en ligne de commande capable de scanner des hôtes réseau, détecter les ports ouverts, identifier les services en cours d'exécution et découvrir d'éventuelles vulnérabilités. Le scanner évolue avec l'ajout de fonctionnalités comme le scan multithreadé, la détection de services et l'identification des vulnérabilités. L'auteur insiste sur les considérations éthiques et légales du scan réseau et fournit des exemples de code pour chaque étape du développement.
Une introduction au langage Go
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
L'auteur partage quelques conseils sur l'utilisation des chans en Go (taille, etc.) pour ne pas tuer les performances
Utiliser le code de statut de réponse “103 Early Hints” dans les applications Go | Les-Tilleuls.coop
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre