dimanche 4 mai 2014

Dependency injection into Scala object (singleton)

L'injection de dépendance en Scala est une chose plutôt aisée du fait des possibilités de la syntaxe et des API à disposition. Il existe ainsi plusieurs méthodes permettant de le faire programatiquement, sans fichier de configuration, sans framework comme Spring ou Guice.
Le propos de cet article n'est pas de lister et de comparer toutes les méthodes disponibles pour ce faire; ceci sera traité dans un article ultérieur; mais de décrire une manière d'injecter les dépendances dans un contexte précis.
J'ai récemment eu a participer au développement d'une application web "classique" avec des Dao et des Services.
Ces Dao et Services sont naturellement indiqués pour être utilisés comme des singletons. En Scala, nous disposons d'un mot-clé pour déclarer des singletons : object.
Je vais donc essayer d'illustrer comment injecter une dépendance dans un object Scala et de rendre cet object lui même injectable dans une classe tierce.

mardi 15 avril 2014

Devoxx France 2014 - Préparer sa conférence grâce à onecalendar.fr

Ca y est Devoxx France 2014 c'est partir ! Enfin à l'heure où j'écris ces lignes, c'est demain. Comment faire pour préparer sa conférence, faire un petit tri à l'avance des talks que l'on veut aller voir ?

Grâce à l'application web OneCalendarToMeetThemAll et à votre client agenda préféré vous pouvez récupérer tous les horaires, lieux et descriptions de conférence Devoxx France pour les 3 jours et faire votre choix.
Vous pouvez ainsi le consulter sur votre smartphone durant la conférence pour ne pas perdre de temps au milieu des milliers de développeurs qui parcourront les couloirs de l'hôtel Mariott avec vous.
Voyons dans le détails comment faire, vous verrez c'est très simple, un simple clic et c'est parti !

vendredi 17 mai 2013

Embedded MongoDB in Scala !


La première fois que j'ai du utiliser une base mongoDB c'était pour stocker les objets métier de l'application OneCalendar, une application écrite en Scala avec playframework 2.

A cette époque (début 2012), on m'avait assuré qu'il était impossible de démarrer une base mongoDB via un test et que si je voulais tester je devais installer une base MongoBD sur mon poste de dev et le démarrer avant.
Je trouvais ça vraiment dégeu mais ne connaissant pas du tout l'écosystème mongo je me suis exécuté.

Depuis lors, j'ai trouvé un super projet JAVA qui permet d'utiliser une base mongoDB embarquée pour ses tests et je me suis amusé à écrire un petit utilitaire pour le porter sur SCALA.

C'est hyper simple, il suffit de récupérer une dépendance "maven com.github.simplyscala" %% "scalatest-embedmongo" % "0.2.1" et d'utiliser une api accessible via l'extension d'un trait com.github.simplyscala.MongoEmbedDatabase

La version ou encore le port de connexion à la base sont configurables, et après la librairie s'occupe seule de télécharger la base dont vous avez besoin pour vos tests. Tout est automatique c'est très puissant ! (juste un peu long la première fois que vous téléchargez la base).





mardi 5 février 2013

Transformez vous ! Manifeste pour une agilité relative !

Amusons-nous à une petite étude de texte sur les 4 valeurs du manifeste agile pour mieux le comprendre et se rendre compte que le contexte d'application est primordial pour une transition agile réussie.

lundi 4 février 2013

Pair Programming Swapping


Dans un article précédent, j'ai essayé d'introduire le Pair Programming.
Ceux qui s'essaient à cette formidable pratique professionnelle, se sont sûrement  demandés à quel moment il fallait permuter les binômes.
Peut-être même certaines équipes ne permutent quasiment jamais leurs binômes.
Je vais essayer de vous montrer comment, en introduisant la pratique de Revue de Pair, nous pouvons rythmer le binômage dans une équipe.




vendredi 11 janvier 2013

Egoless Programming Manifesto

Lors de la keynote de Pierre Piezardi à Devoxx France 2012, il a été fait mention du manifeste Egoless Programming. Cela m'a tout de suite frappé et intéressé.
Cette collection cohérente de "règles de vie" du développeur est une pierre utile à l'édifice "AGILE", une façon d'incarner ces valeurs.





  1. Comprendre et accepter que nous pouvons faire des erreurs
  2. Nous ne sommes pas notre code
  3. Peu importe combien nous connaissons le karate, il y aura toujours quelqu'un qui en connaîtra plus que nous
  4. Ne pas réécrire le code d'un autre programmeur sans le consulter avant
  5. Traitons les gens qui en savent moins que nous avec respect, déférence et patience
  6. La seule constante dans le monde est le changement
  7. La seule vrai autorité vient du savoir et non de la position
  8. Battons-nous pour ce que nous croyons mais acceptons gracieusement la défaite
  9. Ne soyons pas "the guy in the room"
  10. Critiquons le code plutôt que le codeur. Soyons gentil avec le codeur, pas avec le code

mercredi 2 janvier 2013

Pourquoi tu programmes ?

Pourquoi programmons nous ? Je ne pose pas la question dans un sens existentiel ou motivationnel.
A travers cette question je cherche à faire apparaître un sens à ce que nous faisons, pour la plupart de nous, plusieurs heures chaque jours.