Recherche

Coder's IO

Tag

Version

Java 8 : Les lambdas par l’exemple

 

Java 8 est sorti ! Ce n'est plus une grande nouvelle… 
Maintenant, plus d'excuses pour ne pas utiliser cette nouvelle version du langage.
Comme nous avons pu le voir au travers de précédents articles. pas mal de nouveautés sont arrivées avec ce nouvel opus.

Parmi ces nouveautés : les expressions lambdas
Cette nouvelle fonctionnalité permet de déclarer en ligne des fonctions. Il était possible de faire quelque chose de similaire auparavant au moyen d'une classe anonyme. L'inconvénient était le nombre de lignes qu'il fallait écrire avant de réellement implémenter le code métier. Avec les lambdas, une ligne suffit..

Pour bien comprendre le mécanisme et la valeur apportée par ce mécanisme (inspiré en partie du monde de la programmation  fonctionnelle), je vous propose l'article attaché à ce post qui décrit 10 exemples mettant en œuvre les expressions lambdas.

Les exemples que vous pourrez découvrir sont : 

– Implémentation d'un thead
– Implémentation d'un listener d'évènement
– Parcourir une liste
– Utilisation de l'interface Predicate de manière fonctionnelle
– Créer une combinaison de Predicate
– Implémentation d'un Map Reduce
– Création d'une liste de String via un filtre
– Appliquer une fonction sur chaque élément d'une liste
– Création d'un sous-liste
– Calcule du Max, Min, moyenne et somme sur une liste d'élément.

Pour les personnes qui découvrent cette syntaxe, cela peut être déroutant voir même pas très intuitif. 
Si vous prenez le temps de bien comprendre, cela vous ouvrira de nouvelles perspectives.

Bonne lecture !

#java #lambda #version8

Jenv

 

Lorsque l’on développe en Java, on peut avoir besoin de gérer plusieurs versions du jdk sur notre machine.

Le projet Jenv, créé par +Gildas Cuisinier, adresse cette problématique. 

Il vous permettra de référencer l’ensemble des versions disponibles sur votre machine et de passer de l’une à l’autre au moyen d’une simple commande dans votre shell.

L’article, en lien dans ce post, rédigé par l’auteur du projet, explique l’origine du projet et présente un quickstart permettant de mettre rapidement le pied à l’étrier.

Bonne lecture!

#java #gestion #version #jenv

Quoi de neuf avec IntelliJ 11 ?

Aujourd’hui, une nouvelle version de l’IDE Intellij IDEA est sortie : 11.1. C’est l’occasion pour faire un point sur les nouveautés venues avec la version 11 (sortie le 30 décembre 2011).

IntelliJ IDEA en quelques mots :
IntelliJ est un IDE dédié au langage Java et son écosystème. +IntelliJ IDEA est édité par JetBrains. Cet IDE existe sous deux licences : une gratuite et l’autre payante (ultimate edition), à l’instar de son principal concurrent Eclipse, qui lui est complètement gratuit.
Bien entendu, la version ultimate apporte beaucoup plus de fonctionnalités que la version non payante.
En essayant de rester impartial, l’IDE apporte un grand confort de travail. La gestion perpétuelle du contexte au sein de l’IDE fait la différence avec la plupart des IDEs concurrents. Je ne vais pas aller plus loin, car le propos de l’article n’est pas de faire un comparatif 🙂

Plusieurs types de licences payantes sont disponibles en fonction de votre situation :
– Entreprise,
– Travaux dans le cadre d’un projet open source,
– Etudiant,
– etc.

Voici une liste (non exhaustive) des nouvelles fonctionnalités proposées dans la nouvelle mouture de l’IDE :

L’IDE en général :
– Globalement, les performances de l’IDE ont été améliorées
– L’indexation des fichiers a aussi été améliorée.
– Un support des branches GIT simplifié.
– Une intégration avec GitHub et la fonctionnalité GIST.
– Une meilleure expérience pour le développeur.
– Mise à jour de l’interface utilisateur.
– Support de SVN 1.7
– Améliorations sous Linux et MacOs

Support des outils et frameworks :
– Intégration de Gradle
– Support de Play framework + JPA
– Support d’Android (Android 4 SDK)
– Hibernate 4
– Amélioration du support de Scala
– Support de Grails 2.0
– Amélioration du support de Spring

Développement Web et JEE :
– Complétion sur le javascript
– Support de JBoss7 et Websphere 8

Vous pourrez retrouver plus de détails et l’exhaustivité des nouvelles fonctionnalités sur le lien ci-dessous.

En conclusion, je dirais qu’essayer Intellij Idea, c’est l’adopter. Le coût de la licence peut être un frein, mais c’est un investissement que vous retrouverez dans votre productivité du quotidien.

#Java #intellij #idea #release #version #IDE

Hibernate Envers : Entity Version

Il n’est pas rare dans une application, au niveau de la base de données, de trouver des champs techniques dans les tables à coté des données métier.
En général, ces champs ont pour objectif de fournir des informations sur :
– qui a modifié cette ligne,
– qui a créé cette ligne
– à quelle date cette ligne a été créée,
– à quelle date cette ligne a été modifiée,
– etc

Ces informations sont assez précieuses, en cas de problème, ou de litige.
En revanche, on peut voir deux problèmes évidents concernant ces données :
1) on a un mélange entre les données métiers/techniques,
2) la gestion de l’historique est très limitée (les données sont écrasées systématiquement)

Le projet Envers a pour objectif d’adresser cette problématique de gestion de l’historique des données métier et ceci de manière transparente pour l’application.

Le principal pré-requis pour mettre en place cet outil sur un projet est que celui-ci se base sur le framework Hibernate et ses annotations.

Pour réaliser cette tâche, Envers fournit une annotation @Audited que l’on posera sur les entités que l’on souhaite suivre. Il faudra ajouter quelques lignes dans le fichier de configuration XML et le tour est joué !

A partir de là, Envers se chargera de créer (via une tâche Ant) les tables nécessaires pour gérer l’historique des entités. C’est à dire une table par entité.

Le projet fournit aussi une API permettant d’interroger l’historique des entités gérées.
Elle permet d’accéder aux informations d’une entité à partir d’un numéro de révision donné.
La sélection peut se faire de manière très fine en utilisant des opérateurs de comparaison, des projections et l’ordre de tri.

Pour faire un parallèle, ce projet pourrait être présenté, dans son fonctionnement, comme un gestionnaire de source de type SVN.

Le point auquel il faut faire attention concerne les performances. La gestion des révisions engendre un coût qui peut multiplier par 1.5 les temps de réponse. Ce point ne doit pas être rédhibitoire. Il indique juste qu’il faut choisir de manière pertinente les entités que l’on va suivre et ne pas hésiter à faire des benchmarks afin de voir les impacts que cela pourrait avoir vis à vis des utilisateurs.

#java #entity #version #database #revision

Propulsé par WordPress.com.

Retour en haut ↑

Concevoir un site comme celui-ci avec WordPress.com
Commencer