ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

グーグルを抜き、Yahoo! Japanのページビュー数、世界1位

2007-06-25 19:22:01 | Weblog

ここのGIGAZINEの記事
Yahoo! Japanのページビュー数がついに世界第1位に
http://gigazine.net/index.php?/news/comments/20070625_yahoo_japan/

によると(以下斜体は上記サイトより引用)

ネットレイティングスの発表によると、Yahoo! Japanの2007年5月度の月間ページビューが318億ページビューを突破、ついに世界第1位になったとのこと。


で、2位以下は

2位:米国Yahoo!……316億ページビュー
3位:News Corp. Online……296億ページビュー
4位:Google……212億ページビュー
5位:Microsoft……155億ページビュー


ほー、Googleより、YAHOOのほうが、ページビュー多いんだ。。
(日本だけでなく、アメリカにおいても)
へー・・・

時代はGoogleからYAHOO?


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

一般的な編集ソフトの作り方 その20:イベント発生時の動き(カット・ペースト)。

2007-06-25 17:34:01 | 開発ネタ

ワープロやドローイングソフトなどの編集ソフトを作る上での一般的な考え方を考える「一般的な編集ソフトの作り方」です。
 ここでは、主に、

  ・メモリ上に、要素をもつ
  ・イベント発生時の動き
  ・画面の構成

ということで、現在、「イベント発生時の動き」をやっています。
その機能には、
  ・印刷
  ・保存
  ・読み込み
  ・カット(切り取り)
  ・ペースト(貼り込み)
  ・プロパティ(属性設定・変更)
  ・表示
  ・要素の選択
  ・(要素の)移動
で、今日はカットとペーストについてやります




■処理手順

この2つと、前回のプロパティ変更で大きさが変わる場合は、似たような動きをします。

まず、カットもペーストも
1.対象を確認します
  →対象が選択されてなければエラー
2.カットあるいはペーストができるか確認
3.カットの場合は、対象をコピー領域に入れます
  ペーストの場合、コピー領域の対象をとってきます
4.カットの場合は削除処理、
  ペーストの場合は、3の領域の追加処理をします

あとは、「プロパティ変更」同様

5.削除・挿入したものの親に対し、
  子供(削除・挿入したものとその兄弟)の位置決めをする

6.削除・挿入したものとその兄弟は、値を変更し、親に結果
  通知する。
  値を変更できない場合は、親に変更できない通知
   →変更できない場合、削除・追加処理を取り消し、元に戻す

7.削除・挿入したものの子供に対し、位置決めをする
   →変更できない場合、変更処理を取り消し、元に戻る

8.7の位置に子供の属性を変更する。自分の属性も変更する

9.再描画する
  →クリックされたとこををバッファをもって調べている場合、
   そのバッファにも書き出し

なお、5~9の順番は違う場合がありますが、とにかく、親兄弟、子供に対し、位置や幅の再設定、再描画が必要となります。
 このとき、どこまで再設定、再描画したらいいかによって、処理スピードなどが、左右されます。




ということで、「イベント発生時の動き」はここまでです。
あとは、画面の構成についてです。




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MVCで要件→画面に落とし込むまで

2007-06-25 14:39:31 | 開発ネタ

前に、要件から、クラス図までに落とし込む流れを書いたとき、これは、MVCでいうモデルに相当すると書きました。
 で、MVCのコントローラーについては、MVCで要件→モデルのクラス図から、コントローラーに落とし込むで書きました。

 ということで、残りのView、画面についてです。




■画面とコントローラーの関係

 コントローラーで、StrutsならAction、サーブレットならサーブレットクラスで定義されたところ(=モデルの画面用メソッド)は、画面のなんらかのアクションに対応し、そこで呼び出されないといけません。

 つまり、サーブレットのクラスは、ボタンを押すと呼び出されるとか、画面が書き出されたとき(ロード)呼び出されるとか、なんらかのイベントに対応して、呼び出されます。多くは、ボタンに対応します。




■画面とクラスの対応は、方針によるが・・・
 画面とクラスの対応は、その設計方針によりますが、1画面1クラスを割り当てると、楽かと思います。




■問題は、画面と、コントローラーを呼び出すイベントの関係

 で、問題は、画面と、コントローラーを呼び出すイベントの関係です。
 これにより、画面割が変わります。。。

 が、これ、

 コントローラーを呼び出すイベントが起きる時点で、そのコントローラーに
渡す値すべてが、どこかで入力されていなければいけない
(=そうしないと、入力が足らなくなる)


 ということ以外は、好き勝手にできます。

 たとえば、1画面しか作らないで、そこに全部の情報を入れる、ログイン名もパスワードも、入力情報も出力情報も・・・っていうことは、可能ではあります(現実的ではないけど)

 逆に、1つ入力されるごとに、1画面というのもありえます(対話型の入力の場合、ダイアログがどんどん出る形とか、チャットしてるようなかんじで実行する)




■とはいえ、標準形はある

 とはいえ、大体世の中のおとしどころといいますか、標準形はあります。

要件のとき、

    何々が、何々を、どうする

というかたちで、主語(=人)、目的語(=対象物)、動詞(アクティビティ)という形で書きました。なので、今回も、

まず、主語を確定する
  =>ログイン画面で、操作している人を決定=この人が主語

そのものを表示するが、
  複数あり、検索が必要な場合は、
     (検索)一覧画面(検索は画面をわけることもある)
     詳細画面
  検索が必要ない場合は、
     詳細画面

になります。

そして、データ入力・編集では、CRUD,つまり、新規作成、検索、編集、削除が必要なのですが、一覧画面がある場合、そこから削除、新規作成、編集がある場合が多いです(編集は、一覧リストをダブルクリックのケースもあります)
 検索は、検索画面があるところに、検索実行ボタンがあります。
 検索画面と一覧画面が分かれているときは、一覧画面を出し、そうでないときは、検索結果を一覧にセットします。

 一覧画面にある、新規作成、あるいは編集のイベントが起こると、詳細画面が表示されます(編集の場合はそのデータがセットされ、新規作成の場合は初期値)入力されると、登録等のボタンが押されて、新規作成、編集の処理に行きます。

 削除のとき、内容確認をかならずさせるために、一覧でなく、詳細のほうにおく場合もあります。

 だいたい、こんなかんじで画面割りは行われます。




 ということで、このシリーズ?の話、おしまい。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする