Mvcのすすめ

738 views
689 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
738
On SlideShare
0
From Embeds
0
Number of Embeds
145
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mvcのすすめ

  1. 1. MVCのすすめ @akuraru
  2. 2. 今回の目的• バグを減らしたい• テストがしたい• テストの仕方がわからない• テストしやすい構造で作る
  3. 3. アクティビティ レイアウト 画面
  4. 4. ありがちのこと• レイアウトを作る• とりあえずアクティビティに実装する• さらにアクティビティに実装する• できたバンザイ• MVCなにそれ!?
  5. 5. テストできない • 操作→情報処理→状態変化→表示テストできる • 情報処理 • 情報処理→状態変化
  6. 6. アクティビティ レイアウト 画面
  7. 7. ←テストできるモデル アクティビティ レイアウト 画面
  8. 8. MVC• Model-View-Controllerの略• モデルからプレゼンテーションの分離• ビューとコントローラーの分離
  9. 9. モデルからプレゼンテーションの分離テストしやすい部分 とテストしにくい部分
  10. 10. テストしやすい部分• 単純な変換 (文字列処理とか)• DBアクセス• 状態変化
  11. 11. テストしにくい部分• 見た目• ボタンを押す• 画面遷移• 機種依存
  12. 12. ビューとコントローラーの分離 見た目 と 操作
  13. 13. 見た目• ボタン• 画像• テキスト• その他いろいろ
  14. 14. 操作• テキストを入力→文字列処理• ボタンを押す→状態が変わる• セーブボタン→DBアクセス
  15. 15. テストしやすいテストしにくい 操作 見た目
  16. 16. Modelプレゼンテーション Controller View
  17. 17. Model 操作 状態参照 通知プレゼンテーション Controller 変更 View 入力・操作 表示 ユーザー
  18. 18. 今回はViewとControllerの分離を がんばらない
  19. 19. 分離してもテストしやすくならないし
  20. 20. Model 操作 状態参照 通知プレゼンテーション Controller 変更 View 入力・操作 表示 ユーザー
  21. 21. Model 操作 状態参照 プレゼンテーション入力・操作 表示 ユーザー
  22. 22. モデル アクティビティ レイアウト 画面
  23. 23. 今まで インテント インテントアクティビティ アクティビティ アクティビティレイアウト レイアウト レイアウト
  24. 24. DB 一時保存 インテント インテントアクティビティ アクティビティ アクティビティレイアウト レイアウト レイアウト
  25. 25. DB 一時保存 テストできる ↑ インテント インテントアクティビティ ↓ アクティビティ アクティビティ テストできないレイアウト レイアウト レイアウト
  26. 26. DB 一時保存 モデル モデル モデル インテント インテントアクティビティ アクティビティ アクティビティレイアウト レイアウト レイアウト
  27. 27. Model• DBアクセス• 状態を持つ• 情報処理• CUIでもGUIでも同じものを使えるようにしようと書いてあるけど, テストしやすければよい
  28. 28. プレゼンテーション• 操作• →モデルに通知• →必要に応じて遷移• →モデルに状態に応じて再描画
  29. 29. まとめ• アクティビティにすべてを書かない• テストしやすい構造を意識する• できたらViewとControllerを分けて考え る

×