【 大阪オフィス開設1周年勉強会 】第3回 Swiftのアツさを語る! 〜AKIBA.swift in Osaka〜 2017/4/28 #cm_osaka
- kongmingtrap
- 1816
- 4
- 0
- 4
MVCでは、ViewControllerの責務過多がよく言われます。 MVPについてお話するためにMVCのお話をしましょう #cm_osaka pic.twitter.com/7tMWt1HBvs
2017-04-28 19:44:22View管理をしたり、描画のためのデータソースを持ったり、描画ロジックを持ったり… これは責務過多です。ViewControllerに役割が集中し、1000行を超えていきます。 このパターンを緩和するために、MVPにおけるプレゼンターが入るとどうなるでしょう。 #cm_osaka pic.twitter.com/J6q43J4gqH
2017-04-28 19:45:53描画とドメイン層の間を取り持つ架け橋の役割を担います。 プレゼンターが間に挟まることでViewControllerとビジネスロジックの間に役割を分けるプレゼンターがあります。 #cm_osaka pic.twitter.com/aaDYcl7KAc
2017-04-28 19:46:38プレゼンターがあることで、画面遷移、View操作、管理、ビジネスロジックとの架け橋になる部分を担って、ViewControllerは必要なものをプレゼンターに求めるようになる。 #cm_osaka pic.twitter.com/JZ3H9ZZmAO
2017-04-28 19:48:26プレゼンターにインターフェースを介してVCを渡せばプレゼンターの支持を受けて処理が走る #cm_osaka pic.twitter.com/9logBs7dXJ
2017-04-28 19:48:33ViewController が実体。 プレゼンターは指示するだけ。 描画処理はリーダブルになる。 ViewControllerに書くと、通信結果を受けてこのビューにはこのプロパティを設定しこっちのViewには…という処理が積み重なってFatになっていく。 #cm_osaka pic.twitter.com/Bx9SDlP2d5
2017-04-28 19:50:11メソッドの書き方の問題ではないか、という指摘もあるかもしれないが、責務が別れてわかりやすくなった、という点が重要だと思います。 責務わけを行うことでやることが明確になってリーダブルになる。費用対効果が大きい。 #cm_osaka pic.twitter.com/hMvaraG76B
2017-04-28 19:51:26プレゼンターは低コストで導入できるのでオススメ。 描画処理の見通しが格段に上がり、責務が別れるのでビジネスロジックにより注力できるように。 是非明日からMVPを #cm_osaka pic.twitter.com/2r00y75tir
2017-04-28 19:52:08ソフトウェア設計はコンポーネントの明確な役割の共通認識を開発者間で持つための一手段である #cm_osaka pic.twitter.com/UagqxGBPjO
2017-04-28 19:53:12ではプレゼンターの役割は何でしょう 言葉で表すとエンジニアごとに認識が違ったりします。意図は同じだが違うものに見えるとか。 言葉は同じでも役割の実体が異なったり。 そういうことはよくある。 #cm_osaka pic.twitter.com/l7m2PmxX5x
2017-04-28 19:53:56それを回避するのに効果的なのは、僕達は、コードを書くことができる。役割が果たす前後を一緒に書いてみてみてみることができる。 こういう場合はどちらが受け持つのだろう、という話をしたりできる。 ぜひ、コードで語って欲しい こういう話が好きな人、ぜひ懇親会で! #cm_osaka
2017-04-28 19:55:15・クラスメソッドに入るとカンファレンスに会社の金で行ける MVAを探すには話し合い・その元ネタが大事 ・MVPはいいぞ コードで語り合うことが大事。設計書や仕様書だけじゃなくて! #cm_osaka pic.twitter.com/RkBUTmdjGD
2017-04-28 19:56:27try! swiftで話されていた方だが、後のiOS Meetupでこの人と話をした。 多くはMVPやMVVMで良いのではないか。 複雑ならVIPERやクリーンアーキテクチャなどを使えば良いのではないか。 #cm_osaka pic.twitter.com/0Fqd672t24
2017-04-28 19:57:39.@niwatako さんが息をはくようにリアルタイムツイートしているので、TOKYOからでも 📦が何を話しているのかわかる #cm_osaka
2017-04-28 19:58:29MVPもMVVMもやりたいことは同じ。ビジネスロジックを明確に分けたい、ViewControllerの責務過多を解消したい。 #cm_osaka
2017-04-28 19:58:41ViewModelというのがまだエンジニアに馴染みがないのでは Presenterは実際には表示ではなく表示の準備をしているので命名がしっくりこない #cm_osaka
2017-04-28 19:58:44AKIBA.swift、ぜひ着てください、来るだけじゃなくて登壇してください! そしたら1周年Tシャツ差し上げます!! #cm_osaka
2017-04-28 20:01:13今なら言える、クラスメソッドとSwiftの歴史〜開発現場の光と闇〜 @kongmingtrap さんから 今はバックエンドやってます。 #cm_osaka pic.twitter.com/3AEpaT7774
2017-04-28 20:03:57岡山出身です いろいろなところを転々としてまいりました #cm_osaka pic.twitter.com/495IAE2XXG
2017-04-28 20:04:46