How to start software design

How to start software design

A967476c5855d593710a9a580f6b2aed?s=128

Yuichi Maekawa

November 04, 2018
Tweet

Transcript

  1. 7.

    設計が多すぎる... • MVC • MVP • MVVM • CQRS •

    Flux • Redux • Clean Architecture • ドメイン駆動設計(DDD) ...
  2. 8.

    設計ではないもの • MVC • MVP • MVVM • CQRS •

    Flux • Redux • Clean Architecture • ドメイン駆動設計(DDD) ...
  3. 48.

    設計 • MVC • MVP • MVVM • CQRS •

    Flux • Redux • Clean Architecture ...
  4. 49.

    設計 • MVC • MVP • MVVM • CQRS •

    Flux • Redux • Clean Architecture ...
  5. 50.

    MV whateverアーキテクチャ • Model : アーキテクチャごとに若干異なる • View : ユーザーとのinterface、タッチイベントの発火元

    • whateverはこの2つを繋ぐ「何か」 • MVC, MVP, MVVMなどが一般的 • レイヤ間の呼び出しはobserverパターンが基本
  6. 54.

    MVP Taligent(Apple + IBMの合同会社)で使われ始めたMVCの派 生アーキテクチャ。Mike Potelの論文で認知された • Model, Viewは同じだが、新しくPresenterを導入 •

    データの流れがMVCより明確 • 複雑なUIの表示ロジックをPresenterが処理する Model Presenter View インターフェイス
  7. 57.

    MVVM • View -> ViewModel -> Modelの単一方向に依存 • Data Binding機構を持つのが特徴

    • データ変更すると表示が即時反映 Model ViewModel View Data Binding
  8. 59.

    設計 • MVC • MVP • MVVM • CQRS •

    Flux • Redux • Clean Architecture ...
  9. 64.

    設計 • MVC • MVP • MVVM • CQRS •

    Flux • Redux • Clean Architecture ...
  10. 70.

    設計 • MVC • MVP • MVVM • CQRS •

    Flux • Redux • Clean Architecture ...
  11. 72.

    Redux Redux三原則がある。 • Single source of truth • State in

    read-only • Changes are made with pure functions
  12. 77.

    設計 • MVC • MVP • MVVM • CQRS •

    Flux • Redux • Clean Architecture ...
  13. 86.

    僕が好きな設計 • 着想がシンプル • ルールが明確 • データの流れがすぐにわかる • 人が起こすエラーに強い •

    間違えたときにすぐ気が付ける(できれば自動で) • 書き方を強制できる
  14. 89.
  15. 90.

    Git Push Hackathonについて • ネイティブ限定のオンラインハッカソン ◦ https://github.com/CyberAgent/git-push-hackathon • テーマ:githubのフィードを読み込む簡単なアプリ •

    オンラインで完結したので地方学生も参加できた • 評価のポイントは ◦ 設計 ◦ 最新技術、言語仕様を正しく用いた実装 ◦ UI/UXへのこだわり(+α要素として評価)