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
エラーハンドリングを少しずつ改善していく / improving error handling...
Search
コドモン開発チーム
July 18, 2024
4
1.8k
エラーハンドリングを少しずつ改善していく / improving error handling little by little
コドモン開発チーム
July 18, 2024
Tweet
Share
More Decks by コドモン開発チーム
See All by コドモン開発チーム
XPってどんな感じ?コドモンでの導入経緯と現在地 / What is XP like? Background of introduction and current status in Codomon
codmoninc
2
390
GAS・関数地獄を脱出! TROCCO・dbt・BigQueryで ストレスフリーなデータ管理 / Stress-Free Data Management with TROCCO, dbt, and BigQuery
codmoninc
0
570
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築 / From EC2 to ECS: Migrating to Containers and Rebuilding a Massive Legacy PHP Application
codmoninc
0
480
コドモンの決済基盤のテストの紹介 / Introduction to the Payment Infrastructure Testing of Codmon
codmoninc
0
330
組織の変化とSREの役割進化 | 責務拡大にどう応えるか / Organizational Change and the Evolution of the SRE Role
codmoninc
0
60
コンテナイメージを複数のチームで扱うための、 ビルドフローの構築・運用 / Building and Managing a Container Image Workflow for Multiple Teams
codmoninc
0
58
業界に標準を提案し、業界と長くお付き合いするVertical SaaS / Vertical SaaS that Proposes Industry Standards and Builds Long-Term Relationships with the Industry.
codmoninc
0
580
「Be agile」でいるためにしていること / What we do to stay 'agile'
codmoninc
1
760
ペアプロに納得感がなかった話 / A story about not being convinced by pair programming
codmoninc
1
760
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Site-Speed That Sticks
csswizardry
4
380
Into the Great Unknown - MozCon
thekraken
35
1.6k
RailsConf 2023
tenderlove
29
1k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
Making Projects Easy
brettharned
116
6k
Thoughts on Productivity
jonyablonski
69
4.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
Transcript
2024年7月18日 上代洋平 エラーハンドリングを 少しずつ改善していく
2 経歴 2022年12月にコドモンに入社。コドモンでは既存機能のリプレイス や新規プロダクトの開発をサーバーサイドKotlinで行っています。 自己紹介 上代 洋平 かじろ ようへい
3 Mission
4 すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、保育・教育施設向けWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。
5 導入施設数推移(ICT) 8,000 5,200 1,500 全国導入数 18,000 施設 11,000 17,000
(2024年3月時点) 14,000 2021年4月 2020年4月 2019年4月 3,000 2018年4月 2017年4月 500 2016年4月 120 2022年2月 2024年3月 2023年4月
6 エラーハンドリングの改善を行っているのでその 話をします
7 CONFIDENTIAL - © 2022 CoDMON Inc. 7 用語の説明 •
LOGICAL FAILURE ◦ ドメイン内では成功とはみなされないが、まだそのドメインの範囲内に ある状況を指す。 • REAL EXCEPTIONS ◦ 技術的な問題であり、ドメインの一部ではないもの。
8 CONFIDENTIAL - © 2022 CoDMON Inc. 8 アーキテクチャ
9 CONFIDENTIAL - © 2022 CoDMON Inc. 9 アーキテクチャ
10 CONFIDENTIAL - © 2022 CoDMON Inc. 10 なぜRepository? •
入出力の部分はコードが制御できない外部起因のエラー が発生しやすい。 • LOGICAL FAILUREとREAL EXCEPTIONSを区別しない ので処理が煩雑になってしまっていた。
11 CONFIDENTIAL - © 2022 CoDMON Inc. 11 コード例
12 CONFIDENTIAL - © 2022 CoDMON Inc. 12 良い点/改善点 •
全てEitherで扱うのでルールとしてわかりやすい • コード量が増えやすい • LOGICAL FAILUREとREAL EXCEPTIONSを同じように 扱っているためハンドリングしたいものに集中しづらい
13 改善したい
14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 方針 •
Repositoryのみ改善をする • LOGICAL FAILUREはEitherで扱う • REAL EXCEPTIONSはthrowする → フレームワークで処理をする
15 CONFIDENTIAL - © 2022 CoDMON Inc. 15 改善後のコード例(REAL EXCEPTIONSのみ発生)
16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 改善後のコード例
17 CONFIDENTIAL - © 2022 CoDMON Inc. 17 改善後 •
すべてEitherで扱うのでルールとしてわかりやすい → エラーを区別するためルールとしては多少は複雑性が増した • コード量が増えやすい → エラーの型をチェックするコードなどを以前より減らせる
18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 改善後 •
LOGICAL FAILUREとREAL EXCEPTIONSを同じように 扱っているためハンドリングしたいものに集中しづらい → エラーを判別することによりドメインでハンドリングしたいもの(LOGICAL FAILURE)に集中できる
19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 結果 •
LOGICAL FAILUREとREAL EXCEPTIONSを区別して適 切にハンドリングするとコードの見通しが良くなる。
20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 参考 https://elizarov.medium.com/kotlin-and-exceptions-
8062f589d07
21 ちなみに
22 コドモン採用ページ 開発ブログ コドモンでは一緒に働きたい仲間を募集しています!
23 ご清聴ありがとうございました!
None