Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Happy Path, Sad Path
Search
Pierre de La Morinerie
September 30, 2015
Programming
2
260
Happy Path, Sad Path
A journey through warnings, errors, complexity and 🎄 at Captain Train.
Pierre de La Morinerie
September 30, 2015
Tweet
Share
More Decks by Pierre de La Morinerie
See All by Pierre de La Morinerie
Que choisir pour de l'UI : XIBs / Storyboards / Code
kemenaran
0
870
Fail better — Presenting errors in Cocoa
kemenaran
3
1.3k
Other Decks in Programming
See All in Programming
Let's Write a Train Tracking Algorithm
twocentstudios
0
220
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
400
ネイティブ製ガントチャートUIを作って学ぶUICollectionViewLayoutの威力
jrsaruo
0
110
半自動E2Eで手っ取り早くリグレッションテストを効率化しよう
beryu
6
2.4k
AIを活用したレシート読み取り機能の開発から得られた実践知 / AI Receipt Scan Practice
rockname
2
1.5k
Repenser les filtres API Platform: une nouvelle syntaxe
vinceamstoutz
2
150
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
120
大規模アプリにおけるXcode Previews実用化までの道のり
ikesyo
0
960
Playwrightはどのようにクロスブラウザをサポートしているのか
yotahada3
7
2.2k
AIエージェント時代における TypeScriptスキーマ駆動開発の新たな役割
bicstone
4
1.2k
Current States of Java Web Frameworks at JCConf 2025
kishida
0
520
dynamic!
moro
9
4.7k
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Statistics for Hackers
jakevdp
799
220k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Automating Front-end Workflow
addyosmani
1371
200k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
The Cost Of JavaScript in 2023
addyosmani
53
9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
The Invisible Side of Design
smashingmag
301
51k
GitHub's CSS Performance
jonrohan
1032
460k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Docker and Python
trallard
46
3.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
Transcript
None
A journey through warnings, errors and Happy Path, Sad Path
Captain Train Un site pour acheter des billets de train.
Super rapidement.
Dans toute l’Europe Captain Train
Captain Train Comment conserver la rapidité malgré la complexité ?
Happy Path – La recherche
Happy Path – La recherche
Happy Path – Le Panier
Happy Path – Le paiement
Happy Path – Le billet
Happy Path Simple.
Sad Path Tout ne se passe pas toujours aussi bien.
Sad Path – La réservation
Sad Path – La réservation
Sad Path – La réservation
Sad Path – La réservation
Sad Path – La réservation
Sad Path – La réservation
Sad Path – La réservation
Sad Path – Le Panier
Sad Path – Le Panier
Sad Path – Le Panier
Sad Path – Le paiement
Sad Path – Le Paiement
Sad Path – Les Billets
Sad Path – Les Billets
Sad Path – Les Billets
Sad Path – Les Billets
Sad Path – Les Billets
Sad Path – Les Billets
Sad Path – Les Billets
Sad Path – Les Billets
Sad Path – Les Billets
Sad Path – Les Billets
Happy Path - Sad Path Contraintes métier Gérer la complexité
Happy Path - Sad Path • Collecter les informations progressivement
Ce qu’on veut
Happy Path - Sad Path • Collecter les informations progressivement
• Prévenir les confusions fréquentes Ce qu’on veut
Happy Path - Sad Path • Collecter les informations progressivement
• Prévenir les confusions fréquentes • Informer en cas d’erreur Ce qu’on veut
Happy Path - Sad Path Ce qu’on pourrait faire
Happy Path - Sad Path Ce qu’on pourrait faire
Happy Path - Sad Path Ce qu’on veut vraiment Éviter
de faire déteindre le Sad Path sur le Happy Path
Happy Path - Sad Path Ce qu’on peut faire à
la place • Partir du cas optimiste
Happy Path - Sad Path Ce qu’on peut faire à
la place • Partir du cas optimiste • Rajouter des étapes seulement si nécessaire
Happy Path - Sad Path Ce qu’on peut faire à
la place • Partir du cas optimiste • Rajouter des étapes seulement si nécessaire • Contextualiser les messages
Happy Path - Sad Path Contextualiser les messages « Ce
train ne part pas de la gare demandée. »
Happy Path - Sad Path Contextualiser les messages « Ce
train ne part pas de la gare demandée. » « Ce train ne part pas de Paris, mais de Massy- Palaiseau, à 30km de Paris. »
Happy Path - Sad Path Contextualiser les messages « Pour
faire cette opération, contactez votre administrateur. »
Happy Path - Sad Path Contextualiser les messages « Pour
faire cette opération, contactez votre administrateur. » « Pour ajouter un passager, contactez Delphine ou Jean-Luc. »
Happy Path - Sad Path Quelques patterns • Chaîner les
dialogues avec des Promesses • Tests d’intégration • Tests utilisateurs
Happy Path - Sad Path Chaîner des dialogues avec des
promesses function addToCartClicked() { return luggagesDialog.prompt().then(() => { return birthdateDialog.prompt(); }).then(() => { return identificationDialog.prompt(); }).then(() => { return book(); }); }
Happy Path - Sad Path Chaîner des dialogues avec des
promesses function payButtonClicked() { return similarTicketDialog.prompt().then(() => { return duplicateTicketDialog.prompt(); }).then(() => { return invalidCouponDialog.prompt(); }).then(() => { return payDialog.prompt(); }); }
Happy Path - Sad Path Tests d’intégration visit('/pay'); click('Payer'); andThen(function()
{ assert.present('Le paiement a été refusé'); });
Happy Path - Sad Path Tests utilisateurs
Happy Path - Sad Path Tests utilisateur
Happy Path - Sad Path Tests utilisateur
Happy Path - Sad Path Tests utilisateur
Happy Path - Sad Path Tests utilisateur
Happy Path - Sad Path Tests utilisateur
Happy Path - Sad Path Bref • Maîtrisez vos contraintes
métier • Simple ≃ rapide
Pierre de La Morinerie Frontend Developer —
[email protected]
Merci ! Pierre de La Morinerie Frontend Developer —
[email protected]