Published by

Il y a 9 ans -

Temps de lecture 5 minutes

Ma Geecon 2014, dernier jour

Il est temps de conclure cette série sur la Geecon. Dans ce dernier article, je vous propose de suivre trois conférences :

Nous finirons par une ultime synthèse de la conférence.

La journée commence par une séance de découverte de RxJava. Une librairie développée par NetFlix dont nous avons parlé dans l’article Android – Oubliez définitivement les AsyncTask avec RxJava.

"Reactive Java" par Tomasz Kowalczewski

Tomasz nous présente donc la librairie RxJava. Il reprend le principe du Functional Reactive Programming. La librairie permet de composer des séquences de traitements asynchrones basées sur des évènements. Les Observable lèvent des évènements et les Subscriber les écoutent. Il est très facile de créer un Observable directement à partir d’une liste, d’un future, ou de tout autre source d’évènements. Tomasz nous fait la comparaison entre les Streams et les Observables. Les deux, permettent de filtrer, et transformer les évènements, cerise sur le gateau il est possible de créer un Observable de stream Java. Voici un exemple simple en java 8:

[java] /*
* Affiche la somme des valeurs
*/
Observable.from(1, 2, 3, 4, 5)
.reduce((seed, value) -> {
return seed + value;
})
.map((v) -> {
return "DecoratedValue: " + v;
})
.subscribe((value) -> {
System.out.println(value);
});[/java]

Tomasz finit par la gestion d’erreur. Le système fournit plusieurs stratégies :

Ainsi se termine la présentation de Tomasz, qui a manqué d’un peu de sel. Mais surtout retenez l’adresse https://github.com/Netflix/RxJava.

Passons maintenant à la session de tips and tricks de Tom Bujok.

"33 things you want to do better" par Tom Bujok

Tom commence par expliquer que les développeurs écrivent du mauvais code la plupart du temps. Nous avons tous tendances à prendre des mauvaises habitudes. Il nous propose de beaucoup pratiquer et de lutter contre les mauvaises habitudes. Par exemple, laisser le printStackTrace dans le bloc catch par défaut. Le template de Tom contient "throw new RuntimeException(e);".

[java] catch (IllegalArgumentException e) {
e.printStackTrace(); // préférez throw new RuntimeException(e);
}[/java]

La présentation se poursuit avec d’autres exemples de code. Dans les blocs catch vide, Tom ajoute souvent "System.exit(0);" pour faire réagir. C’est à ce moment que Tom a choisi de nous parler des librairies qu’il utilise régulièrement. Lombok pour alléger le code, Guava, LambdaJ, SLF4J, …. Tom nous donne sa liste des choses qu’il utilise pour faire du code propre. Nous ne ferons pas ici la liste exhaustive de ses 33 tips, mais vous pouvez retrouver sa présentation ici.

Résumons, quelques bons conseils, une liste d’outils ou piocher et un bon speaker.

Pour le dernier slot, nous découvrirons un générateur de documentation : Asciidoctor.

"Asciidoctor: because writing docs does not have to suck" par Andres Almiray

Andres commence par rappeller que nous n’aimons pas écrire de la documentation. Lui a mis 3 ans pour sortir son livre ! La majorité du temps a été perdu dans les logiciels de traitements de texte. Puis il a découvert Asciidoctor. Pour nous convaincre, il met en avant la syntaxe compatible Markdown. L’autre avantage étant de pouvoir faciliter l’écriture d’une grosse documentation.

L’outil est développé en ruby mais il existe des plugins Maven / Gradle pour Java, une implémentation Javascript, ainsi que des extensions pour Firefox et Chrome. Bref, il est très facile d’écrire son fichier et d’obtenir le rendu en live. Asciidoctor permet de générer une table des matières, le site peut-être single page. Par défaut le site généré est déjà très correct, Andres nous liste ensuite quelques références qui utilisent Asciidoctor:

  • Groovy, Golo, et Ceylon, pour leur documentation
  • Pivotal pour le Spring Framework Reference documentation
  • Oreyli accepte le format asciidoc pour éditer les livres

Encore un outil à tester en rentrant à Paris, Andres était convaincant, une bonne présentation pour finir. Andres finira en nous invitant tous à faire des Hackergarten.

Pour finir

Il est temps de conclure cette série sur la Geecon 2014.  Vous l’imaginez bien ces 3 articles ne donnent qu’un bref aperçu de la conférence. Avec ses 5 tracks en parallèle et ses 3 jours de conférences, la Geecon pense à tout le monde.  Parmi les speakers, j’ai croisé un grand nombre de Java Champions venus du monde entier. La grande majorité des participants sont Polonais, mais c’est réellement une conférence de niveau international. Les thèmes principaux sont :

  • Agilité, méthodologie et société
  • JEE 7 et Java 8 en avant 
  • Architecture, Microservices, BigData
  • Craftmanship, reprenez le contrôle de votre code
  • Autres langages et technologies de l’éco-système, NodeJS, Scala, HTML5, …

A certains moments le programme mettait en concurrence plusieurs sessions qui me faisaient envie. L’équipe m’a expliqué sur ce point que plusieurs speakers avait demandé des décalages pour raison d’indisponibilité. Maintenir un programme équilibré fût donc un exercice difficile. 

Au delà des conférences et des keynotes de qualité, la Geecon c’est aussi une foule de geeks qui se réunissent et refont le monde entre eux pendant les pauses et les soirées. Vous pouvez apprendre autant dans les sessions que dans les soirées autour d’un verre.  Reste le cadre, et je ne parle pas du cinéma en bordure de ville, mais de Cracovie elle même. La ville est très belle et, les lieux de rendez-vous donnent l’occasion de visiter le vieux centre et les meilleurs bars.

Au revoir donc Geecon 2014, et à bientôt j’espère. Toutes les conférences ont été filmées, nous vous informerons de leur mise en ligne au moment venu.

Pour plus d’informations sur la Geecon rendez-vous ici : http://2014.geecon.org/ 

Published by

Commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.