Gérer les dépendances circulaires

Durant mon travail, j'ai rencontré des dépendances circulaires dans une application sur laquelle je suis intervenue. Dans sa plus simple forme, il s'agit de deux classes qui dépendent l'une de l'autre. Ceci est, selon moi, un problème pour plusieurs raisons. L'objectif de cet article est de montrer ce qu'est une dépendance circulaire, en quoi cela peut poser problème, et comment les éliminer.

java, oop

Implémenter un mécanisme d’AOP, sans framework !

L'Aspect Oriented Programming est un paradigme de programmation qui permet de traiter les préoccupations transverses (ou cross cutting concerns en anglais) telles que le logging, le cache ou les transactions séparément du code métier.

L'AOP repose la plupart du temps sur l'utilisation de librairies ou de frameworks qui rendent ce type de programmation assez obscur et parfois difficile à comprendre. L'objectif de cet article est d'expliquer comment cela fonctionne afin de le démystifier.

aop, java, oop

Ecrire des tests plus robustes au changement

Un des principaux freins à l'écriture de tests est quand ceux-ci doivent être mis à jour à chaque fois qu'une classe ou qu'une méthode est modifiée. Parfois, les tests à mettre à jour n'ont rien à voir avec la classe ou la méthode modifiée, mais comme ils s'en servent, ils s'en retrouvent affectés eux aussi. Ce problème survient quand le test est trop couplé à l'implémentation. Dans cet article, nous allons voir comment découpler les tests des classes qu'ils utilisent et ainsi les rendre plus robustes.

tdd, tests

Timelion, le petit nouveau de Kibana 5

Elastic vient de sortir sa dernière mouture de la stack Elastic. Il s'agit de la version 5 et, pour la première fois, tous les produits ont une version commune. Cette nouvelle version vient avec son lot de nouveautés. Dans cet article, nous allons nous concentrer sur les nouveautés apportées à Kibana, et principalement Timelion.

Les exemples sont tirés de métriques fournies par le plugin MetricBeat, qui remplace TopBeat dans la version 5 de la stack.

elk, kibana

Ecrire des tests avec Spring Boot 1.4

La version 1.4 de Spring Boot est sortie le 28 juillet 2016. Elle contient notamment des évolutions importantes au niveau de l'écriture des tests.
L'objectif de cet article est de voir comment migrer les tests d'un controller Spring MVC en utilisant les nouvelles fonctionnalités apportées par cette version.

spring, spring boot, spring mvc, tests

Quoi de neuf dans Spring 5

Juergen Hoeller a annoncé hier la sortie de Spring 5.0 M1. Cette nouvelle version majeure de Spring arrive avec son lot de nouveautés. L'objectif de cet article est de découvrir ces nouveautés et ce qu'elles peuvent apporter aux développeurs Spring. Les nouveautés décrites dans cet article sont déjà disponibles dans la version 5.0.M1.

java, reactive, spring

Refactoring d'une application N-Tiers en utilisant le CQRS

CQRS, ou Command Query Responsibility Segregation, est une architecture où la partie Command (écriture) et la partie Query (lecture) du système sont séparées.

J'ai eu la chance d'assister récemment à une présentation de Tomasz Jaskula nommée Recettes CQRS, pour bien cuisiner son architecture. Je l'ai beaucoup appréciée, notamment car on voit les différentes étapes pour arriver à une architecture CQRS / Event Sourcing / DDD à partir d'une architecture N-Tiers “classique”.

L'objectif de cet article est de présenter ma compréhension et mon avis sur le CQRS en particulier.

architecture, refactoring

ATDD et TDD double boucle

L'Acceptance Test Driven Development est une pratique qui consiste à écrire un test d'acceptation dès la définition de la fonctionnalité à implémenter. Ce test permet ensuite de valider que l'implémentation de la fonctionnalité est terminée. En général, plusieurs composants unitaires sont nécessaires pour implémenter une fonctionnalité. Ces composants peuvent être développés en TDD dans une deuxième boucle de feedback.

L'objectif de cet article est de présenter l'ATDD et comment le mettre en pratique grâce à du TDD double boucle.

tdd, tests

Polymorphisme avec le kata parrot refactoring

Ce kata est tiré d'un exemple du livre “Refactoring, Improving the Design of Existing Code” de Martin Fowler, et a été créé par Emilie Bache. L'exemple contient des signes de mauvais design et permet notamment de pratiquer le polymorphisme.
Dans cet article, une solution à ce kata sera développée. Le projet qui a servi de support se trouve sur GitHub avec la solution respective.

kata, oop, refactoring