Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
呼び出し順で、 売上金額を回収できなくした話
Search
Hayato Nakamura
May 22, 2024
0
78
呼び出し順で、 売上金額を回収できなくした話
Hayato Nakamura
May 22, 2024
Tweet
Share
More Decks by Hayato Nakamura
See All by Hayato Nakamura
定時実行の設定が難しいから、 仕組みで解決をしている話
chikin14niwa
0
110
N+1はダメなのか? システムを落としたあの日より
chikin14niwa
0
33
重要だけど、 よく忘れる仕様との付き合い方
chikin14niwa
0
96
Sessionの衝突から学んだPHPのSession作成方法 @CakeJP 2023/12/13 エンジニア小話会 PHPを語り合おう
chikin14niwa
0
390
Featured
See All Featured
Done Done
chrislema
186
16k
Rails Girls Zürich Keynote
gr2m
95
14k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Context Engineering - Making Every Token Count
addyosmani
9
460
The Pragmatic Product Professional
lauravandoore
37
7.1k
Thoughts on Productivity
jonyablonski
73
5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
A designer walks into a library…
pauljervisheath
210
24k
RailsConf 2023
tenderlove
30
1.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Transcript
© Cake.jp Co.Ltd. All Right Reserved.|Confidential 呼び出し順で、 売上金額を回収できなくした話
中村 隼人
2 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 自己紹介 • 名前
◦ 中村 隼人 • 業務 ◦ バックエンドエンジニア(PHP/Kotlin/TypeScript) • おすすめ🍰 ◦ 子どもが野菜を食べてくれる ◦ 大人が食べてもおいしい
3 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 特注商品の発注システムの開発 リクエスト=即契約かつキャンセル不可のAPIの呼び出し後に、 お客様から注文キャンセルが可能な状態を作った。
発生事象
4 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 設計→デザイン修正時にAPI呼び出し結果の情報が必要になり、 不用意に呼び出し回数を追加した。 原因
5 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 元の設計 お客様 Cake.jp
外部API サーバ 注文 注文一覧ページ 仮予約 注文リスト 注文確定 注文確定 注文結果通知
6 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 失敗したときの実装 お客様 Cake.jp
外部API サーバ 注文 注文一覧ページ 仮予約 注文リスト 注文確定 注文確定 注文結果通知 注文確定 注文結果通知
7 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 失敗したときの実装 お客様 Cake.jp
外部API サーバ 注文 注文一覧ページ 仮予約 注文リスト 注文確定 注文確定 注文結果通知 注文確定 注文結果通知 ここまでは キャンセル可能 だった ここで 課金だった
8 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 修正したときの実装 お客様 Cake.jp
外部API サーバ 注文 注文一覧ページ 仮予約 注文リスト 注文確定 注文確定 注文結果通知 注文確定 注文結果通知 キャンセル不可 にした
9 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 気付けなかった理由 お客様 Cake.jp
外部API サーバ 注文 注文一覧ページ 仮予約 注文リスト 注文確定 注文確定 注文結果通知 注文確定 注文結果通知 ・LINEなどで共有されるとLINEからのア クセスがあることを失念していた。 ・注文一覧ページアクセス=注文確定と いうユーザ行動を疑ってなかった。 注文確定自体は下で行 われるため、課金タイミ ングのズレが実感とず れた。
10 © Cake.jp Co.Ltd. All Right Reserved.|Confidential • 課金タイミングの確認はまじで大事。 ◦
特に2種類以上のステータスを管理の場合は、見える形で管理するの が望ましい。 • LINEなどのOGP取得系はリンクの共有だけでアクセスが発生する。 ◦ アクセスに依存した処理が発生する場合は、そのアクセスがユーザの 意思かどうかを確認できることが望ましい。 - まとめ -