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

クラウド電子カルテを支えるテクノロジーの光と闇

Jun Tomioka
October 15, 2018

 クラウド電子カルテを支えるテクノロジーの光と闇

Jun Tomioka

October 15, 2018
Tweet

More Decks by Jun Tomioka

Other Decks in Technology

Transcript

  1. 光 複雑な業務知識に立ち向かう • Scala ◦ 管理しやすく(OOP)、堅牢 (FP) • Functional Programming

    ◦ テスト・再利用が容易 ◦ 点数計算は巨大な関数 • Clean Architecture ...のエッセンスを拝借 ◦ 複雑な計算ルールを作用と分離
  2. 光 Entities • コアになるビジネスルールを表現 ◦ 会計計算・保険請求用の集計処理 • [FP] 純粋なコンポーネントのみで構成 ◦

    定数・不変オブジェクトのみ利用 ◦ IO, Future, Exceptionといった作用無し ◦ テスト・再利用・理解しやすい ▪ ここを一番厚くテストしたい
  3. 光 Use Cases • 永続化など含むアプリケーション要件 ◦ DBIO, Future が出てくるのはこの層 •

    [Scala] for 式による作用の直列処理 ◦ 作用を起こす場所を一箇所に • [Scala] Tagless Final による作用の抽象化 ◦ ...をできたら良いなと思っている ◦ この層もよりtestableに
  4. 光 sbt multi project builds • 依存関係を明記 ◦ UseCases層はEntities層 に依存

    ◦ Entities層はDBアクセスライブラリに非 依存 • 依存関係のないコードを読めなくなる。