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

秘伝のタレ.pdf

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for SatoshiN SatoshiN
May 28, 2019
27

 秘伝のタレ.pdf

Avatar for SatoshiN

SatoshiN

May 28, 2019
Tweet

Transcript

  1. まずは秘伝のタレの特徴を抽出する • 非同期処理の完了通知にNSNotificationCenter • → 可読性低下・複雑性循環 • 一つのViewController や ◯◯Manager

    に複数の責務 • → 責務肥大化 • 同じ責務の処理がバラバラに管理 • → 一貫性のなさ • MethodSwizzlingなど黒魔術の利用 • → 標準的な方法からの逸脱
  2. ただし状況によっては最適なケースもある • 非同期処理の完了通知にNSNotificationCenter • → 小規模で設計がMVCなら有り • ViewController や ◯◯Manager

    に複数の責務 • → 小規模・納期短い場合 なら有り • 同じ責務の処理がバラバラに管理 • → 逆に極端な再利用を考えると実装スピード落ちる • MethodSwizzlingなど黒魔術の利用 • → 黒魔術使ったほうがいい場合なら有り
  3. 設計選択の簡易フローチャート (フルスクラッチ版) 目的達成を 最優先で 最低限責務 (例 MVC) 小規模責務 (例 MVP)

    中規模責務 (例 VIPER) 大規模責務 (例Clean Architecture) 納期の余裕 案件の規模 継続開発見込み 納期の余裕 ネガティブ ポジティブ
  4. 秘伝のタレを紐解く・改善する • 非同期処理の完了通知にNSNotificationCenter • → 可読性低下・複雑性循環 • → 静的解析ツールをビルド毎に走らせる •

    → NSNotificationCenter による完了通知はMVC向きなの で方法を変更。Delegateパターンや closure, Promiseパ ターン, async / await を検討し利用する。
  5. 秘伝のタレを紐解く・改善する • ViewController や ◯◯Manager に複数の責務 • → 責務肥大化 •

    同じ責務の処理がバラバラに管理 • → 一貫性のなさ • → 静的解析ツールをビルド毎に走らせる • → Clean Architectureを採用。設計レベルで責務を分ける ことで実装者の関心を出来る限り責務分けから離す。設計に 一貫性をもたせる。