Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エラーハンドリングを少しずつ改善していく / improving error handling...

エラーハンドリングを少しずつ改善していく / improving error handling little by little

More Decks by コドモン開発チーム

Transcript

  1. 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月
  2. 7 CONFIDENTIAL - © 2022 CoDMON Inc. 7 用語の説明 •

    LOGICAL FAILURE ◦ ドメイン内では成功とはみなされないが、まだそのドメインの範囲内に ある状況を指す。 • REAL EXCEPTIONS ◦ 技術的な問題であり、ドメインの一部ではないもの。
  3. 10 CONFIDENTIAL - © 2022 CoDMON Inc. 10 なぜRepository? •

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

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

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

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

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

    LOGICAL FAILUREとREAL EXCEPTIONSを区別して適 切にハンドリングするとコードの見通しが良くなる。