SwiftUIを用いたCRUDシステムをDDDで設計し実装してみる話 by やまひろ

iOSDC Japan 2024
レギュラートーク(20分)

SwiftUIを用いたCRUDシステムをDDDで設計し実装してみる話

やまひろ yamahiro248
2

Flutterでは宣言的UIが利用され、SwiftUIもいわゆる宣言的UIとなっています。
ドメイン層を設計し、その上でUI層を考えて設計することが非常に重要です。
特に、画面のデザインに設計が引っ張られることで以下のような問題が発生することがあります。

・DDDのコアドメインにUIの知識が混入する
・ドメイン層の知識がUI側に漏れる
・ドメイン層の設計がうまくできていないため、拡張性が低い

これらのアンチパターンを避けるためには、しっかりとした設計と実装が必要です。
本セッションでは、よくあるCRUDの初歩的なシステムを例に、DDDの知識を基にした設計とその後の実装方法について解説します。
独自の視点や経験を交えながら、システム構築のアプローチを総合的に紹介します。

話の進め方としては以下の通りとなります。

  1. CRUDの要件定義
  2. DDDの基本概念
  3. 設計プロセス(ドメインモデル図とユースケース図の作成)
  4. ドメイン層の実装
  5. UI層の実装
  6. テストコードの作成
  7. まとめ

この流れを通じて、個別の知見を総合的にどう活かしてシステム構築を行うか、大きな視点でのアプローチを紹介します。
これにより宣言的UIを用いたシステム開発において、DDDの知識をどのように適用し、良い設計と実装を実現するかの手助けとなれれば幸いです。