refactoring piloté par les tests

26
© Copyright Pyxis Technologies Agile Days 2010 Paris Refactoring guidé par les tests

Upload: eric-mignot

Post on 26-Dec-2014

1.628 views

Category:

Self Improvement


0 download

DESCRIPTION

Agile Days Paris 2010

TRANSCRIPT

Page 1: Refactoring piloté par les tests

© Copyright Pyxis Technologies

Agile Days 2010Paris

Refactoring guidé par les tests

Page 2: Refactoring piloté par les tests

2© Copyright Pyxis Technologies

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

Page 3: Refactoring piloté par les tests

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

Page 4: Refactoring piloté par les tests

4© Copyright Pyxis Technologies

Ok, Go !

Page 5: Refactoring piloté par les tests

5© Copyright Pyxis Technologies

Snippet

Page 6: Refactoring piloté par les tests

6© Copyright Pyxis Technologies

Cool… je copie / colle... :)

Page 7: Refactoring piloté par les tests

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

Page 8: Refactoring piloté par les tests

8© Copyright Pyxis Technologies

Le sentiment qui domine en moi ?

La peur

Page 9: Refactoring piloté par les tests

9© Copyright Pyxis Technologies

Quelle fonctionnalité ?

Envoi un message si le destinataire est en ligne

Page 10: Refactoring piloté par les tests

10© Copyright Pyxis Technologies

Quelles dépendances ?

JID

Message

MessageBuilder

XMPPServiceFactory

Presence

SendResponse

Page 11: Refactoring piloté par les tests

11© Copyright Pyxis Technologies

Fonctionnalité & Dépendances

Envoi un message si le destinataire est en ligne

JID

Message

MessageBuilder

XMPPServiceFactory

Presence

SendResponse

Page 12: Refactoring piloté par les tests

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é

Page 13: Refactoring piloté par les tests

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

Page 14: Refactoring piloté par les tests

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

Page 15: Refactoring piloté par les tests

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

Page 16: Refactoring piloté par les tests

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

Page 17: Refactoring piloté par les tests

17© Copyright Pyxis Technologies

Destinataire en ligne → message envoyé

Page 18: Refactoring piloté par les tests

18© Copyright Pyxis Technologies

Destinataire hors ligne → pas d'envoi

Page 19: Refactoring piloté par les tests

19© Copyright Pyxis Technologies

Les tests documentent

Page 20: Refactoring piloté par les tests

20© Copyright Pyxis Technologies

Et on a toujours le choix de l'outil

Page 21: Refactoring piloté par les tests

21© Copyright Pyxis Technologies

...un poil plus de tuyauterie

Page 22: Refactoring piloté par les tests

22© Copyright Pyxis Technologies

:)

Page 23: Refactoring piloté par les tests

23© Copyright Pyxis Technologies

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

Page 24: Refactoring piloté par les tests

24© Copyright Pyxis Technologies

Les tests donnent le courage de refactorer

Page 25: Refactoring piloté par les tests

25© Copyright Pyxis Technologies

Etc...

Extraire les paramètres ?

Injecter un builder ?

Primitive obsesion

Introduce Param ?

...

Page 26: Refactoring piloté par les tests

26© Copyright Pyxis Technologies

Merci

Question ?