refactoring piloté par les tests

Post on 26-Dec-2014

1.628 Views

Category:

Self Improvement

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Agile Days Paris 2010

TRANSCRIPT

© Copyright Pyxis Technologies

Agile Days 2010Paris

Refactoring guidé par les tests

2© Copyright Pyxis Technologies

Où étiez-vous le 10 novembre 2009 au soir ?

3© Copyright Pyxis Technologies

Moi, j'étais au Paris JUG

@DidierGirard

• Google Wave

• Google App Engine

Je retiens

• C'est facile

• C'est rapide

• C'est l'fun :)

4© Copyright Pyxis Technologies

Ok, Go !

5© Copyright Pyxis Technologies

Snippet

6© Copyright Pyxis Technologies

Cool… je copie / colle... :)

7© Copyright Pyxis Technologies

...et je crée moi même un code pourri :(

Nom de méthode inadéquat

Plusieurs responsabilités

Fonctionnel caché

Non-fonctionnalité

Difficile à tester

8© Copyright Pyxis Technologies

Le sentiment qui domine en moi ?

La peur

9© Copyright Pyxis Technologies

Quelle fonctionnalité ?

Envoi un message si le destinataire est en ligne

10© Copyright Pyxis Technologies

Quelles dépendances ?

JID

Message

MessageBuilder

XMPPServiceFactory

Presence

SendResponse

11© Copyright Pyxis Technologies

Fonctionnalité & Dépendances

Envoi un message si le destinataire est en ligne

JID

Message

MessageBuilder

XMPPServiceFactory

Presence

SendResponse

12© Copyright Pyxis Technologies

Les tests que je souhaite avoir

Si le destinataire est en ligne, le message est envoyé

Si le destinataire n'est pas en ligne, le message n'est pas envoyé

13© Copyright Pyxis Technologies

Destinataire en ligne → message envoyé

On veut donc pouvoir paramétrer notre Sender avec un XMPPService

Mais attention : en prod on veut toujours avoir celui de Google

14© Copyright Pyxis Technologies

Destinataire en ligne → message envoyé

On veut donc pouvoir paramétrer notre Sender

Mais attention : en prod on veut toujours avoir celui de Google

15© Copyright Pyxis Technologies

Destinataire en ligne → message envoyé

On veut donc pouvoir paramétrer notre Sender

Mais attention : en prod on veut toujours avoir celui de Google

16© Copyright Pyxis Technologies

Destinataire en ligne → message envoyé

On veut donc pouvoir paramétrer notre Sender

Mais attention : en prod on veut toujours avoir celui de Google

17© Copyright Pyxis Technologies

Destinataire en ligne → message envoyé

18© Copyright Pyxis Technologies

Destinataire hors ligne → pas d'envoi

19© Copyright Pyxis Technologies

Les tests documentent

20© Copyright Pyxis Technologies

Et on a toujours le choix de l'outil

21© Copyright Pyxis Technologies

...un poil plus de tuyauterie

22© Copyright Pyxis Technologies

:)

23© Copyright Pyxis Technologies

« Bridging the gap between Business and IT »Eric Laramée

24© Copyright Pyxis Technologies

Les tests donnent le courage de refactorer

25© Copyright Pyxis Technologies

Etc...

Extraire les paramètres ?

Injecter un builder ?

Primitive obsesion

Introduce Param ?

...

26© Copyright Pyxis Technologies

Merci

Question ?

top related