Elm : Making impossible states impossible

Download Elm : Making impossible states impossible

Post on 07-Jan-2017

109 views

Category:

Software

1 download

Embed Size (px)

TRANSCRIPT

Prsentation PowerPoint

Elm et les tats impossiblesMon Model sur-mesure

Nicolas Umiastowski@n_umiastowskiMercredi 10 novembre 2016

Approche initialeEncoding the answered state of a question in the constructor does mean that you cant write code that doesnt check for whether a question is answered or not

13210

Question non rpondue pourrait avoir un answerId3

Update

Question non rpondue pourrait avoir un answerId4

Questions rponduesEst-ce que ce sont vraiment des questions rpondues ?

Question non rpondue pourrait avoir un answerId5

Question non rpondue pourrait avoir un answerId6

Je peux tester le message qui saffiche si au moins une question ne possde pas de answerIdJe veux pouvoir massurer que : si une question est rpondue, alors elle a un answerIdQuestion rpondue qui na pas de answerId : Possible

Elm- test

Making impossible states impossible :

Le Model est dfini de telle sorte que le compilateur renvoie une erreur si un tat impossible peut se produire

1re tentative de MISIEtape 1 : dfinir le Model

Distinguer questions rpondues et questions non rpondues.

Approche Impossible state

Jaffiche une seule liste de questions

Je vrifie quil n y a aucune question restante

1re tentative de MISIEtape 2 : vrifier le Model

Je peux avoir des questions rpondues sans rponse

Ou une mme question dans les 2 listes !!

2 questions avec le mme Id mais intituls diffrents

Nombre de questions rpondues > Total de questions Impossible

On peut valider quune question existante possde un answerId ou pas, mais on ne peut checker quelle a un tat rpondu ou non rpondu.

Elm-test

2me tentative de MISI

Modifier une rponse

Donner une rponse

Sil ny a que des questions rpondues

Alors on affiche le message correspondant

Nombre de questions rpondues > Total de questions Impossible

Toutes les questions existantes sont soit rpondues soit non rpondues, avec un tat correct

Elm-test

MISI1/ Type2/ Debug3/ TU

Test unitaireElm-Test

ConclusionToujours refactoriserAppliquer les bons patterns permet de progresserOn apprend en faisantAu dbut, on prend plus de tempsMais ensuite on est beaucoup plus rapide, et on vite les bugs !

Questions ?