Essential skills for the agile developer

Post on 14-Apr-2017

458 views 0 download

Transcript of Essential skills for the agile developer

1

Qualités essentielles pour un développeur agile

A. Barralona.barralon@oriions.com

@a_barralon

2

Essential skills for the agile developer :a guide to better programming and design

IonicAngular JS SparkGitHadoop…

3

Essential skills for the agile developer

L’informatique est non prédictive.

La technologie est un outil au service du développeur.

4

Essential skills for the agile developer

Le design et la complexité d’un système sont difficiles à cadrer en totalité en amont d’un projet.

Complexité simplifiée + Design minimaliste

5

Essential skills for the agile developer

Trim-tabs essentiels :

1. Programmation par intention

2. Séparer l’usage et la construction

3. Considérer les tests avant d’écrire le code

6

Programmation par intention

Découpe le problème en étape fonctionnelle (bullet points) :

1 classe == 1 responsabilité

• on prend une ‘commande’ à commiter

• on tokenize la commande

• on normalise les tokens

• on traite selon les cas de la taille des tokens

• on retourne le résultat

7

Programmation par intention

Avantages :

+ cohésion

+ lisibilité

+ simple à débugguer

+ simple à réfactorer

+ simple à unit-tester

8

Séparer l’utilisation de la construction

On sépare l’utilisation de l’instantiation.

• création d’une instance d’un Service

• on le délègue pour effectuer d’autres tâches

9

Séparer l’utilisation de la construction

Créateurs (:type) : WHAT something IS

Utilisateurs (:interface) : HOW something operates

“what you hide you can change”

10

Séparer l’utilisation de la construction

11

Définir les tests en amont Les tests et la qualité du code

“je ne peux pas tester ce code…”

• car il fait trop de chose entremêlées -> (problème de cohésion)

• car j’ai besoin d’une douzaine d’autre chose → couplage excessif

• car c’est du code copié dans pleins d’endroits et modifiés à certains points → redondance

12

Définir les tests en amont Les programmeurs grenouille

• Planification (l’action de faire un plan d’ensemble)

→ écrire les specs de test

• Plan (description des différentes étapes)

→ écrire les tests

• Suivre le plan (effectuer les étapes)

→ jouer les tests

13

Conclusion

Lire, c’est prendre des risques, parfois se mettre en danger. Non,

ce n’est pas un acte neutre et divertissant.

C’est un exercice de liberté, et nous en restons rarement indemnes.

Mais une chose est certaine, palpable, et cette expérience peut être

faite par chaque lecteur, nous agrandissons notre Moi, nous sortons

de nos prisons mentales, nous déverrouillons notre regard sur le

monde, dans l’acte de lire.

14

Merci !