Dev back

Dev back

⚡ Non-Blocking & Async: The Future Has No wait()

Dans le développement backend Java moderne, la programmation non-bloquante et asynchrone est essentielle pour la performance. Cet article décompose les concepts de base jusqu'à l'architecture de niveau entreprise, examinant des outils comme CompletableFuture, l'API Flow de Java, et des bibliothèques réactives telles que Project Reactor et RxJava. Une analogie avec un restaurant illustre la différence entre I/O bloquant et non-bloquant.

Dev back

Do You Really Know Java?

Cet article explore l'histoire de Java, une langue de programmation qui a duré plus de 30 ans. Il détaille son origine en tant que projet secret à Sun Microsystems, son développement avec le WORA (écrire une fois, exécuter partout) grâce à la JVM, et ses fonctionnalités comme la collecte automatique des déchets et le multithreading intégré. Java a évolué pour devenir une force stable dans l'industrie, améliorant la manière dont les développeurs écrivent et livrent du code.

Dev back

New in Symfony 7.3: New Bridges and Improved Integrations (Symfony Blog)

Symfony 7.3 introduit de nouveaux ponts et améliorations d'intégrations pour différents services tiers, permettant une meilleure connectivité avec des plateformes telles que Google, Microsoft et Amazon. Plus de 120 ponts sont disponibles, avec des ajouts récents comme l'intégration de AhaSend, ainsi que des améliorations pour des intégrations existantes comme Beanstalkd et Redis. Ces mises à jour renforcent la flexibilité et la fonctionnalité des applications Symfony.

Dev back

All about main() method in java

Cet article explique en détail la méthode main() en Java, qui est le point d'entrée de toute application Java. Il aborde sa syntaxe, l'importance de son accessibilité et de sa déclaration comme méthode statique, ainsi que les erreurs courantes à éviter. L'article met en lumière l'usage des modificateurs d'accès, la surcharge de la méthode, les implications d'une méthode non statique et les restrictions concernant le type de retour de la méthode. Il discute également de l'exécution d'une classe Java sans méthode main() en utilisant un bloc d'initialisation statique, mais précise que cette approche est obsolète à partir de Java 7.

Dev back

Understanding JVM Memory architecture and guidelines and tools for troubleshooting

Cet article traite de l'architecture mémoire de la JVM, en mettant l'accent sur les problèmes de mémoire courants dans les applications Java et sur les outils pour les résoudre. Il décrit les principales composantes de la mémoire de la JVM, notamment le tas, la metaspace et le cache de code, ainsi que le fonctionnement du ramasse-miettes. Il aborde également les raisons fréquentes des problèmes de mémoire, telles que les fuites de mémoire, le taux de création d'objets élevé et la configuration inappropriée de la mémoire. En comprenant ces éléments, les développeurs peuvent mieux diagnostiquer et résoudre les problèmes de performance liés à la mémoire.

Dev back

DTOs vs. Entities in Spring Boot: What Nobody Tells You

Cet article discute de l'importance de séparer les DTOs (Data Transfer Objects) des entités en utilisant Spring Boot. L'auteur partage son expérience de création initiale d'une seule classe pour des fins variées telles que la base de données et les réponses API, ce qui a conduit à des problèmes lorsque des exigences ont changé, impliquant la protection des données sensibles. Il met en avant les risques de ne pas faire cette séparation pour une meilleure gestion des données.

Dev back

New in Symfony 7.3: Messenger Improvements (Symfony Blog)

La nouvelle version de Symfony 7.3 apporte des améliorations significatives au composant Messenger, notamment la possibilité d'utiliser des fonctionnalités shell lors de l'exécution de commandes, le support de la fonctionnalité keepalive pour le transport Doctrine, la fermeture manuelle des connexions de transport, l'ajout d'options de filtrage pour les messages échoués, et une middleware de dé-duplication pour éviter l'envoi de messages identiques dans la file d'attente. Ces améliorations visent à optimiser les performances des applications modernes.

Dev back

“Still Stuck on Java 8? Java Evolved. Why Didn’t You?”

Java 8 était révolutionnaire de son temps, mais depuis, Java a beaucoup évolué avec des versions telles que Java 11, 17 et 21, offrant des fonctionnalités qui améliorent la lisibilité du code, la performance et la productivité des développeurs. Rester sur Java 8 entraîne des codes verbeux, des risques de sécurité, et l'absence d'optimisations récentes. L'article veut inciter les développeurs à passer à une version plus récente de Java.

Dev back

I Let Hibernate Handle My Database, and All I Got Was a Table Named “Alien”

L'article raconte l'expérience d'un développeur utilisant Hibernate pour gérer les interactions avec une base de données PostgreSQL. Après avoir écrit le code pour insérer un objet Java, il découvre que Hibernate ne sauvegarde pas les données sans un engagement explicite de transaction. Cela souligne l'importance de comprendre le fonctionnement d'Hibernate, notamment la nécessité de confirmer une transaction pour en faire un processus actif.