Archive

Archives pour la catégorie ‘Java EE’

Devoxx France : je m’inscris ou pas ? Un retour d’expérience

La conférence Devoxx 2016 approchant à grand pas (du 20 au 22 avril 2016), voici un retour d’expérience de ma première participation, l’année dernière. Le programme détaillé 2016 ne sera disponible qu’à la mi-février mais vous pouvez déjà avoir un aperçu sur le site de Devoxx. Par ailleurs cet article vous permettra peut-être de vous décider à participer à l’édition de cette année : la vente des places en tarif réduit se termine bientôt !
Logo Devoxx France

En tant que développeur/concepteur applicatif junior, j’ai eu l’occasion, en 2015, de participer à ma première conférence sur les technologies actuelles et futures : Devoxx France.

Ayant auparavant déjà entendu parler de l’événement mais n’ayant jamais participé à une telle conférence , j’avais quelques interrogations, doutes et attentes sur lesquels j’aimerai revenir à travers plusieurs questions

Lire la suite…

VISEO envoie du sang neuf au Paris JUG

Chaque année, depuis 3 ans, Paris JUG offre la possibilité aux conférenciers novices de s’exprimer lors d’une soirée. Cet événement, intitulé Young Blood, est donc l’occasion pour ceux n’ayant jamais présenté de sujet à des conférences, de se lancer. Cinq à sept sujets sont choisis lors d’un appel à orateurs qui a lieu quelques mois avant (cette année les inscriptions couraient jusqu’au 21 novembre) et dont la durée ne doit pas dépasser 15 minutes.

J’ai la chance de participer à cette 3ème édition qui se tiendra le 12 Janvier 2016 dans les locaux de l’ESIEA. Dans la mouvance des conférences sur le test-first, je vais présenter un sujet sur Cucumber Java et comment le Behavior Driven Development (BDD) a amélioré ma façon de développer.

Les inscriptions

Les inscriptions se font via un formulaire en ligne où un sujet est demandé ainsi qu’une description complète de la présentation. Ces deux éléments seront ensuite repris sur la page de présentation des orateurs de la soirée. Les sujets peuvent vous paraître fantaisistes mais ce sont les consignes qui le veulent : l’instruction était « d’être créatifs ».

Une fois les inscriptions closes, nous recevons la bonne (ou mauvaise) nouvelle quelques jours après, le temps pour le jury de délibérer sur les sujets soumis.

Le coaching

Lire la suite…

Préparation et passage de la certification Pivotal Spring Professional


Pivotal Certified Spring Professional
À travers cet article, je souhaite vous retranscrire comment j’ai préparé et réussi la certification Pivotal Spring Professional basée sur la formation Spring Core 3.2. Cet examen concerne le célèbre framework Java dont le développement est porté par Pivotal. Populaire en entreprise, il bénéficie d’une excellente réputation du fait des problématiques qu’il adresse et auxquelles il apporte une solution clé en main.  Lire la suite…

Categories: Java EE Tags: , , ,

Retour sur la librairie de sécurité PAC4J présentée au Paris JUG

Un mot sur le JUG

Le Java User Group est toujours un réservoir de bonnes idées !
On y trouve, lors des rencontres mensuelles, des spécialistes sur tous types de techno mais exclusivement Java.
C’est un bon moyen de connaitre les nouveautés mais aussi de découvrir des produits / outils du marché présentés la plupart du temps par les créateurs/commiters eux mêmes !

La rencontre du 15 septembre était réservée aux librairies de sécurité pour Java, et plus précisément celle-ci : la librairie Open Source PAC4J pour « Profile & Authentication Client for Java ».

Sans titre 5

Et ce qui ne gâche rien, le créateur de cette librairie est français, j’y reviendrai à la fin.

Quelle est la problématique et/ou le besoin ?

Dans la quasi totalité des applications web, il est nécessaire d’ajouter une authentification.
Soit vous souhaitez réserver un contenu à certains types d’utilisateurs, soit il est nécessaire de savoir qui est connecté afin de répondre aux problématiques de persistances.
Il existe bien sur des dizaines de raisons d’ajouter une authentification, mais je vais me cantonner à ces deux là.

Lire la suite…

Categories: Java EE, Outillage, Web Tags: , , ,

Flyway, un outil de versioning pour les bases de données

flyway-logo-tm

La plupart des développeurs sont habitués à passer une série de commandes SQL de migration de données avant chaque livraison d’une application. Cette approche n’est cependant pas très pratique. Une excellente librairie, simple à utiliser, existe pour la migration automatique des données : Flywaydb.

Flyway est capable d’automatiser la migration des schémas de la plupart des bases de données relationnelles du marché, à chaque livraison. Il est un gage de qualité  et nous permet d’économiser du temps et de l’énergie. Flywaydb supporte 2 types de migrations : via des scripts SQL ou via du code Java. Il s’inscrit pleinement dans la stratégie du déploiement continu: il peut en effet migrer n’importe quelle base de données vers une version plus récente, et peut donc nous aider à déployer une nouvelle version d’une application.

Lire la suite…

Java 8 in Anger – DevoxxFR

Java 8 in Anger est un talk qui a été donné lors du Devoxx France 2015 pour présenter les nouveautés de Java 8 avec du live coding et je ne sais pas si vous partagez mon enthousiasme à assister à du live coding mais qu’est-ce que c’est bon !
Lors de l’édition 2015 du Devoxx France, les talks où le live coding était mis en avant ne sont pas légion. Et je trouve que, personnellement, c’est dommage car on retrouve dans le live coding l’un des piliers de ce qu’est le Devoxx : une conférence pour les développeurs et développeuses. Avec le « live build » du talk « Java 8 in Anger », je n’ai pas été déçu !

Java 8 in Anger - Trisha Gee au Devoxx France 2015

Java 8 in Anger – Trisha Gee au Devoxx France 2015

Lire la suite…

Intégration de code Python dans des applications Java ou .Net

Une particularité de Python est qu’il peut être exécuté sur plusieurs environnements techniques, grâce à ses différents interpréteurs. Ainsi, on pourra importer des librairies et exécuter le code nativement, ou à travers des machines virtuelles Java ou .Net, entre autres…

Avec des librairies système

CPython est l’interpréteur par défaut. Son nom vient du fait qu’il est écrit en C, et il permet d’utiliser toute librairie compilée pour le système (dont les librairies C).

pythonGreeter.py
    class PythonGreeter:
        __defaultHello = "World"
     
        @staticmethod
        def sayHello(helloWho=__defaultHello):
            print("Hello", helloWho, "!")
     
    PythonGreeter.sayHello()
    PythonGreeter.sayHello("Jack")
$ python pythonGreeter.py
Hello World !
Hello Jack !

Lire la suite…

Mix-IT 2015 – Le langage Ceylon

logo-mixit

Le langage Ceylon étant présenté dans l’une des nombreuses et intéressantes conférences du Mix-it. Au passage, je ne peux que vous conseiller d’assister au Mix-it pour vous tenir au courant des nouveautés dans le monde du Java et de l’agilité, mais pas uniquement.

Revenons donc au langage présenté :

Origine du langage

ceylon-logo
C’est un langage créé par Gavin King et publié par Red Hat sous licence Apache v2 depuis 2011. Il est actuellement en version 1.1.

Les points importants de Ceylon :

  • Il tourne sur la JVM et sur un moteur JS
  • Il est complètement interopérable avec Java et Javascript: on peut appeler du code Java depuis Ceylon, et on peut appeler Ceylon depuis du Java.
  • Il a une syntaxe qui ne déroute pas un programmeur Java, mais avec de fortes évolutions : l’inférence de type, le type union, les properties, les modules, le générique réifié, les opérations, et de nombreuses évolutions sur la gestion des types d’une manière générale.
  • Il a son propre dépôt : Herd qui est le pendant de Maven central (avec une publication facilitée par rapport au dépot Maven)
  • Il s’intègre à JEE ou Vertx

 

Ceylon, le langage de programmation

Ce langage basé sur la JVM, peut-être vu comme une amélioration de Java, même s’il est bien plus que ça.

 

Le langage et sa syntaxe

Dans les amélioration du langage, on retrouve des concepts de Java, C#, aussi un peu de Scala :
– Les modules : cela permet un découpage au sein du projet, et également de déclarer les dépendances au sein du langage. On va retrouver cette notion en Java 9
– les properties : comme en C# inutile de déclarer getter et setter
– inférence de type : inutile de répéter le type de la variable lorsqu’on l’affecte dans une déclaration, une boucle for etc.
– les métadonnées : on peut faire référence à un attribut par une métadonnée (pour hibernate par exemple) sans avoir à générer une classe.
– les expression lambda
– operations : sur les map par exemple, on utilise map["clef"] au lieu de map.get("clef")

Voir des exemples de code ici :
http://try.ceylon-lang.org/

Exemple: les opérateurs définis simplement à l’aide d’une interface (ceux qui ont manipulé le BigDecimal comprendront l’intérêt)

 

class Product(String name, Float price) satisfies Comparable {
  shared actual String string = name;
  shared actual Comparison compare(Product other) => price <=> other.price;
  shared actual Boolean equals(Object other) {
    if (is Product other) { return price==other.price; }
      return false;
    }

  shared actual Integer hash => price.hash;
}

 

Environnement de développement

Eclipse dispose déjà de son plugin de développement Ceylon. Le plugin pour IntelliJ est en cours de réalisation.

En ligne de commande, on a une commande unique : « ceylon » avec des sous commandes, un peu dans l’esprit de git, ce qui permet d’avoir rapidement une liste exhaustive des sous commandes possibles.

$ceylon compile … compiler un programme Ceylon
$ceylon run … le lancer le programme Ceylon

 

Environnement d’exécution

On peut intégrer Ceylon en tant qu’exécutable standalone bien sûr, mais aussi :
– au sein d’un environnement JEE
– au sein de Vertx, le nouveau serveur asynchrone.

Etant donné qu’il se compile en bytecode, on peut parfaitement l’intégrer dans un environnement d’exécution Java ou Javascript, pas besoin de runtime Ceylon.

 

Le mot de la fin

Ce qui m’a vraiment impressionné dans ce langage, c’est son approche simple autour des « manques » de Java: les properties, les métadonnées.
Cette approche est intéressante et contrairement aux autres langages, il ne remet pas tout en question, comme ça peut être le cas avec Scala ou jython.

Ce qui me donne envoie d’essayer, c’est aussi la possibilité d’intégration en Javascript.

En terme d’intégration web, je vois cette technologie sur une approche de type Ceylon/Angular en remplacement de Java/Angular.

En conclusion, je trouve ce langage plein de promesses (une V1.3 à venir fin 2015) avec une intégration parfaite dans nos environnements Java/Web actuels,
avec en plus la possibilité d’utiliser le tout nouveau Vertx à l’aide du module Cayla : à essayer !

Categories: Divers, Java EE Tags:

Quand Agile rencontre Craftsmanship

Faisant suite à un premier article sur le lieu, l’ambiance de la conférence, puis un second sur une approche psychologique de l’Agile, le clap de fin de la série de retours de l’Agile Tour Paris 2014 se fera autour de l’artisanat logiciel.

logo

 

L’artisanat logiciel, aussi connu sous le nom du Craftsmanship

Il est temps d’aborder le second grand axe qui a retenu mon attention lors de cet Agile Tour Paris, une conférence dont le sujet est le « beau code » : Travailler avec l’existant ou comment s’en débarrasser, présentée par un développeur quelque peu expérimenté (15 ans !), Sam Cranford.

Lire la suite…

Premiers pas avec Spring Batch 3 et ses annotations

A quoi sert Spring Batch ?

Spring Batch 3 est un framework qui offre de nombreuses fonctionnalités permettant de traiter de gros volumes de données avec de bonnes performances.

On peut par exemple citer :

– Reprise d’un batch après un arrêt inattendu

– Gestion des transactions

Lire la suite…

Categories: Java EE Tags: , , , ,