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
280
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Happy Path, Sad Path
A journey through warnings, errors, complexity and 🎄 at Captain Train.
Pierre de La Morinerie
September 30, 2015
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
930
Fail better — Presenting errors in Cocoa
kemenaran
3
1.3k
Other Decks in Programming
See All in Programming
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
150
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
230
共通化で考えるべきは、実装より公開する型だった
codeegg
0
270
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
140
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
410
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
350
AIが無かった頃の素敵な出会いの話
codmoninc
1
190
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.6k
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
9.3k
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.6k
初めてのKubernetes 本番運用でハマった話
oku053
0
130
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
エンジニアに許された特別な時間の終わり
watany
108
250k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
370
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Statistics for Hackers
jakevdp
799
230k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Design in an AI World
tapps
1
260
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
330
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
410
Why Our Code Smells
bkeepers
PRO
340
58k
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]