/note/tech

「複雑な業務ロジック」が読みづらいのは「記述が分散」しているから

要約:

■ 1. 移行前のシステムが抱える問題

  • 根本原因: 業務ロジック自体は単純であるにもかかわらず、全体の見通しが悪く、運用が困難な状態にあった。
  • 複雑さの正体: 問題の核心は、業務ロジックそのものではなく、「前処理」の複雑さである。
  • 処理の分散: レガシーシステムとの連携に伴う「値の加工」や「区分値の変換」といった処理が、複数の層に分散して記述されていた。
  • 結果の予測困難性: この処理の分散が、「入力に対する結果が予測しづらい」システムという状況を生み出していた。

■ 2. 移行時の対処と成果

  • 構成の再整理: 一連の処理を整理し、「業務ロジック(ドメインロジック)」と「前処理(モデル変換装置/腐敗防止層)」の二層構造に再構成した。
  • 可読性の向上: 業務ロジックで使用する値に関する処理が「モデル変換装置」に集約された結果、関連処理をシステム全体から探し出す手間がなくなり、可読性が大幅に向上した。
  • コード量の削減: 全体的なコード量が驚くほど削減された。

■ 3. 移行作業における課題と考察

  • 心理的抵抗: DBやSQLに慣れた開発者にとっては、「データの近くで加工する方が効率的」という感覚があり、処理の分散を避けるための徹底的な集約作業に心理的抵抗があった。
  • コード量の逆転: 出来上がったシステムでは、「モデル変換装置」のコード量が「業務ロジック」のコード量を上回った。
  • 本質的な複雑さの可視化: このコード量の差は、「データを整える部分」にこそ真の複雑さがあることを示唆している。最も重要な業務ロジックが簡潔に記述されているという結果は、慣れ親しんだシステム設計とは異なるため、違和感として感じられた。