medium.com

Dev back

Storing Duplicate Keys in a Map in Java: A Senior QA Engineer’s Journey

L'article relate l'expérience d'un ingénieur QA senior qui a rencontré des difficultés en essayant de stocker plusieurs valeurs sous la même clé dans une carte Java. Après avoir constaté que Java ne permet pas les clés dupliquées, il a proposé d'utiliser une liste pour chaque clé afin de gérer plusieurs commentaires d'utilisateur. L'auteur évoque aussi l'utilisation de Guava pour simplifier cette gestion. Cette réflexion souligne l'importance du choix des structures de données dans le développement et les tests logiciels.

Dev back

Mastering Concurrency in Java: Lessons I Learned the Hard Way

Cet article traite de la maîtrise de la concurrence en Java, en partageant des leçons tirées de l'expérience de l'auteur. Il aborde les défis rencontrés lorsqu'on passe d'applications mono-thread à des systèmes multi-thread pour gérer efficacement des tâches concurrentes. Les concepts de bases comme les threads, Runnable, Callable sont expliqués, ainsi que des outils avancés tels que les locks et les sémaphores. L'auteur souligne également l'importance de la synchronisation et les problèmes de concurrence tels que les conditions de course et les blocages. Enfin, il met en avant l'utilisation de CompletableFuture pour simplifier la gestion des tâches asynchrones, améliorant ainsi la fiabilité et la scalabilité des systèmes construits.

Dev back

We Used @Autowired Everywhere — Then It Broke Our Tests

Cet article raconte l'expérience d'un développeur ayant utilisé l'annotation @Autowired dans un projet Spring Boot. Au début, cela simplifiait la gestion des dépendances, mais avec la croissance du projet, des problèmes de tests sont apparus car les tests isolés nécessitaient le contexte Spring complet. L'auteur partage les défis rencontrés et comment ils ont été résolus.

Dev back

I Tried 5 AI Testing Tools — Here’s What Actually Worked

Cet article examine cinq outils d'intelligence artificielle pour les tests de code, évaluant leur efficacité et leur applicabilité. Il discute de la manière dont ces outils peuvent générer des tests unitaires, faciliter l'automatisation des flux utilisateurs et fournir une couverture aux équipes qui manquent de ressources en assurance qualité. Les outils évalués incluent CodiumAI, Testim, QA Wolf et Diffblue, chacun ayant ses propres avantages et inconvénients, notamment la nécessité d'une supervision humaine et la gestion des faux positifs.

Management

Review — Is System Design School a Good Place to Learn System Design in 2025?

L'article examine l'école de conception de systèmes, mettant en avant son approche structurée et pratique pour préparer les ingénieurs aux entretiens. Dirigée par des anciens d'entreprises renommées, elle propose des cours, des problèmes réels, et des retours d'IA sur les conceptions. Le programme comprend des cours fondamentaux, des connaissances spécifiques et des problèmes d'entretien populaires, le tout agrémenté d'outils interactifs pour une meilleure préparation. L'auteur recommande fortement cette plateforme pour quiconque cherchant à améliorer ses compétences en conception de systèmes.

IA

Top 6 Udemy Courses to Become a Data Scientist in 2025

L'article présente les six meilleurs cours disponibles sur Udemy pour devenir data scientist en 2025. Ces cours couvrent des compétences essentielles telles que Python, SQL, l'apprentissage automatique, et plus encore, permettant aux apprenants de se préparer efficacement pour une carrière dans ce domaine en forte demande. Les cours sont conçus pour être accessibles, avec un bon équilibre entre théorie et pratique, et abordent des sujets modernes comme l'intelligence artificielle et le deep learning.

Autre

Review — Is DesignGurus.io a Good Place for Coding Interview Preparation in 2025?

Cet article évalue la plateforme DesignGurus.io pour la préparation aux entretiens techniques en 2025. Il souligne l'efficacité des cours, notamment sur la conception de systèmes et les algorithmes, se concentrant sur un apprentissage basé sur des modèles. La plateforme, fondée par des anciens ingénieurs de grandes entreprises technologiques, propose des outils interactifs et un accès à des mentores pour des simulations d'entretiens. Les tarifs compétitifs et la longévité d'accès aux cours en font un investissement attrayant pour les développeurs souhaitant exceller dans les entretiens de codes.

Dev back

How to Write a Utility Class Your Senior Will Actually Approve

Cet article présente 12 règles essentielles pour écrire des classes utilitaires en Java qui seront approuvées par des développeurs seniors. Il aborde l'importance de garder les classes sans état, de ne pas permettre leur instanciation, et d'autres bonnes pratiques pour assurer la sécurité et la prévisibilité dans un environnement multithreadé.

Dev front

My Path to Scalable Frontend Engineering

Cet article retrace le parcours d'un développeur qui est passé de l'écriture de scripts JavaScript basiques à la construction d'applications front-end et back-end évolutives. L'auteur partage les étapes clés de son apprentissage, y compris la manipulation du DOM, l'utilisation d'async/await pour gérer les promesses, la modularisation avec les imports ES6, et la création d'API REST avec Express.js. Il aborde également l'architecture événementielle avec Node.js et l'utilisation de Socket.IO pour la communication en temps réel, soulignant finalement l'importance de frameworks comme React et Vue pour gérer des interfaces utilisateur complexes.

Dev back

JSON Parsing Without Libraries — From Problem to Production-Grade Solution

Cet article traite d'une approche pour analyser un tableau JSON de 5 Go sans avoir recours à des bibliothèques comme Jackson ou Gson. L'accent est mis sur le traitement en streaming, permettant de gérer de grandes quantités de données de manière efficace tout en maintenant une faible empreinte mémoire. La problématique de parsing est expliquée en détail, incluant des techniques optimisées pour l'extraction des champs 'id' et 'name' des objets JSON. Cette méthode peut s'appliquer dans des contextes de traitement de données massives, d'analyse de logs et d'applications de streaming de données.