medium.com

Dev back

Is Java Dead? What Should You Learn?

L'article aborde le débat actuel sur l'avenir de Java, souvent considéré comme obsolète par certains développeurs au profit de nouveaux langages comme Rust et Kotlin. Cependant, l'auteur affirme que Java n'est pas mort et continue d'évoluer. Il souligne l'importance pour les développeurs de ne pas s'en tenir uniquement à Java et d'explorer d'autres langages tout en reconnaissant la place que Java occupe encore dans l'écosystème technologique mondial.

Dev back

Why We Lost 5,000 Customer Records After Skipping a Foreign Key — And Learned to Love Referential…

Un changement mineur dans le service des commandes a entraîné la perte de 5 000 enregistrements clients en raison d'un oubli d'intégrité référentielle. L'absence de la contrainte de clé étrangère a conduit à des données manquantes en production, bien que les tests dans les environnements de développement aient fonctionné correctement. Cet incident souligne l'importance des contraintes d'intégrité dans les bases de données et la nécessité de vérifier les migrations avant le déploiement.

Dev back

Why We Turned Off Auto-Refresh — After Redis Used 100% CPU to Keep Us Up to Date

L'article raconte comment un mécanisme d'auto-rafraîchissement basé sur Redis a provoqué une surcharge du serveur, mettant en péril les services d'une entreprise. Malgré l'attrait des données en temps réel, la stratégie a conduit à une utilisation de 100% du CPU, forçant les développeurs à revoir leur approche et à privilégier une méthode moins gourmande en ressources.

Dev back

Why We Rewrote Our Cache Layer After One TTL Misconfig Broke Everything — And We Learned to…

Une modification mineure de la configuration du TTL du cache a provoqué des erreurs graves, entraînant des prix de produits obsolètes sur le frontend et des métriques gelées pendant une vente flash. L'équipe a initialement blâmé plusieurs composants avant de réaliser que le problème venait de la configuration du cache. Cet incident a conduit à une réécriture de la couche de cache pour mieux gérer l'invalidation des données.

Dev back

Java vs Kotlin in 2025: Which One to Choose and Why?

L'article examine le débat persistant entre Java et Kotlin en 2025, en discutant de leurs performances dans le développement logiciel. Java maintient un léger avantage en matière de temps de démarrage et d'exécution brute, mais Kotlin, avec son nouveau compilateur K2, a considérablement amélioré sa vitesse de construction et sa performance. Les deux langages ont leurs avantages définitifs selon les cas d'utilisation, influençant ainsi l'expérience des développeurs.

Dev back

Why We Banned JPA Lazy Loading in Microservices — And Slept Without N+1 Nightmares

L'article discute des problèmes rencontrés avec le chargement paresseux (lazy loading) de JPA dans une architecture de microservices, notamment lors d'un incident de production où le nombre de requêtes a explosé, ce qui a entraîné une latence importante des réponses. L'auteur explique pourquoi ce modèle a été abandonné au profit de solutions plus efficaces.

IA

Can Java Compete With Python in AI? A Java Developer’s Journey into Artificial Intelligence

Cet article explore la question de savoir si Java peut rivaliser avec Python dans le domaine de l'intelligence artificielle (IA) et du machine learning. L'auteur, un développeur Java, partage son parcours et ses réflexions sur son intérêt croissant pour l'IA, après avoir longtemps travaillé dans le développement backend avec Java. Il aborde les défis et opportunités que l'IA présente pour les développeurs, tout en comparant les deux langages de programmation dans ce contexte.

Dev back

Why We Abandoned Synchronous Communication — After Chasing Bugs Across 3 Services

Cet article raconte comment une équipe de développement a rencontré des problèmes avec les communications synchrones entre plusieurs microservices. Bien qu'initialement adoptées pour leur simplicité et leur facilité de débogage, ces communications ont provoqué des pannes lorsque l'un des services devenait lent, entraînant des délais d'attente dans le flux de paiement. L'équipe a finalement décidé d'abandonner cette approche au profit de solutions plus résilientes.