Slide 1

Slide 1 text

2024年7月18日 上代洋平 エラーハンドリングを 少しずつ改善していく

Slide 2

Slide 2 text

2 経歴 2022年12月にコドモンに入社。コドモンでは既存機能のリプレイス や新規プロダクトの開発をサーバーサイドKotlinで行っています。 自己紹介 上代 洋平 かじろ ようへい

Slide 3

Slide 3 text

3 Mission

Slide 4

Slide 4 text

4 すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、保育・教育施設向けWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。

Slide 5

Slide 5 text

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月

Slide 6

Slide 6 text

6 エラーハンドリングの改善を行っているのでその 話をします

Slide 7

Slide 7 text

7 CONFIDENTIAL - © 2022 CoDMON Inc. 7 用語の説明 ● LOGICAL FAILURE ○ ドメイン内では成功とはみなされないが、まだそのドメインの範囲内に ある状況を指す。 ● REAL EXCEPTIONS ○ 技術的な問題であり、ドメインの一部ではないもの。

Slide 8

Slide 8 text

8 CONFIDENTIAL - © 2022 CoDMON Inc. 8 アーキテクチャ

Slide 9

Slide 9 text

9 CONFIDENTIAL - © 2022 CoDMON Inc. 9 アーキテクチャ

Slide 10

Slide 10 text

10 CONFIDENTIAL - © 2022 CoDMON Inc. 10 なぜRepository? ● 入出力の部分はコードが制御できない外部起因のエラー が発生しやすい。 ● LOGICAL FAILUREとREAL EXCEPTIONSを区別しない ので処理が煩雑になってしまっていた。

Slide 11

Slide 11 text

11 CONFIDENTIAL - © 2022 CoDMON Inc. 11 コード例

Slide 12

Slide 12 text

12 CONFIDENTIAL - © 2022 CoDMON Inc. 12 良い点/改善点 ● 全てEitherで扱うのでルールとしてわかりやすい ● コード量が増えやすい ● LOGICAL FAILUREとREAL EXCEPTIONSを同じように 扱っているためハンドリングしたいものに集中しづらい

Slide 13

Slide 13 text

13 改善したい

Slide 14

Slide 14 text

14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 方針 ● Repositoryのみ改善をする ● LOGICAL FAILUREはEitherで扱う ● REAL EXCEPTIONSはthrowする → フレームワークで処理をする

Slide 15

Slide 15 text

15 CONFIDENTIAL - © 2022 CoDMON Inc. 15 改善後のコード例(REAL EXCEPTIONSのみ発生)

Slide 16

Slide 16 text

16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 改善後のコード例

Slide 17

Slide 17 text

17 CONFIDENTIAL - © 2022 CoDMON Inc. 17 改善後 ● すべてEitherで扱うのでルールとしてわかりやすい → エラーを区別するためルールとしては多少は複雑性が増した ● コード量が増えやすい → エラーの型をチェックするコードなどを以前より減らせる

Slide 18

Slide 18 text

18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 改善後 ● LOGICAL FAILUREとREAL EXCEPTIONSを同じように 扱っているためハンドリングしたいものに集中しづらい → エラーを判別することによりドメインでハンドリングしたいもの(LOGICAL FAILURE)に集中できる

Slide 19

Slide 19 text

19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 結果 ● LOGICAL FAILUREとREAL EXCEPTIONSを区別して適 切にハンドリングするとコードの見通しが良くなる。

Slide 20

Slide 20 text

20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 参考 https://elizarov.medium.com/kotlin-and-exceptions- 8062f589d07

Slide 21

Slide 21 text

21 ちなみに

Slide 22

Slide 22 text

22 コドモン採用ページ 開発ブログ コドモンでは一緒に働きたい仲間を募集しています!

Slide 23

Slide 23 text

23 ご清聴ありがとうございました!

Slide 24

Slide 24 text

No content