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

Unityにおける設計パターン

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for torisoup torisoup
February 19, 2021

 Unityにおける設計パターン

Avatar for torisoup

torisoup

February 19, 2021
Tweet

More Decks by torisoup

Other Decks in Technology

Transcript

  1. 自己紹介 •とりすーぷ • @toRisouP • VR系の開発してる • Microsoft MVP 2018~

    • Developer Technologies • 最近はVRChatしてます illustrations by kota(@kt_kkz)さん
  2. ダメなコードの例 •スパゲッティコード • オブジェクトとオブジェクトがどう関係するのかがわからない状態 • 影響範囲が謎でどこを触っていいかわからない状態 • ちょっとした機能変更にもすごく時間がかかる状態 •外部モジュールと一蓮托生した状態 •

    「生殺与奪の権を他人に握らせるな」状態 • 外部モジュール(ライブラリやフレームワーク)の機能に強く依存しすぎた結果、 外部モジュールの仕様変更に振り回されてしまうような状態
  3. ハイブリッドなやり方 C# C# C# C# C# C# C# C# C#

    C# レベル2で 構成された領域 レベル5で 構成された領域 依存
  4. 設計原則 •SOLID原則 • SRP、OCP、LSP、ISP、DIP •コンポーネントの凝縮性の原則 • REP、CCP、CRP •コンポーネントの結合性の原則 • ADP、SDP、SAP

    ←より大局的な視点での設計の話 (レベル3以上に必須) ←より大局的な視点での設計の話 (レベル3以上に必須)
  5. 2つの世界の両立 C# C# C# C# C# C# C# C# C#

    C# UnityEngineに べったりな世界 (レベル2) CAで構築された世界 (レベル5) 依存
  6. (補足)CAFU •CAFU: Clean Architecture for Unity • そっくりそのまま利用はオススメしません(断言) • 黎明期に提案されたCAのテンプレート

    • コンポーネント定義がちょっとやりすぎで煩雑 • 作者本人も「やりすぎた」と反省している • テンプレートそのまま使うのではなく、 開発規模にあったサイズのアーキテクチャを自分で考えるべき
  7. 参考資料 • 世界一わかりやすいClean Architecture • https://www.nuits.jp/entry/easiest-clean-architecture-2019-09 • Adaptive Code ~

    C#実践開発手法 第2版 • https://www.amazon.co.jp/dp/B07DJ2BL4Y/ • Clean Architecture 達人に学ぶソフトウェアの構造と設計 • https://asciidwango.jp/post/176293765750/clean-architecture