Deuxième étape de ma cure de rattrapage Java après Effective Java, The Well-Grounded Java Developer est un livre introduisant les nouveautés de Java 7 ainsi que les langages polyglottes tournant sur la JVM. Il a été écrit par Ben Evans, membre du comité exécutif du Java Community Process, et Martijn Verburg, coleader du London JUG, entre autres.

J’ai choisi ce livre car il permet à la fois de faire le tour des nouveautés Java 7 (Project Coin, NIO.2), de rentrer dans des sujets techniques (injection de dépendances, concurrence, manipulation de .class et bytecode) ainsi que de faire un tour d’horizon des nouveaux langages développés sur la JVM (Groovy, Scala, Clojure), en terminant sur une touche de software craftsmanship : mixer de façon judicieuse tous ces langages pour tirer partie de leurs qualités respectives.

Je conseille fortement ce livre à tous ceux qui, comme moi, auraient mis Java entre parenthèses ces dernières années et qui seraient restés bloqués à Java 6. Même si j’aurais aimé que certains points soient un peu plus approfondis, on voit beaucoup de choses, on découvre un tas de sujets et on code aussi ! Et les pages défilent très vite.

J’ai vraiment apprécié la partie polyglotte et notamment le fait chacun des langages présentés soit approfondi en mettant l’accent sur un de leurs points forts, avec pour chacun un petit projet à coder :
    - GRails, framework web orienté “rapid web development” pour Groovy
    - ScalaTest, framework de tests pour Scala
    - Compojure, framework web pour Clojure

Un livre à garder dans sa bibliothèque et à ressortir souvent. Cerise sur le gâteau, pour l’achat en version papier, Manning offre l’ebook en multiples versions et non-limité dans le temps, ce qui est un vrai plus pour emporter sa lecture partout !

Commenter et partager

Effective Java

dans Lectures


Première étape de ma cure de rattrapage Java : repartir des bases de Java 6. Pour cela, j’avais déjà ce qu’il me fallait dans ma bibliothèque: Effective Java, Second Edition de Joshua Bloch que j’avais lu il y a quelques années.

Joshua Bloch est un développeur reconnu, il a notamment travaillé chez Sun Microsystems et Google et il a dirigé plusieurs spécifications et implémentations Java dont la fameuse Java Collections.

Effective Java est une mine de bonnes pratiques, basée sur l’expérience de son auteur pour écrire du code Java efficient, notamment lorsque l’on développe une bibliothèque dont l’API sera fortement exposée.
La seconde édition a été mise à jour pour Java 6, ce qui peut-être paraître un peu daté à l’heure de Java 8. Mais, même si quelques items ne sont plus forcément d’actualité avec l’avènement des nouvelles versions de Java (ex: concurrence), la majorité des conseils sont bons à prendre car ils ne sont pas liés au langage lui-même mais à la programmation objet en général.

Le livre est découpé en 78 items répartis en 10 parties, que je vais reprendre ici, en condensé, afin de servir de mémo.
Continuer

Cure de jouvence Java

dans Lectures

Après avoir quelque peu délaissé le Java au profit du C++ ces dernières années, un peu de rattrapage s’impose. Le but est donc de revoir les bonnes pratiques de Java 6 et de partir à la découverte de ce qu’ont apportées les versions 7 et 8 de Java. Rien que ça !

Pour cela, rien de plus efficace qu’un bon bouquin truffé d’exemples et écrit pas des personnes qui savent de quoi elles parlent. Je découvre à cette occasion pour la première fois des livres des éditions Manning et quelque chose me dit que j’y reviendrai ! C’est fou toutes les références qu’ils ont dans les technologies de développement logiciel !

J’ai donc choisi trois livres, un pour chaque version :
    - Java 6 : Effective Java, Second Edition de Joshua Bloch chez Addison-Wesley (Août 2008).
Bonnes pratiques qui permettent d’écrire du code Java efficient. J’avais déjà lu ce livre il y a cinq ans mais on oublie vite quand on ne manipule pas !
    - Java 7 : Well Grounded Java Developer de Benjamin J. Evans et Martjin Verburg chez Manning (Juillet 2012).
Nouveautés Java 7 (Project Coin, try-with-resources, NIO.2) et comme dans “Effective Java“, quelques techniques sympas à connaître.
Ensuite, une introduction très intéressante aux langages basés sur la JVM, cousins plus ou moins proches de Java dont notamment Groovy, Scala et Clojure.
Enfin, une dernière partie sur quelques notions de software craftmanship appliquées à ces langages.
    - Java 8 : Java 8 in Action de Raoul-Gabriel Urma, Mario Fusco et Alan Mycroft chez Manning (Août 2014).
Nouveautés Java 8 et notamment une introduction aux expressions lambda.
Ensuite, une partie sur le traitement des données (ex: Collections) à la sauce programmation fonctionnelle et flux.
Après, comme pour les précédents livres, une partie sur comment être efficient en Java 8.
Et enfin, une partie un plus poussée sur la façon de penser en programmation fonctionnelle et l’après Java 8.

Tout un programme qui fait du bien au moral ! Je détaillerai chacun des livres dans des articles à venir ainsi que les spikes que j’ai prévu de faire pour Groovy, Scala et autres.

Commenter et partager

The Lean Startup

dans Lectures

J’ai découvert le Lean Startup grâce à une présentation de Nicolas Deverge lors de l’Agile Tour Bordeaux 2014 qui m’a donné envie d’en savoir un peu plus. En effet, Agilité et Lean sont fortement liées et sont porteuses de nombreuses valeurs communes.

The Lean Startup est mon premier livre abordant le thème du Lean et ses nombreuses déclinaisons. Il décrit la méthode Lean Startup ayant pour objectif de concilier vision créatrice de l’entrepreneur et méthode scientifique afin de faire émerger un produit qui sera en accord avec ce qu’attendent réellement les clients potentiels.

Il a été écrit par Eric Ries, entrepreneur et auteur du blog Startup Lessons Learned. Il est le fondateur de la méthode et à l’origine du mouvement Lean Startup que l’on retrouve sur le blog du même nom.

Le livre est un mélange de théorie, de références à la méthode Lean issue des usines Toyota il y a 50 ans, de retours d’expérience d’entrepreneurs qu’Eric a rencontrés et d’un fil rouge : l’émergence de la méthode à travers la société IMVU dont il est le cofondateur.

Le livre est découpé en trois grandes parties : _vision, steer, accelerate permettant de découvrir la méthode Lean Startup pas à pas.
Continuer

User Stories Applied

dans Lectures

Dans la série des “Signature Book” de chez Addison Wesley,“User Stories Applied” est mon troisième livre approuvé par Kent Beck après “ATDD, by example” et “Test-Driven Development, by example”. Il m’a été prêté par un ami, merci Damien pour le prêt longue durée ;)

Il a été écrit par Mike Cohn qui est l’un des membres foundateurs de Agile Alliance et un développeur reconnu par ses pairs. Il est notamment l’un des spécialistes de Scrum, mettant en place cette méthodologie depuis plus de 20 ans et ayant écrit plusieurs livres sur le déploiement de l’agilité dans les projets informatiques.

Comment recueillir efficacement les besoins utilisateurs ? Comment rester au plus proche de ces besoins sans passer des mois à écrire des documents ? Comment différer le recueil de ces besoins au moment le plus opportun ? Comment estimer le travail à faire pour développer ces besoins ?
C’est pour répondre à toutes ces questions et bien d’autres que Mike Cohn nous présente les Users Stories apparues tout d’abord en eXtreme Programming et ayant évoluées depuis pour s’imposer comme l’une des meilleures méthodes de recueil de besoins dans un projet agile.

J’ai apprécié ce livre, assez facile à lire grâce à un découpage en petits paragraphes. A chaque fin de chapitre, on trouve un résumé (ce qui est une bonne idée si l’on veut reparcourir rapidement le livre plus tard pour se rafraîchir les idées) ainsi que des questions, moyen amusant de savoir ce que l’on a retenu de notre lecture.

Le livre est découpé en cinq parties :
    1. Getting started : présentation générale de ce qu’est une User Story et de comment on travaille avec.
    2. Estimating and Plannig : comment estimer une User Story et comment planifier son développement
    3. Frequently Discussed Topics : bonnes pratiques et questions récurrentes sur les User Stories
   4. An Example : exemple avec mise en situation sur une boutique d’articles de pêche et de plongée souhaitant développer son e-commerce.
    5. Appendices : un premier appendice sur l’eXtreme Programming, méthodologie où sont apparues les User Stories et un deuxième contenant les réponses aux questions de fin de chapitre.
Continuer

The Clean Coder

dans Lectures

Dans “Clean Code”, Robert C. Martin nous décrivait les aspects techniques qui caractérisaient selon lui un bon développeur professionnel : un Software Craftsman. Dans “The Clean Coder”, il reprend le même principe mais en l’appliquant aux aspects humains et relationnels pour nous faire partager son guide de conduite d’un développeur professionnel.

J’ai apprécié ce livre car il pousse le concept de développeur professionnel encore plus loin en donnant quelques bonnes pratiques non pas dans les compétences techniques, mais dans son attitude vis-à-vis des autres membres de son environnement de travail (collègue développeur, manager, client, etc); ce qui est tout aussi important !
Ce livre devrait être étudié dans tous cursus de génie logiciel !

Contrairement à “Clean Code“ où d’autres grands noms du développement logiciel avaient prêté leur plume pour écrire quelques chapitres, “The Clean Coder“ est entièrement écrit par Robert C. Martin et ne reflète que son point de vue personnel, ce qu’il répète plusieurs fois tout au long du livre. Il faut donc appréhender cette lecture comme le résumé de son expérience professionnel et l’enseignement qu’il a su en tirer. Au lecteur de piocher ce qui l’intéresse pour s’approcher d’un idéal, en ayant conscience que tout n’est pas toujours atteignable à 100%.

J’ai personnellement repris beaucoup de ses pratiques (“Savoir dire non” notamment) mais j’en ai aussi laissé de côté car trop éloignées de notre philosophie européenne pour être applicables :) Ce livre m’a fait beaucoup évoluer dans mon attitude professionnel et vis-à-vis de mon travail, je le recommande vivement !
Continuer

Kent Beck est un développeur reconnu par ses pairs. Il fait parti des signataires du manifeste Agile et est le fondateur de l’eXtreme Programming qui met en avant des valeurs telles que le courage, le retour sur développement (feedback) et amène de nouvelles méthodes de travail telles que le pair-programming et le développement piloté par les tests (test-driven development).

C’est justement cette dernière technique qui est détaillée dans ce livre. Je l’ai trouvé très bien écrit; il se lit vite du fait de chapitres courts, voire très courts (2 pages pour le chapitre 7), et du style fluide de Kent Beck. L’enchaînement de chapitres courts donnent envie de ne pas s’arrêter, surtout quand ils décrivent une histoire comme c’est le cas pour la première partie qui est un exemple, avec code, du développement d’un système monétaire.
La deuxième partie m’a moins convaincu. Elle est plus difficile à lire et le développement d’un framework de test en Python ne m’a pas emballé.
Enfin la dernière partie est un vrai guide pour mettre en place un développement piloté par les tests. Il fournit beaucoup de trucs et astuces, explique la philosophie qui fait le succès de cette méthode et surtout Kent Beck nous dévoile un peu sa vision du développement logiciel.

Je ne vais pas m’attarder sur les deux premières parties qui sont des déroulements d’exemples concrets mais plutôt reprendre en détail la troisième partie : Patterns for Test-Driven Development.
Continuer

Clean Code

dans Lectures

Près de dix ans après The Pragmatic Programmer, Clean Code est le livre qui a donné un second souffle au mouvement Software Craftsmanship. Tout comme son prédecesseur, c’est une bible pour développeur. J’ai dévoré ce livre du début à la fin et je pense que c’est un livre à relire régulièrement afin de ne pas perdre de vue le bon sens qu’il contient.

Il a été écrit par Robert C. Martin, alias “Uncle Bob”, expert mondialement reconnu dans le domaine des technologies objets. Il est aussi le fondateur et président de Object Mentor, Inc., une équipe d’experts mondiaux dans les domaines C++, Java, C#, Ruby, OO, Design Pattern, et autres.

Le but du livre est de recenser les bonnes pratiques et les expériences d’experts d’Object Mentor afin d’écrire du code propre, robuste et surtout facilement lisible et compréhensible pour d’autres développeurs. La plupart des chapitres sont écrits par Robert Martin mais il a aussi laissé sa plume à d’autres experts : Tim Ottinger, Michael Feathers, James Grenning, Jeff Langr, Dr Kevin Dean Wampler, Brett L. Schubert.

Continuer

ATDD, by Example

dans Lectures

ATDD by Example est un guide pratique pour qui désire une introduction rapide et concrète à “l’Acceptance Test-Driven Development”. L’auteur, Markus Gärtner, qui se définit lui-même comme un artisan développeur (“software craftsman”), partage avec nous son expérience dans le domaine de l’agilité et plus particulièrement sur les tests.

Dans son introduction, Markus nous donne une rapide présentation de ce qu’est l’ATDD et ses autres formes/noms (Behaviour Driven Development, Specification by Example, Agile Acceptance Testing, Story Testing). Il présente ensuite le plan de son livre; les 2 premières parties seront des exemples concrets avec mise en situation et la 3ème partie reprendra les grands principes de l’ATDD ainsi que les bonnes pratiques à suivre.
Continuer

The Pragmatic Programmer

dans Lectures

“The Pragmatic Programmer” est une bible pour les développeurs. Il est l’œuvre d’Andrew Hunt et Dave Thomas d’après leurs expériences en tant que développeurs. Leur objectif est simple, faire du lecteur un Pragmatic Programmer, un développeur fier de son travail et qui utilise les meilleures techniques à sa disposition pour faire un travail de qualité.

J’ai vraiment apprécié ce livre facile à lire, rempli de métaphores et tellement inspirant. Il donne envie d’appliquer dans notre quotidien professionnel tous les bons conseils et techniques que les auteurs nous donnent.

Pour chacune de mes lectures, j’essaierais de faire un résumé des points importants à retenir afin que ces lectures ne soient pas perdues.
Pour le résumé de “The Pragmatic Programmer”, je vais reprendre les “tips” qui accompagne les 46 items.
Continuer
  • page sur
Copyrights © 2016 Pierre PIRONIN. All Rights Reserved.

Pierre PIRONIN

J’ai créé ce blog pour parler de ce qui se passe autour de moi dans le domaine du génie logiciel.
J’exposerai mes devs, mes idées, mes lectures, les faits qui m’intéressent et les événements auxquels je participe.

Bonne lecture !


Artisan développeur


Auvergne, France