Essential skills for the agile developer

14
1 Qualités essentielles pour un développeur agile A. Barralon [email protected] @a_barralon

Transcript of Essential skills for the agile developer

Page 1: Essential skills for the agile developer

1

Qualités essentielles pour un développeur agile

A. [email protected]

@a_barralon

Page 2: Essential skills for the agile developer

2

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

IonicAngular JS SparkGitHadoop…

Page 3: Essential skills for the agile developer

3

Essential skills for the agile developer

L’informatique est non prédictive.

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

Page 4: Essential skills for the agile developer

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

Page 5: Essential skills for the agile developer

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

Page 6: Essential skills for the agile developer

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

Page 7: Essential skills for the agile developer

7

Programmation par intention

Avantages :

+ cohésion

+ lisibilité

+ simple à débugguer

+ simple à réfactorer

+ simple à unit-tester

Page 8: Essential skills for the agile developer

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

Page 9: Essential skills for the agile developer

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”

Page 10: Essential skills for the agile developer

10

Séparer l’utilisation de la construction

Page 11: Essential skills for the agile developer

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

Page 12: Essential skills for the agile developer

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

Page 13: Essential skills for the agile developer

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.

Page 14: Essential skills for the agile developer

14

Merci !