Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
エラーハンドリングを少しずつ改善していく / improving error handling...
Search
コドモン開発チーム
PRO
July 18, 2024
2.1k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
エラーハンドリングを少しずつ改善していく / improving error handling little by little
コドモン開発チーム
PRO
July 18, 2024
More Decks by コドモン開発チーム
See All by コドモン開発チーム
夫婦で子育てするための育児標準化
codmoninc
PRO
0
150
関数型プログラミングに出会って考え方の幅が広がった話 / server_side_kotlin_meetup_20_functional_fujimura
codmoninc
PRO
0
3
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
660
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
400
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
620
「正解の仕様」を求めて、決断する
codmoninc
PRO
0
97
AI時代のPHP開発にASTクエリツール で コードベースの地図を作る / ast-query-tool-php-codebase-map
codmoninc
PRO
0
460
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
PRO
0
460
コドモンに入社してAI活用により、 設計がより重要だと感じた背景
codmoninc
PRO
0
150
Featured
See All Featured
Thoughts on Productivity
jonyablonski
76
5.4k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
610
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
The SEO Collaboration Effect
kristinabergwall1
1
590
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Abbi's Birthday
coloredviolet
4
10k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
400
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
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