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.9k
エラーハンドリングを少しずつ改善していく / improving error handling little by little
コドモン開発チーム
July 18, 2024
Tweet
Share
More Decks by コドモン開発チーム
See All by コドモン開発チーム
コードに語らせよう 自己ドキュメント化が内包する楽しさについて / Let the Code Speak: The Joy of Self-Documenting Code
codmoninc
0
6
コードリーディング入門! 先人たちに思いを馳せれば プログラミングがもっと楽しくなる / Introduction to Code Reading!
codmoninc
1
120
子育てインフラの構築と子どもを取り巻く市場の拡大に向けて / Building child-rearing infrastructure and expanding the children's market
codmoninc
0
380
伸び代しかない業界で、何をどうつくる?PdM視点で語るプロダクト開発の裏側 / A PdM's Inside Story of Product Development
codmoninc
0
340
技術で挑む保育現場の課題解決 〜コドモンエンジニアの開発スタイルと取り組み〜 / Tackling Challenges in Childcare Settings with Technology
codmoninc
0
340
ドメイン駆動設計とXPで支える子どもの未来〜保育の暗黙知を活かすシステム開発〜 / Empowering Children's Future Through DDD and XP
codmoninc
0
340
現場のいちメンバーの視点からの技術的負債への向き合い方 / My approach to technical debt as an individual team member
codmoninc
0
300
コドモンPdM紹介資料
codmoninc
0
68
「石の上にも三年」 の石の上での三ヶ月(話題のペアプログラミングを4社が徹底的に語る!) / Three months on a rock.
codmoninc
3
140
Featured
See All Featured
Building an army of robots
kneath
306
45k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
660
How to train your dragon (web standard)
notwaldorf
92
6k
Being A Developer After 40
akosma
91
590k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
1
79
YesSQL, Process and Tooling at Scale
rocio
172
14k
Raft: Consensus for Rubyists
vanstee
137
7k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
106
19k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Bash Introduction
62gerente
614
210k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
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