GUIがむずかしすぎるat TECH
GUIがむずかしすぎる - 暇つぶし2ch922:デフォルトの名無しさん
11/12/12 23:52:18.53
なんでそう思った?

923:デフォルトの名無しさん
11/12/12 23:57:38.63
テストツールは貧乏人には買えない

924:デフォルトの名無しさん
11/12/13 00:57:39.69
無料の使えよ

925:デフォルトの名無しさん
11/12/17 23:57:09.35
【ウェブアプリケーションという不幸 】

現在、多くのプログラマ(素人)がウェブアプリケーションというものがベストな正しい方向だと勘違いしている。
ソフトウェアの作るにおいてそのアプリケーションに応じた状態遷移を実装するというのは基本中の基本である。
その点においてウエブブラウザというある状態遷移が実装されているアプリケーションの上に
また別のアプリケーションを実装するのは論外である。
そこまでするなら普通にアプリケーションを実装してダウンロードして使ってもらえばいいのである。
ウェブアプリケーションとは虚構にしか他ならない。
ウェブアプリケーションを作ろうとしているあなた。
今すぐ普通のアプリケーションとし設計し始めてはいかがだろう。
そうすればきっと後悔しないですむ。

HTMLやHTTPを悪者にはしていない。
TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。
そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての
ブラウザというアプリケーション。
ここまではいい。
だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。
つまりブラウザ上で、アプリケーションを動かすという発想なのである。
ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。
つまりアプリケーションのためのひとつのパーツなのである。
Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)
JavaならWebClietnだ(これは、ブラウザではないが。)。
包含関係が逆なのである。
ブラウザ上にアプリケーションを作るのは愚かなブームである。

926:デフォルトの名無しさん
11/12/19 18:48:28.52
まあ、ウェブアプリで文書作成中に保存のショートカット押して
ウェブページの保存ダイアログが出るのはよくある。

927:デフォルトの名無しさん
11/12/19 21:11:00.18
戻るボタンで戻らないでください
とか悪い冗談としか思えない

928: 【12.7m】 【東電 89.0 %】
11/12/20 20:01:13.45 BE:3923187078-2BP(108)
web application connective protocolみたいなの創ればいいのにね

929:デフォルトの名無しさん
11/12/26 07:29:02.35
>>925
Chromeで見れるんでよろしく状態のほうが、ランタイムやら.NETやらJAVAのしかるべきバージョン入れてパッチもちゃんと当てといてねとか客に言うより単純


930:デフォルトの名無しさん
11/12/29 21:57:14.80
スタート/ストップのボタンってどうやればいいですか?

A)スタートボタン、ストップボタンをそれぞれ用意する、押したボタンをへこませる
B)ボタンをひとつだけ用意してラベルや色を差し替える
C)その他

931:デフォルトの名無しさん
11/12/30 01:25:12.78
>>930
スタートさせる処理の内容による。

932:デフォルトの名無しさん
11/12/31 08:45:21.73
そうなんですか
どうもありがとうございますm(_ _)m

933:デフォルトの名無しさん
11/12/31 13:15:33.87
基本中の基本的な質問をするんだが

MVC アーキテクチャでアプリを構築したい
Doc-View でもいいが、要はモデル部分とその他をしっかり分けたい

しかし、例えばテキストエディタを作ろうとして
Win32APIやその他のライブラリにある一般的なテキストコントロールを使うと、
View 側に既にテキスト(ドキュメント)が全て記録されてしまっている
(テキストコントロールのプロパティや Get 何たら関数で取得できる)

一般的じゃなくても、リッチテキストコントロールとか、
スタイルテキストコントロールとか呼ばれるものでも状況は同じ
スタイルを決定するタグと一緒に生のテキストも全て View 側に記録されている

それら View 側に記録されているテキストを
Model 側にコピーして持つのも冗長でメモリの無駄に感じる
かといって、他のドキュメント(例えばファイル名など)はModel側で持ち、
一方でテキストそのものはView側で持つというのも MVC から外れている

こういう場合、どうするのが良いの?

934:デフォルトの名無しさん
11/12/31 13:49:02.63
>>933
>それら View 側に記録されているテキストを
>Model 側にコピーして持つのも冗長でメモリの無駄に感じる

まず冗長さやメモリ効率については、(今時なら)富豪主義で考えていいんじゃないかと思う
次にコピーの方向性については、古典的なMVCパラダイムでは逆じゃないのかな?

[Modelの役目]
 数百数千行に及ぶかもしれないテキストの実体を持つ
[Viewの役目]
 Modelが持つ実体の一部分を表示可能領域で切り取って(コピーして)表示する
[Controllerの役目]
 キー/マウス等の入力を扱い、入力イベントに応じてModelの値(=テキスト実体)を更新する
 結果としてModelに依存したViewの表示内容が更新される(GoF本で言うObserverパターン)

以下を参照
・使わないと損をするModel-View-Controller
  URLリンク(aokilab.kyoto-su.ac.jp)

935:デフォルトの名無しさん
11/12/31 14:12:25.65
(>>934の続き)
>>934で書いたのは、(Smalltalkによる)古典的なMVCパラダイムの話だった
今時のGUIツールキットは、(>>933でも書かれているように)ViewとControllerが一体化した
M-VCパラダイム(あるいはDocument-Viewパラダイム)が主流

この場合、Viewが持つ(更新された)部分テキスト実体をModelへ逆コピーすることになる
ここでの考えどころは「(1) 逆コピーのタイミング」および「(2) 逆コピーの範囲」の二点

単純な実装であれば、(1) については全てのイベントで逆コピーを実行し、
(2) については部分テキスト実体の全体を逆コピーすることになる
これを改良するなら、(1a) 部分テキスト実体が更新されたタイミング、あるいは
(1b) タイマーによる定期的なタイミング、(1c) (1a)と(1b)の組合せ、等が考えられるだろう
そして(2)についても、(2a) 変更された部分テキスト実体の断片のみを逆コピー、等が考えられる

936:デフォルトの名無しさん
11/12/31 14:23:33.15
テキストコントロールがドキュメントの一部の文字列などの編集などに使われるんだったら、値の双方向への丸コピとか気にしないでしょ?
全文がテキストコントロールでいじられてるってのはその特殊な場合というだけであって、無駄だということを考えない限りはいいんだと思う。

あくまでもModelはModel的な位置づけで扱って、ViewControllerはそのビューに閉じたことだけを考慮するようにすると。

937:デフォルトの名無しさん
11/12/31 14:43:58.71
>>934,935
> まず冗長さやメモリ効率については、(今時なら)富豪主義で考えていいんじゃないかと思う

メモリ効率については富豪主義で考えるとして、
冗長さは同期という余計な手間が入るから、ちょっと気持ち悪かったが、
もう少し楽観的に考えても良いんだね

> 次にコピーの方向性については、古典的なMVCパラダイムでは逆じゃないのかな?

おっしゃる通り

言い方が悪かった
コピーする方向云々の前に、そもそも情報がダブってしまう事を気にしていた

しかしなるほど、情報がダブることにはもう目をつむって、
View(Control)側から Model 側へコピーする(同期を取る)事を前提に
「いつ」「なにを」コピーするのかを考えるのか

>>936
テキストコントロールが、カーソルがある周辺や
表示されている領域だけのテキストをバッファとして持っているなら分かるが、
何百行もあるテキストの全てをバッファに持っている事が気になっていたんだ

お二人ともありがと、参考になった


ところで、この辺りの今時な GUI フレームワークを作るのに
参考になりそうな書籍やサイトは無いだろうか
(自分で今時のをググって探すと、どうも Web アプリにしかぶち当たらない)

938:デフォルトの名無しさん
11/12/31 16:35:50.71
周回遅れ

939:デフォルトの名無しさん
11/12/31 19:35:25.16
>>938
おっさんが趣味でやってんのに周回遅れもクソもあるか

例えばゲームをちょっとした趣味にしている人が
今ドラクエ2を初めてプレイして、周回遅れって言うのか?


まぁ皆が遙か昔に通り過ぎた所であることは承知している

940:デフォルトの名無しさん
11/12/31 22:58:00.53
判ってるなら良いです

941:デフォルトの名無しさん
12/01/02 08:38:06.24
>>936
>テキストコントロールがドキュメントの一部の文字列などの編集などに使われるんだったら、

静岡県人?

942:デフォルトの名無しさん
12/01/02 13:56:01.92
半島人は地域差別が酷いらしいねぇ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch