Mafyou's blog - Proud to be human


by Mafyou

Agile Developer

Hello!

C’est un bouquin bien prenant: « Essential Skills for the Agile Developer: A Guide to Better Programming and Design« !

On y apprends pas mal de concepts et de savoirs sur le métier de développeur.

La première chose qui m’a beaucoup changé ma façon de voir, c’est la « Programmation par intention ».
Disons que l’on doit construire une chaise. Dans ce cas là, il nous faut du bois, construire les pieds, continuer avec le siège et enfin le dossier.
En développement on aura donc:

[code language= »csharp »]
AvoirDuBois();
ConstruireLesPiedsDeChaise();
ConstruireLeSiegeDeChaise();
ConstruireLeDossierDeChaise();
[/code]

On va donc du détail pour arriver à une chaise.

La programmation par intention, c’est tout à fait l’inverse:

[code language= »csharp »]
AvoirUneChaise();
private void AvoirUneChaise()
{
ConstruireLeDossierDeChaise();
ConstruireLeSiegeDeChaise();
ConstruireLesPiedsDeChaise();
}
private void ConstruireLeDossierDeChaise()
{
AvoirDuBois();
}
[/code]

Etc…
On pense par le plus gros pour finir par le petit. C’est l’inverse!
Vous verrez qu’on peut vraiment modifier notre façon de voir les choses en développement.
On apprend aussi qu’il faut penser par « Concept » et non par « Exemple ».
Reprenons l’exemple au-dessus:

[code language= »csharp »]
AvoirUneChaise();
[/code]

On pourrait le modifier en:

[code language= »csharp »]
AvoirUnMeuble();
void AvoirUnMeuble()
{
AvoirUneChaise();
AvoirUnCanape();
}
[/code]

Là, on a augmenter un niveau d’abstraction et donc de flexibilité 🙂
Enjoy reading!

.