Java 8: Collections, Stream et opérations IO par l’exemple. Déboguer les streams

 

Ce billet aborde par la pratique le nouveau design pattern de gestion des collections en java 8 : Stream.

En java 8, le design iterator est abandonné au profit d'une meilleure conception basée sur le Stream.

Nous pouvons dire brièvement, qu'en java 8, la programmation impérative est remplacée par la programmation déclarative (penser au langage  SQL).

Les exemples démos choisis sont des opérations sur les répertoires et fichiers avec des assertions sur le nombre de lignes et sur les contenus de ces fichiers.

Nous donnons aussi une manière de déboguer les streams.

Voici les ingrédients utilisés dans ce blog: Java 8, Stream, l'api AsssertJ pour le test Junit.

Gérer simplement les CLOB et BLOB avec Spring

logo_jdbc_spring

 

Traiter les champs de taille importante, de plusieurs Giga, ou Large OBject (LOB)  dans la base de données n'a jamais été une partie de plaisir. Et ce n'est pas par manque d'approches pour les stocker et/ou de les récupérer : différentes approches existent, voire beaucoup trop ! Aussi, leur gestion est un peu plus complexe car dépend de la nature de la base de données et du type du connecteur/driver jdbc utilisé.

Dans cet article, nous explorons ce thème spécifiquement pour la base postgres 9.x (driver v 9.4. 1207.jre7) avec spring 4.

Design pattern Command illustré en java 8 et en Javascript & PhantomJS!

COMMAND_designPattern

Rien que le titre est tout un programme!

Ce billet présente des exemples pratiques, en Java8 et en JS, du design pattern (motif de conception) de comportement nommé Command. L'objectif principal de ce design est de découpler le sender (producer) du receiver (consumer). Nous détaillons cela un peu plus loin. A la fin de la première démo, on peut surtout constater que cet objectif est atteint.

Java 8 : l’ère des expressions Lambda

LambdaJAVA 8 (version SE 8 en Sept 2013, EE 8 en 2015)  arrive avec son lots de nouvelles fonctionnalités et notamment les expressions Lambda susceptibles de révolutionner notre façon de coder mais aussi d'anticiper nos développements. Un bémol néanmoins: JAVA à la sauce Lambda devient un langage ouvert à l'orientation vers les fonctions et moins regardant quant au caractère "fortement typé" qui défini ce langage. Je vous propose de décrypter une partie des fonctionnalités des expressions Lambda afin de vous faire une première idée.