Dev back

Dev back

The Truth About Python ‘is’ vs ‘==’ That No One Talks About

Cet article explique la différence entre le mot-clé 'is' et l'opérateur '==' en Python, soulignant que 'is' vérifie l'identité d'un objet en mémoire tandis que '==' compare les valeurs des objets. Il illustre cette différence avec un exemple impliquant des types de données différents, comme un entier et une chaîne de caractères, qui ne sont pas équivalents.

Dev back

Why Your @Scheduled Job Isn’t Running in Spring Boot

L'article aborde les problèmes courants rencontrés par les développeurs Spring Boot lorsque leurs tâches planifiées (@Scheduled) ne s'exécutent pas. Il met en évidence les erreurs courantes, notamment l'oubli d'activer la planification via une annotation requise dans la classe de configuration. L'auteur partage son expérience et fournit des conseils pour résoudre ce problème.

Dev back

Why We Removed Feature Flags After Toggle Misconfiguration Broke Prod — And No Longer Feared…

Cet article aborde l'expérience d'une équipe ayant décidé de supprimer les feature flags après une mauvaise configuration qui a causé des interruptions en production. Bien que les feature flags permettent de déployer des fonctionnalités sans les activer, ainsi que de réaliser des tests A/B et des rollbacks rapides, leur utilisation a engendré des confusions et des erreurs en raison de la complexité croissante de la gestion des toggles. L'incident le plus marquant est survenu lors d'un déploiement majeur où une fonctionnalité non prête a été activée, entraînant une avalanche d'erreurs 500. L'auteur évoque la façon dont la liberté apportée par ces toggles a rapidement été remplacée par des complications imprévues, ce qui a finalement conduit à leur retrait.

Dev back

The Forgotten Hell of Date/Time Bugs in Java

Cet article aborde les problèmes relatifs aux bogues de date/heure en Java, en soulignant comment des erreurs peuvent survenir lors de l'utilisation des API de temps, engendrant des incohérences à la production. Divers cas tels que des horaires de livraison incorrects et des factures affichant des dates erronées sont décrits, montrant que ces problèmes apparaissent souvent après le déploiement, lorsque l'application interagit avec différentes zones temporelles et systèmes, provoquant des situations imprévues et frustrantes pour les utilisateurs.

Dev back

Symfony Lazy Services with Style: Boost DX using Service Subscribers

L'utilisation des Service Subscribers dans Symfony permet d'optimiser la performance des applications et d'améliorer l'expérience développeur. Cet article explique comment passer de l'instanciation hâtive de services à un chargement paresseux, ce qui réduit les dépendances inutiles et facilite l'extension des services. Les étapes incluent la mise à jour des services pour utiliser des interfaces appropriées et la création de classes abstraites pour rendre le code plus modulaire et maintenable. Ce modèle est favorable à la performance tout en permettant un code plus propre et moins redondant, améliorant ainsi l'expérience développement.

Dev back

Why We Removed Lombok After Two Years (And Slept Better)

Après deux ans d'utilisation de Lombok dans nos projets Java, nous avons décidé de nous en séparer en raison de problèmes de débogage liés à des champs nuls générés automatiquement. Bien que Lombok ait réduit le code boilerplate initialement, nous avons perdu en transparence et en compréhension de notre code, ce qui a conduit à des bugs en production. Nous avons finalement opté pour une approche plus claire et gérable.

Dev back

How to use Java 17 Features Effectively in Modern Java Applications

Java 17 introduit des améliorations significatives par rapport aux versions LTS précédentes, comme la simplification de la création de données immuables grâce aux records, qui permettent de réduire le code boilerplate et d'assurer l'intégrité des données. De plus, il propose le pattern matching pour un code plus lisible lors des branchements.

Dev back

🛑 Stop Writing != null Everywhere!

Cet article présente cinq méthodes modernes et professionnelles pour gérer les valeurs null en Java, réduisant ainsi l'encombrement du code causé par les vérifications de nullité répétitives. Il souligne que le codage traditionnel entraîne une surcharge de vérifications nulles, qui peuvent mener à des erreurs de pointeur null (NPE). Parmi les solutions proposées, on trouve la centralisation des vérifications nulles dans une classe utilitaire pour améliorer la clarté et la maintenabilité du code.

Dev back

🛡️ Mastering Global Exception Handling in Spring Boot (Production-Grade)

Cet article traite de l'importance d'une gestion des exceptions robuste dans une application Spring Boot de qualité production. Il aborde la nécessité d'une stratégie centralisée pour éviter les blocs répétitifs dans les contrôleurs, les messages d'erreur confus pour les clients et des journaux non structurés. Il décrit comment mettre en place un mécanisme de gestion des exceptions global qui génère des réponses d'erreur claires et cohérentes pour toutes les APIs REST, prenant en charge des exceptions personnalisées et facilitant la gestion des erreurs de validation ainsi que des exceptions non capturées. L'article propose également une structure de dossier recommandée pour améliorer la maintenabilité du code.