La conception émergente

L'art de coder sans savoir où l'on va ?

Fabricant français de
chaudières écologiques

Conception ?

Activité de l’esprit en vue de la compréhension ou de l’élaboration de quelque chose.

Jouons !

https://azeau.com/atbdx2019/

- joueurs
Quand je reçois la balle, je l'envoie à Bob
Quand je reçois la balle, je l'envoie au robot qui est en face de moi
Quand je reçois la balle, je l'envoie à Claire
Quand je reçois la balle, je l'envoie au robot qui est à droite de moi
Quand je reçois la balle, je l'envoie à David
Quand je reçois la balle, je l'envoie au robot qui est à gauche de moi
Quand je reçois la balle, je l'envoie à Eve
Quand je reçois la balle, je l'envoie au robot qui est à droite de moi
Quand je reçois la balle, je l'envoie à Fred
Quand je reçois la balle, je l'envoie au robot qui est à droite de moi
Quand je reçois la balle, je l'envoie à Alice
Quand je reçois la balle, je l'envoie au robot qui est à droite de moi

Meilleur score possible : 11

Pire score possible : 24

Que peut-on tirer de tout ça ?

Démarrer ?

Quand je reçois la balle, je l'envoie à Bob
--
Quand je reçois la balle, je l'envoie au robot qui est en face de moi
--
https://www.xkcd.com/974/
https://docs.spring.io/spring/docs/2.5.x/javadoc-api/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.html

YAGNI

You Ain't Gonna Need It

"Decide as late as possible"

http://www.xm1math.net/algobox/
http://hackles.org/cgi-bin/archives.pl?request=37
Quand je reçois la balle, je l'envoie au robot qui est à droite de moi
David Eve Fred
-- -- --

"Three strikes and you refactor"

17 points

14 points

"Simple Design"

  1. Tous les tests passent.
  2. Exprime toutes les intentions.
  3. Pas de duplication.
  4. Nombre minimal d'éléments.

11 points

Deviner le futur ?

Quand je reçois la balle, je l'envoie au robot qui est à droite de moi
--
Quand je reçois la balle, je l'envoie au robot qui est à gauche de moi
--

"Dessin à l'équerre"

Métaphore

"Domain Driven Design"

http://dddcommunity.org/

"Clean Architecture"

"Abstraction Metalinguistique"

https://mitpress.mit.edu/sites/default/files/sicp/

Language Oriented Programming

"What's Not Going to Change in the Next 10 Years ?"

TL;DL

  1. Coder des comportements spécifiques
  2. Simplifier pour révéler les intentions
  3. Découvrir la métaphore

"Try treating programming as a learning activity that throws off running code as a byproduct"

1999-2019

https://softwareball.mnt.space/