Affichage des articles dont le libellé est scala. Afficher tous les articles
Affichage des articles dont le libellé est scala. Afficher tous les articles

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.

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).





lundi 10 décembre 2012

Functional Programming Principles in Scala - Les certifications sont arrivées

Pour ceux qui ont participé à la classe Functional Programming Principles in Scala sur Coursera, les "certificats" sont publiés sur votre page profil dans le menu "Course Records".

Le mien :


vendredi 2 novembre 2012

Smarter pojo

Je vous ai montré, dans un article précédent, comment écrire un pojo immuable fournissant une API d'instanciation sémantique. Dans ce premier article sur Scala, je vais montrer comment faire de même et ceci beaucoup plus simplement, grâce aux concepts et aux différents sucres syntaxiques fournit par le langage.

mercredi 25 juillet 2012

Scala Dojo #2

Le mardi 24 juillet a eu lieu le deuxième ScalaDojo du Paris Scala User Group chez Valtech.
Le but de cette rencontre est d'échanger sur Scala, autour d'une bonne pizza et d'un paquet de stroumph, en mettant les mains dans le cambouis.

Au programme, cette lors de la soirée :
- Task sbt
- Les DataType
- Utilisation de Either
- test d'un controller Play 2
- Implémenation du dilemne du prisonnier en scala avec emacs et sbt

Merci à @un_jon et à Lateral Thoughts qui ont financés les pizzas et les boissons.

A bientôt pour un ScalaDojo #3 !