medium.com

Dev back

Tricky Java Interview Questions — Part 6

Dans cet article, il est expliqué que deux classes peuvent partager le même nom en Java tant qu'elles se trouvent dans des packages différents. Cela fonctionne grâce aux namespaces fournis par les packages, permettant ainsi une organisation claire des classes tout en évitant les conflits de noms. L'article précise que chaque classe est identifiée par son nom complètement qualifié, qui inclut le nom du package.

Dev back

Level Up Your Code: The Power of the Decorator Pattern in Java 🎁

L'article explique le modèle de conception Decorator en Java, qui permet d'ajouter dynamiquement des comportements aux objets sans modifier leur structure. Cela est utile pour ajouter des fonctionnalités à des objets individuels sans recourir à l'héritage, suivant ainsi le principe Open/Closed. L'analogie utilisée compare ce modèle à l'ajout de garnitures sur une pizza, où la base reste inchangée.

Dev back

How I Use Loose Applications to Supercharge My Java Development 🚀

L'auteur partage son expérience sur l'utilisation des 'applications lâches' pour améliorer le développement Java. Ces applications maintiennent les fichiers sur le système de fichiers au lieu de les emballer dans des fichiers WAR ou EAR, permettant ainsi un accès et une modification plus faciles des classes, bibliothèques et configurations, ce qui optimise le processus de développement, débogage et test en Java.

Dev back

I Built the Same App in Java and Node.js — Which One Was Better?

L'auteur compare les performances de deux applications identiques construites respectivement avec Java (Spring Boot) et Node.js (Express). Après des frustrations avec Node.js, il a trouvé que Java, souvent perçu comme obsolète, offrait de meilleures performances une fois maîtrisé. Cet article présente une réflexion sur l'efficacité et la rapidité de Java par rapport à Node.js dans le développement d'API REST.

Dev back

Using MapStruct with Java Records for Fast and Clean DTO Mapping

Cet article aborde l'utilisation de MapStruct avec les enregistrements Java pour le mappage efficace et sans boilerplate des DTO. Il explique comment mapper les entités JPA vers des enregistrements, détaille le fonctionnement du mappage basé sur le constructeur, et fournit des conseils sur la gestion des objets imbriqués, le renommage des champs, ainsi que des erreurs courantes à éviter. MapStruct est présenté comme une bibliothèque avantageuse par rapport à d'autres, grâce à sa rapidité et à sa sécurité de compilation.

Sécurité

💳 What’s Running Inside Your Credit Card? (Hint: It’s Java)

Cet article explore la technologie Java intégrée dans les cartes de crédit, mettant en avant son fonctionnement et sa sécurité. Il explique que Java Card, une version réduite de Java, est utilisée pour gérer les paiements sécurisés, faisant tourner des machines virtuelles Java à l'intérieur des puces des cartes de paiement. La technologie est essentielle pour les transactions Visa et Mastercard, assurant des opérations rapides et sécurisées malgré la limitation de mémoire des cartes.

Dev back

Hidden Gems in Java: Elevate Your Code with Lesser-Known Power Features

Cet article met en lumière sept fonctionnalités et API peu connues de Java qui peuvent améliorer considérablement la performance, la sécurité et l'expressivité du code, sans nécessiter de bibliothèques externes. Par exemple, la fonctionnalité VarHandle introduite dans Java 9 permet des opérations concurrentes sans verrouillage, offrant ainsi un meilleur contrôle. Ces caractéristiques montrent que Java, malgré sa réputation de langage 'ancien' ou 'verbeux', possède des atouts modernes et puissants.

Dev back

🧠 The Concurrency & Multithreading Bible for Engineers

Cet article propose un cadre de référence sur la programmation concurrente et le multithreading, en décrivant neuf piliers essentiels pour écrire des systèmes sûrs et performants. Ces piliers transcendent les langages de programmation et sont cruciaux pour gérer les threads, la mémoire partagée et l'exécution parallèle. L'article fournit une analyse de différentes modèles de threads et des meilleures pratiques, s'adressant aux ingénieurs désirant approfondir leurs compétences en programmation concurrente.