ビジネスロジックを「型」で表現するOOPのための関数型DDD by Yuito Sato

Object-Oriented Conference 2024
採択
2024/03/24 15:00〜
Track A(共2-201)
ロングセッション(40分)

ビジネスロジックを「型」で表現するOOPのための関数型DDD

Yuiiitoto Yuito Sato Yuiiitoto

発表資料
https://speakerdeck.com/yuitosato/functional-and-type-safe-ddd-for-oop

ビジネスの専門知識(ドメイン)を中心に据えたドメイン駆動設計に代数的データ型などの関数型のパラダイムを加えたよりタイプセーフな関数型DDDを紹介します。

本セッションではドメインモデリングによって発見したモデルやビジネスロジックをソフトウェアに反映する際により型を重視した設計を加えます。
型で表現する範囲が広がることでビジネスロジックをより明確にコードで表現できるようになります。
さらには型で表現されているためコンパイルフェーズで気付けるミスが増え、ソフトウェアの品質向上にもつながります。

関数型の考えをいれるといってもただ単にHaskellなどに代表される関数型言語を使ってドメイン駆動設計を行うことではありません。
関数型の知識を応用したタイプセーフな考え方やテクニックは小さく導入することが可能です。Javaなどの既存のオブジェクト指向の良さをそのままに明日からプロダクトションコードを改善する手法を紹介します。

  1. はじめに
    1-1. 関数型DDDとは?
    1-2. ビジネスロジックを型で表現できると何がいいの?
    1-3. オブジェクト指向と関数型
  2. DDDってなんだっけ?
    2-1. モデリングとアーキテクチャ
  3. 実践と3つのテクニック
    3-1. モデルの状態を代数的データ型で表現する
    3-2. モデルの状態遷移を型と全域関数で表現する
    3-3. ロジック内のDBアクセスを高階関数で表現する
  4. まとめ