探検
MVVMについて語ろう
■ このスレッドは過去ログ倉庫に格納されています
2012/06/06(水) 11:03:33.21
WPF/Silverlight/WinRT開発の必須技術、MVVMについて語ろうではないか!
712デフォルトの名無しさん
2015/10/21(水) 22:31:30.80ID:4/KXy1nx WPF MVVMでアプリ作ってる人いるんだろうかと思えるくらい過疎っぷりだな
ほんと情報少なくて困ってる
ほんと情報少なくて困ってる
713デフォルトの名無しさん
2015/10/22(木) 01:36:32.77ID:5QLmtDbA こんなスレあったのか。今まで気が付かなかった。
MVVMは机上の空論っていうか筋が悪いの一言に尽きると思う。
これは過去にオブジェクト指向が攻撃されたような批判者の理解不足に基づく誤解では必ずしもない。
MVVMは机上の空論っていうか筋が悪いの一言に尽きると思う。
これは過去にオブジェクト指向が攻撃されたような批判者の理解不足に基づく誤解では必ずしもない。
714デフォルトの名無しさん
2015/10/22(木) 11:01:27.71ID:T+i/NslY とオブジェクト指向の時にも同じようなことを言っていた人はいた。
715デフォルトの名無しさん
2015/10/22(木) 12:13:21.98ID:dfQe7r4R716デフォルトの名無しさん
2015/10/22(木) 13:13:45.09ID:522gqyPw >>714
オブジェクト指向は筋が悪かったからな
オブジェクト指向は筋が悪かったからな
717デフォルトの名無しさん
2016/01/20(水) 23:45:57.28ID:xrqpD1Un 結局どんな設計がいいの?
Rxに傾倒したけど、上手く使いこなせてない
Rxに傾倒したけど、上手く使いこなせてない
718デフォルトの名無しさん
2016/05/01(日) 15:54:23.24ID:tKi6j9CT 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
・
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
・
719デフォルトの名無しさん
2016/05/01(日) 22:27:00.95ID:VrD9Va1p720デフォルトの名無しさん
2016/05/03(火) 11:18:03.92ID:uB7yk5jG fluxのデータフロー見てたらApache Strutsを再発明したかったのかなって思た
721デフォルトの名無しさん
2016/05/10(火) 17:20:07.82ID:sgC64ZMu MVVMって保守性が悪いよね。
WPF自体がそういう傾向が強いけど、MVVM使うと輪を掛けてそうなる。
他人が見て、後で自分が見て、ここのこの機能はどうやって実現されてるのか、
ここの仕様を変えるにはどこをいじればいいの、理解するのに時間が掛かり過ぎる。
MVVMで保守性が高くなるんだ!って喧伝してる人がいるのは知ってるけど、
正直裸の王様を褒めてるようにしか思えない。
WPF自体がそういう傾向が強いけど、MVVM使うと輪を掛けてそうなる。
他人が見て、後で自分が見て、ここのこの機能はどうやって実現されてるのか、
ここの仕様を変えるにはどこをいじればいいの、理解するのに時間が掛かり過ぎる。
MVVMで保守性が高くなるんだ!って喧伝してる人がいるのは知ってるけど、
正直裸の王様を褒めてるようにしか思えない。
722デフォルトの名無しさん
2016/05/10(火) 20:43:19.06ID:OBekjSgo 結局正解はなくて最適解があるだけなんだけどさ
よくある失敗はMVC、それも頭でっかちなコントローラーをVMに置き換えているだけパターン
この場合ビューモデルが主役で、テンプレートエンジンのビューと1:1の対となる入れ物の箱モデル
を量産することになる
ちょこっとイベントハンドラーをコードビハインドに書いたら、あとは全部ビューモデルにお任せ
という中央集権国家が誕生、疎結合どこいったって話だな
よくある失敗はMVC、それも頭でっかちなコントローラーをVMに置き換えているだけパターン
この場合ビューモデルが主役で、テンプレートエンジンのビューと1:1の対となる入れ物の箱モデル
を量産することになる
ちょこっとイベントハンドラーをコードビハインドに書いたら、あとは全部ビューモデルにお任せ
という中央集権国家が誕生、疎結合どこいったって話だな
723デフォルトの名無しさん
2016/05/10(火) 21:04:44.88ID:Urp5/7iJ >>721
>他人が見て、後で自分が見て、ここのこの機能はどうやって実現されてるのか、
>ここの仕様を変えるにはどこをいじればいいの、理解するのに時間が掛かり過ぎる。
これって単に慣れてないからってだけじゃなくて?
>他人が見て、後で自分が見て、ここのこの機能はどうやって実現されてるのか、
>ここの仕様を変えるにはどこをいじればいいの、理解するのに時間が掛かり過ぎる。
これって単に慣れてないからってだけじゃなくて?
724デフォルトの名無しさん
2016/05/10(火) 21:24:17.05ID:YLufBM4s 昔のようなデバッグして追いづらいってのはあるな。
725デフォルトの名無しさん
2016/05/11(水) 11:26:55.39ID:sA9FQTwa やっぱりrails系は偉大だったってことかなー。
どこにどんなコードを置くのかフレームワークとして強制するって大事だね。
iOSとかUIKitってだけだから特にファイル構成に対する強制がなくて悩む。
どこにどんなコードを置くのかフレームワークとして強制するって大事だね。
iOSとかUIKitってだけだから特にファイル構成に対する強制がなくて悩む。
726デフォルトの名無しさん
2016/11/25(金) 20:31:02.28ID:JXCOPEY3 お前らがMVVM頑張っても
画面設計者がMVVM理解者とは限らないから
どこかは破綻するんやで
画面設計者がMVVM理解者とは限らないから
どこかは破綻するんやで
727デフォルトの名無しさん
2016/12/15(木) 23:39:13.49ID:KILwFG0x MV)o¥o(VM
728デフォルトの名無しさん
2017/03/23(木) 17:58:48.49ID:aO3Y1mks データを格納したdatatableをdatagridにバインドして表示させてます。
この場合、datatableはVMですか?Vですか?
この場合、datatableはVMですか?Vですか?
729デフォルトの名無しさん
2017/03/23(木) 23:57:20.04ID:pns5gc7N 他のフレームワークに比べてMVVMが有用なケースって、WPF以外だとどんなのがありますか?
730デフォルトの名無しさん
2017/03/31(金) 23:28:02.62ID:Cc537bij731デフォルトの名無しさん
2017/04/21(金) 04:30:27.44ID:H6APCPmE UWPみたいな大きい画面から小さい画面までサポートする奴。
UIとロジック分けられないと死ねる。
UIとロジック分けられないと死ねる。
732デフォルトの名無しさん
2017/05/11(木) 22:40:49.29ID:NjKe635i modelからViewModelに通信の結果を返すときに、
Rxとか使わずに、interfaceを渡してコールバックを返すようにするのは何かマズいんでしょうか
Rxとか使わずに、interfaceを渡してコールバックを返すようにするのは何かマズいんでしょうか
733デフォルトの名無しさん
2017/05/11(木) 23:10:02.50ID:w+/nr1Tg Rxも結局インターフェースだしいいんじゃ?
734デフォルトの名無しさん
2017/05/11(木) 23:55:27.09ID:NjKe635i modelは状態の公開と戻り値のないメソッドの提供のみするそうですが、
状態の公開っていうのは要はpublicなfieldってことなんでしょうか
getterで提供したらなんで駄目なんでしょうか
c#のことはよくわかりませんandroid javaを想定しています
状態の公開っていうのは要はpublicなfieldってことなんでしょうか
getterで提供したらなんで駄目なんでしょうか
c#のことはよくわかりませんandroid javaを想定しています
735デフォルトの名無しさん
2017/05/12(金) 11:29:50.90ID:WPNdofPW >>734
メソッドの戻り値をvoidにする、setterを提供しないのはMVVM由来ではなく、非同期な作りをしたい場合に起因します。
これは非同期な作りの場合、メソッドを呼び出しても直ちに状態が変更されるとは限らないから。
なので、状態の変更が完了した時点でMが通知し、受信側がgetterを介して状態を取得することを推奨しているに過ぎない。
逆に同期的な呼び出ししかしないのであれば、setterやメソッドの戻り値も好きにすればいいと思います。
メソッドの戻り値をvoidにする、setterを提供しないのはMVVM由来ではなく、非同期な作りをしたい場合に起因します。
これは非同期な作りの場合、メソッドを呼び出しても直ちに状態が変更されるとは限らないから。
なので、状態の変更が完了した時点でMが通知し、受信側がgetterを介して状態を取得することを推奨しているに過ぎない。
逆に同期的な呼び出ししかしないのであれば、setterやメソッドの戻り値も好きにすればいいと思います。
736デフォルトの名無しさん
2017/05/12(金) 12:01:49.68ID:efiy+Fg+ がや氏の戻り値返すなとかはCQRSやReactみたいに処理の流れを固定しろってのが本質と思うが本人もアーキによって返しますよとかいってるからじゃああの煽りはなんだったの感もありよくわかんね
737デフォルトの名無しさん
2017/05/12(金) 18:50:06.13ID:NqFIOOZC 本人の中では色々な蓄積もあってその上で言ってんだろうけど、間を飛ばすから外から見たらよくわからん事になってるという印象
738デフォルトの名無しさん
2017/05/12(金) 19:52:15.91ID:05vfegfG とりあえず御大の言うことはスルーしておいて、Flux、Reduxなんかについて調べてから、自分で答えを出せばよろし
739デフォルトの名無しさん
2017/05/12(金) 20:05:15.61ID:6PqY2VyR C#で状態の公開というとプロパティを使うわけだけど、
javaにはプロパティがないからgetter使うしかないだろうし…
そもそもMVVMではgetter使っちゃダメなんて話があるの…?
javaにはプロパティがないからgetter使うしかないだろうし…
そもそもMVVMではgetter使っちゃダメなんて話があるの…?
740デフォルトの名無しさん
2017/05/12(金) 20:34:29.17ID:z/cC9xJA 状態の公開が何でpublicなfieldになんのか分からん
オブジェクト指向もっかい勉強した方がいい
オブジェクト指向もっかい勉強した方がいい
741デフォルトの名無しさん
2017/05/12(金) 22:16:02.54ID:Ne3HESGY いや返り値のないメソッドしかテイギシタラ駄目っていう縛りがあると思ってたから、
getterも駄目なのかと
getterも駄目なのかと
742デフォルトの名無しさん
2017/05/12(金) 23:10:52.37ID:6PqY2VyR MVVMの提唱がMSからだし、MSが作った言語にはプロパティがあるから…
…javaのgetterが駄目ならプロパティ使うのも駄目になるはず
…javaのgetterが駄目ならプロパティ使うのも駄目になるはず
743デフォルトの名無しさん
2017/05/12(金) 23:56:43.00ID:XKa7CxLZ ゲッターかプロパティかは本質じゃないだろう。
ゲッターをフィールドっぽく見せてるのがプロパティなだけなんだし。
ゲッターをフィールドっぽく見せてるのがプロパティなだけなんだし。
744デフォルトの名無しさん
2017/05/13(土) 06:13:49.08ID:Hzzf9sbT AndroidでMVVMやりたいだけなのに
C#でのMVVMとFluxとReduxとクリーンアーキテクチャと
databindingとRxとretrolamdaと全部学ばないといけないわけ?
敷居高杉ませんか
C#でのMVVMとFluxとReduxとクリーンアーキテクチャと
databindingとRxとretrolamdaと全部学ばないといけないわけ?
敷居高杉ませんか
745デフォルトの名無しさん
2017/05/13(土) 08:08:27.52ID:JyAd7JIY MVVM含めアーキテクチャごっこをやること自体が目的なら全部学べよ。
Androidで開発しやすくしたいというのであれば、まずはData Bindingを使うことと、
APIの戻り/公開メンバとしてObservableを使ってみるところから始めろ。
DroidKaigiのアプリあたりを参考にしながら。
Androidで開発しやすくしたいというのであれば、まずはData Bindingを使うことと、
APIの戻り/公開メンバとしてObservableを使ってみるところから始めろ。
DroidKaigiのアプリあたりを参考にしながら。
746デフォルトの名無しさん
2017/05/13(土) 08:55:58.29ID:R5mpG+FZ build 2017と関係あるのかわからないけど、UWP関連でこんなもんが
https://github.com/Microsoft/WindowsTemplateStudio
https://developer.telerik.com/topics/net/announcing-windows-template-studio/
https://github.com/Microsoft/WindowsTemplateStudio
https://developer.telerik.com/topics/net/announcing-windows-template-studio/
747デフォルトの名無しさん
2017/05/13(土) 09:01:35.75ID:Hzzf9sbT droid kaigiですね。ありがとうございます。
他にMVVMの参考になる小規模なソースコードのgithubリンクとかないっすか
他にMVVMの参考になる小規模なソースコードのgithubリンクとかないっすか
748デフォルトの名無しさん
2017/05/13(土) 14:21:43.11ID:DOmFl3BV Android java MVVMで検索したら色々出てくるけど…
749デフォルトの名無しさん
2017/05/13(土) 17:26:38.50ID:Hzzf9sbT 画面遷移の処理とか結局viewでしかできないから、
view -> viewModel -> view
で行ったり来たりしてるのとかみると糞だなあと思う
view -> viewModel -> view
で行ったり来たりしてるのとかみると糞だなあと思う
750デフォルトの名無しさん
2017/05/13(土) 21:32:34.67ID:JyAd7JIY Presentation Coordinator
Navigation Service
なお、画面遷移の話とは別に、Androidの場合どうしてもActivity/Fragmentに
依存してしまう部分は出てくるから、その辺はあまり厳密に考えない方がいい。
Navigation Service
なお、画面遷移の話とは別に、Androidの場合どうしてもActivity/Fragmentに
依存してしまう部分は出てくるから、その辺はあまり厳密に考えない方がいい。
751デフォルトの名無しさん
2017/05/25(木) 12:23:45.13ID:7qHN/0ER VMとMの分割についてきちんと説明してくれてるサイトってあまりないけど、
基本的には全部Mに入れてVMはプロパティとしてMだけを持ってそれをVにバインドするってことでいいの?
大抵のサイトでは全部VMに入ってるけど
基本的には全部Mに入れてVMはプロパティとしてMだけを持ってそれをVにバインドするってことでいいの?
大抵のサイトでは全部VMに入ってるけど
752デフォルトの名無しさん
2017/05/25(木) 12:55:06.49ID:jD8c7u6v サイトは知らんが、一番しっくりくるなーと思う考えの一つは
MはDBなどのデータを格納する何か、もしくはデータそのもの。
VMはMからのデータを加工するものとVewとの橋渡しを分けてVMへ。
VはVewそのもの。
ってのが個人的に一番しっくりくる。
MはDBなどのデータを格納する何か、もしくはデータそのもの。
VMはMからのデータを加工するものとVewとの橋渡しを分けてVMへ。
VはVewそのもの。
ってのが個人的に一番しっくりくる。
753デフォルトの名無しさん
2017/05/25(木) 12:57:53.56ID:V6q89FWa viewそのものだとactivityがviewになるのは違和感がないか
754デフォルトの名無しさん
2017/05/25(木) 12:59:02.78ID:jD8c7u6v 違和感ある。
VMに入れたい。
VMに入れたい。
755デフォルトの名無しさん
2017/05/25(木) 14:34:21.13ID:CXNFHBlU756デフォルトの名無しさん
2017/05/25(木) 18:18:08.97ID:V6q89FWa VMがactivityの参照を持ったらだめだと聞いたが。。
Xamarinだとpageか
Xamarinだとpageか
757デフォルトの名無しさん
2017/05/26(金) 00:49:21.51ID:rlJlQaZI C=VMだとMVCと変わらんだろうが
758デフォルトの名無しさん
2017/05/26(金) 02:36:40.07ID:NvS9muX6 イメージとしてはCより広い範囲のものをぶち込んでMやVに余計な物置かないのがVMって思ってる。
基本MVCと変わらん。
Cじゃないのはどこに置くとか名前から混乱してる人多かったから、VでもMでも無いのは全部VMってした方が混乱は少ない。
基本MVCと変わらん。
Cじゃないのはどこに置くとか名前から混乱してる人多かったから、VでもMでも無いのは全部VMってした方が混乱は少ない。
759デフォルトの名無しさん
2017/05/26(金) 06:12:40.96ID:Xdie43+z MVVMのVはMVCのV+Cだよ
MVPのVとかと同じ
MVPのVとかと同じ
760デフォルトの名無しさん
2017/05/26(金) 06:38:23.57ID:OOmYkqkr MVVMのVって左から3番目のVのことですか
761デフォルトの名無しさん
2017/05/26(金) 07:01:45.39ID:Xdie43+z 2番目だよ
762デフォルトの名無しさん
2017/05/26(金) 12:30:06.83ID:fehtyedu めちゃ効率悪い作り方
763デフォルトの名無しさん
2017/05/26(金) 15:34:26.98ID:ZNc2U8qB MVVMってMVCより明確にしたもの
VMはCという漠然とした者じゃなくて
Viewに対応するオブジェクトそのもの。
だからVMのプロパティを変更することでViewに反映されるし
Viewで何か変更するとVMのプロパティに反映される。
双方向バインディングを使って実現する。
VMはCという漠然とした者じゃなくて
Viewに対応するオブジェクトそのもの。
だからVMのプロパティを変更することでViewに反映されるし
Viewで何か変更するとVMのプロパティに反映される。
双方向バインディングを使って実現する。
764デフォルトの名無しさん
2017/05/26(金) 19:26:58.74ID:GnitEmTF 全然進化してないな
765デフォルトの名無しさん
2017/05/26(金) 20:59:38.95ID:ovKX6RUR >>762
効率求めたらガチガチにVewと結びつくからな。
Vewが固定ならMVCもMVVMも要らない。
デスクトップやモバイルで中身同じだけどVewだけ違うとかだからMVCやMVVMが必要になる。
デスクトップとモバイルで同じ処理を別々に書くよりは全体では効率が良くなる。
特にモバイルが画面の大きさや画面比率が多様化してる昨今では。
効率求めたらガチガチにVewと結びつくからな。
Vewが固定ならMVCもMVVMも要らない。
デスクトップやモバイルで中身同じだけどVewだけ違うとかだからMVCやMVVMが必要になる。
デスクトップとモバイルで同じ処理を別々に書くよりは全体では効率が良くなる。
特にモバイルが画面の大きさや画面比率が多様化してる昨今では。
766デフォルトの名無しさん
2017/05/26(金) 21:03:56.89ID:ovKX6RUR767デフォルトの名無しさん
2017/05/26(金) 21:40:38.92ID:Xdie43+z >>766
そんなもん独自のわけないだろ
そんなもん独自のわけないだろ
768デフォルトの名無しさん
2017/05/26(金) 22:27:08.33ID:F2M8XGQu MVVMにおいてactivityはviewでいいんだよな?
769デフォルトの名無しさん
2017/05/26(金) 23:41:27.21ID:ZNc2U8qB 更にいうとMVVMをさらに発展と言うか破綻しづらいようにしたのが
flux。MVVMのVMは双方向バインディングだけど
fluxの場合は、Viewの変更は直接VMに反映しない方針。つまり片方向バインディングに限定した。
その代わりVMへの変更関連をActionに集約して
Action -> State(VMに対応) -> View ->Action
と片方向への情報の流れに限定したのがflux
flux。MVVMのVMは双方向バインディングだけど
fluxの場合は、Viewの変更は直接VMに反映しない方針。つまり片方向バインディングに限定した。
その代わりVMへの変更関連をActionに集約して
Action -> State(VMに対応) -> View ->Action
と片方向への情報の流れに限定したのがflux
770デフォルトの名無しさん
2017/05/27(土) 02:57:55.41ID:V3ffhZkY >MVC時代は相変わらずクラス側でVewのプロパティに代入してもVewは古い値を表示したまま
糞Windowsだけだろω
糞Windowsだけだろω
771デフォルトの名無しさん
2018/05/23(水) 23:07:17.16ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
USCRF
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
USCRF
772デフォルトの名無しさん
2018/07/04(水) 23:01:58.94ID:gFgZc5FG QIC
773デフォルトの名無しさん
2018/07/06(金) 12:35:20.43ID:uTPDH9XV USCRF
774デフォルトの名無しさん
2019/01/28(月) 14:30:35.46ID:2/HZJEKq LivetとPrismとはなんだったのか
775デフォルトの名無しさん
2019/01/28(月) 22:53:33.32ID:ELKeaiTx Livetは使った事ないから知らんがWPF開発には色々便利なものあったらしいしPrismも便利なとこあるんじゃないの
自分は使わんけど
自分は使わんけど
776デフォルトの名無しさん
2019/01/30(水) 03:07:28.56ID:nTVyoRLY 知らんなら答えなくて良いんじゃね?
777デフォルトの名無しさん
2019/01/30(水) 10:24:55.23ID:g/bNoaAl 評判は聞いてたからその範囲で教えてあげてんだけど?
無知すぎるボンクラは逝ってどうぞ
無知すぎるボンクラは逝ってどうぞ
778デフォルトの名無しさん
2019/01/30(水) 10:35:20.87ID:MXCEKHH4 Prism.Unityは、UWP版のほうがシンプルでかつ十分な機能で良いんだけど
wpf版もあっち基準に改善したら良いのにな
wpf版もあっち基準に改善したら良いのにな
779デフォルトの名無しさん
2019/01/30(水) 12:36:56.89ID:m67rAUwN https://teratail.com/questions/140681
MVVMやってるのこんなのばっかりだからな死滅すればいいよ
MVVMやってるのこんなのばっかりだからな死滅すればいいよ
780デフォルトの名無しさん
2019/01/30(水) 12:37:12.23ID:m67rAUwN ハイハイ理解できないから終了ね
781デフォルトの名無しさん
2019/01/30(水) 12:38:11.42ID:m67rAUwN782デフォルトの名無しさん
2019/01/30(水) 12:43:13.60ID:eltFPQSh783デフォルトの名無しさん
2019/01/30(水) 14:39:06.71ID:g/bNoaAl 無知が顔真っ赤にしてテラワロス
784デフォルトの名無しさん
2019/02/05(火) 22:13:49.20ID:y7JCcM6u785デフォルトの名無しさん
2019/02/05(火) 22:15:30.79ID:y7JCcM6u いやテラワロスってのはMVVMなんだろうな
無知なのでわからんわ
無知なのでわからんわ
786デフォルトの名無しさん
2019/02/05(火) 22:50:39.27ID:sDFzuzWu >>779
>INotifyPropertyChanged はバインド専門ではありません。
これって詭弁だよね
MVVM使う時点で通常のモデルにすると不便だからINotifyPropertyChanged使うだけ
>INotifyPropertyChanged はバインド専門ではありません。
これって詭弁だよね
MVVM使う時点で通常のモデルにすると不便だからINotifyPropertyChanged使うだけ
787デフォルトの名無しさん
2019/02/05(火) 22:57:59.44ID:sDFzuzWu MVVMじゃない設計で作られた モデル、ビジネスロジックがあってそれをMVVMで使う場合どうすんの?ってことなんだろうけど
もう一層外からくるんだだけじゃうまくいかないからほとんどを作り直しすることになるんじゃないかな?
もう一層外からくるんだだけじゃうまくいかないからほとんどを作り直しすることになるんじゃないかな?
788デフォルトの名無しさん
2019/02/06(水) 02:16:42.38ID:ar/eio3d789デフォルトの名無しさん
2019/02/06(水) 09:39:48.85ID:DbH07QrE 俺なんかMVCすらよくわかんないな
Webは兎も角、それ以外はMVCだと言われてるアプリを見てもCからVを書き換えてるのだらけに見えちゃうんだな
これでいいんか?それとも世の大半が間違えてるのか?どっちなんだ
Webは兎も角、それ以外はMVCだと言われてるアプリを見てもCからVを書き換えてるのだらけに見えちゃうんだな
これでいいんか?それとも世の大半が間違えてるのか?どっちなんだ
790デフォルトの名無しさん
2019/02/06(水) 12:24:14.98ID:ar/eio3d Cからvだけでしかないってのはダメだと思うが、結局その場合にちょうどいい程度に疎結合になってればいいと思うけどね
自分はMVにロジックも詰め込んで、でかくなってきたらMにする程度でやってる
自分はMVにロジックも詰め込んで、でかくなってきたらMにする程度でやってる
791デフォルトの名無しさん
2019/02/11(月) 03:23:52.16ID:h3xrvU+a いつも疑問なんだけどMVVMでダイアログ表示するときなんでVMでShowDialog()しちゃいかんの?
MessengerでViewに送ってコールバックでってやるよりもVMをDataContextにぶっこんで直接操作したほうがわかりやすくない?
MessengerでViewに送ってコールバックでってやるよりもVMをDataContextにぶっこんで直接操作したほうがわかりやすくない?
792デフォルトの名無しさん
2019/02/11(月) 04:01:02.71ID:KW1QXsfq >>791
MVVMのVMは、UIへの依存を排除することを試みるパターン。
なので、直接呼んで良いかと問われればNo
UIの知識に起因する処理を行いたいのであれば、UIから提供されたインターフェースを介してUI操作を行うMVPの採用を検討する。
結局のところ、MV*の違いは責任範囲の違いだけであり、MVPがMVVMよりV寄りに広いパターンなので、MVVMをベースにMVPにしても構わない。
ただしその場合、混乱の元なのでMVVMとは呼称すべきではない。
MVVMのVMは、UIへの依存を排除することを試みるパターン。
なので、直接呼んで良いかと問われればNo
UIの知識に起因する処理を行いたいのであれば、UIから提供されたインターフェースを介してUI操作を行うMVPの採用を検討する。
結局のところ、MV*の違いは責任範囲の違いだけであり、MVPがMVVMよりV寄りに広いパターンなので、MVVMをベースにMVPにしても構わない。
ただしその場合、混乱の元なのでMVVMとは呼称すべきではない。
793デフォルトの名無しさん
2019/02/11(月) 12:20:24.20ID:YckZaLLU >>791
ぶっ込んで直接操作が何を指してるのかわからん。
そのダイアログを表示がらみだと思うけどもうちっと具体的に言ってくれ。
元のViewと対応したVMがあったとして、そこからダイアログ表示させる場合でいいんだよね?
ぶっ込んで直接操作が何を指してるのかわからん。
そのダイアログを表示がらみだと思うけどもうちっと具体的に言ってくれ。
元のViewと対応したVMがあったとして、そこからダイアログ表示させる場合でいいんだよね?
794デフォルトの名無しさん
2019/02/11(月) 13:34:01.09ID:NWPg0Oyv >>793
すまん、説明が悪かったかも
あと無意識にWPFを前提に話してしまっていた
MainWindow
MainWindowViewModel
MainWindowModel
DialogWindow
DialogWindowViewModel
があったとしてMainWindowのボタン押下をトリガーにDialogWindowを表示したいとする
でWPFの昨日でVMにコマンドバインディングしていたボタンの処理の中で
DialogWindowのDataContextにDialogWindowViewModelを入れる
→MainWindowViewModelの中でDialogWindowのインスタンスを生成する
みたいな感じ
すまん、説明が悪かったかも
あと無意識にWPFを前提に話してしまっていた
MainWindow
MainWindowViewModel
MainWindowModel
DialogWindow
DialogWindowViewModel
があったとしてMainWindowのボタン押下をトリガーにDialogWindowを表示したいとする
でWPFの昨日でVMにコマンドバインディングしていたボタンの処理の中で
DialogWindowのDataContextにDialogWindowViewModelを入れる
→MainWindowViewModelの中でDialogWindowのインスタンスを生成する
みたいな感じ
795デフォルトの名無しさん
2019/02/11(月) 15:12:43.09ID:QkJqimZ7 VMからVを直接生成するのは禁じ手かと
てスタビリティーが担保できない
てスタビリティーが担保できない
796デフォルトの名無しさん
2019/02/16(土) 02:23:43.23ID:9HG1VuDS 7年前から何も状況変わってなくてワロス
797デフォルトの名無しさん
2019/02/16(土) 02:52:06.72ID:9HG1VuDS https://teratail.com/questions/74961
わからないやつは使うな!
でほんとに使わなかったケースが多かっただけみたいだな
ユーザーの質がほんとひどい
難しい案件でだけ使えばいいがな
わからないやつは使うな!
でほんとに使わなかったケースが多かっただけみたいだな
ユーザーの質がほんとひどい
難しい案件でだけ使えばいいがな
798デフォルトの名無しさん
2019/02/16(土) 09:30:22.31ID:9K5d8FVn 自分は自分で作るちょいアプリでも使ってるけどな
といってもVM膨らませてMもそこでやってて、ややこしくなったら分離させてるだけだけど
といってもVM膨らませてMもそこでやってて、ややこしくなったら分離させてるだけだけど
799デフォルトの名無しさん
2019/02/16(土) 19:22:44.93ID:PhVDH7kZ WPF+MVVMはテストがつらい
M、VMでテストが出来てても実際にVでうまく動くかは全然わからない
M、VMでテストが出来てても実際にVでうまく動くかは全然わからない
800デフォルトの名無しさん
2019/02/16(土) 20:37:11.87ID:9K5d8FVn >>799
ん?それほかのUIフレームなら出来るん?
ん?それほかのUIフレームなら出来るん?
801デフォルトの名無しさん
2019/02/16(土) 20:48:59.47ID:mveZudXk アプリケーションのテストとしてはVM-M間で十分だと思うがな。
V-VM間はデータバインディングが意図通りか確認する程度だし。
少なくともFormsよりだいぶUIに近いところまで自動テストできるようになった。
V-VM間はデータバインディングが意図通りか確認する程度だし。
少なくともFormsよりだいぶUIに近いところまで自動テストできるようになった。
802デフォルトの名無しさん
2019/02/17(日) 03:18:26.01ID:xGFF6jRx >>799
ViewはMVの状態をそのまま表示するだけってのが理想だからね
セレニウムだっけ?WEBでのUIテスト出来る奴とかあるかもだけど、自動テストでそこまでの工数かけるのちときつくね?
VMのテストならプログラム的にしやすいからまだわかる
ViewはMVの状態をそのまま表示するだけってのが理想だからね
セレニウムだっけ?WEBでのUIテスト出来る奴とかあるかもだけど、自動テストでそこまでの工数かけるのちときつくね?
VMのテストならプログラム的にしやすいからまだわかる
803デフォルトの名無しさん
2019/03/17(日) 03:07:47.90ID:ZfsC9V3u804デフォルトの名無しさん
2019/03/17(日) 08:02:38.52ID:F89k9A+v VisualWorksのPluggable MVCとどう違うのだろうか?
805デフォルトの名無しさん
2019/03/17(日) 18:31:05.56ID:drnV2zGh Pluggable MVCとはだいぶちがうだろう
Application Modelの間違い?
Application Modelの間違い?
806デフォルトの名無しさん
2019/03/17(日) 22:43:26.65ID:F89k9A+v >>805
ValueHolder、AspectAdaptor、PluggaleAdaptorとか
ValueHolder、AspectAdaptor、PluggaleAdaptorとか
807デフォルトの名無しさん
2019/03/17(日) 22:56:42.27ID:drnV2zGh808デフォルトの名無しさん
2019/03/17(日) 23:43:40.49ID:F89k9A+v 結局、ビュー寄りのモデルを作るという発想は90年代初頭にVisualWorksで提唱されていたんじゃないかと。
809デフォルトの名無しさん
2019/03/18(月) 01:01:31.84ID:Y1evCyMB まあその結論で合っているんだけど
ただValueHolderとかのアダプターはあくまで
ApplicationModelのプロパティでデータバインドを実現するための道具に過ぎないので
https://matarillo.com/general/uipatterns.php#p3
MVVMとの類似性に言及するのであれば
Pluggable MVCではなく「ApplicationModelアーキテクチャ」と表現する方が誤解が無くてよいと思う
http://wiki.c2.com/?ModelModelViewController
ただValueHolderとかのアダプターはあくまで
ApplicationModelのプロパティでデータバインドを実現するための道具に過ぎないので
https://matarillo.com/general/uipatterns.php#p3
MVVMとの類似性に言及するのであれば
Pluggable MVCではなく「ApplicationModelアーキテクチャ」と表現する方が誤解が無くてよいと思う
http://wiki.c2.com/?ModelModelViewController
810デフォルトの名無しさん
2019/03/18(月) 01:37:38.06ID:QCOM2t0u もともとMVCとかでごちゃごちゃしてきたところにMVVMってことなんだろうな
デスクトップアプリに当てはめるのは微妙だったよ
デスクトップアプリに当てはめるのは微妙だったよ
811デフォルトの名無しさん
2019/03/18(月) 07:19:28.89ID:Y1evCyMB いやそういう基本的な理解の欠如ではない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 地震 [Hitzeschleier★]
- 【地震】 茨城 栃木 埼玉 千葉 震度4 [KingFisherは魚じゃないよ★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 【話題】好きな鍋は?! 「寄せ鍋」「キムチ鍋」「水炊き」「もつ鍋」「豆乳鍋」「ちゃんこ鍋」「ごま坦々鍋」「トマト鍋」 [ひぃぃ★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★6 [Hitzeschleier★]
- 【悲報】日本人男性「GeminiでチャHしてたらGoogleアカウントBANされた。向こうが誘ってきたのに」 [519411371]
- ( ´ん`)地震…? [399583221]
- 自民党、金融所得課税30%で決定か。株を売ったり、配当金が入ると国が30%持って行きます [838847604]
- 🖐( -᷄ὢ)俺には>>2の>>3を自由に扱える権利がある……
- ほんこん さん「尖閣諸島も竹島も北方領土も、全て日本の領土だ!」 [201193242]
- 地震
