[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> No.158 自分にダメ出し、同じ結果を再度聞きに行く処理構造(笑

自分にダメ出し、同じ結果を再度聞きに行く処理構造(笑


本文(発行内容)


<自分にダメ出し、同じ結果を再度聞きに行く処理構造(笑)>

こんにちは、Ken3です。 4月も中盤、新環境にも慣れましたか? 今日は久しぶりのプログラム系のネタです(笑) って言っても、やはり初めの数行だけなんだけどね(オイオイ)

/* * 1.このサンプルを見たアナタの感想は? */

下記、今日、ASP系で発行したサンプルです。 ASPやプログラムなんてわからない 三流君の作ったプログラムなんて興味無い  ・  ・ といろいろな感想あると思いますが、 Request.QueryString("DATA")の連呼に注目してまずはみて下さい。 <%@LANGUAGE=VBScript%> <html> <head> <title>IsNumeric関数で変換可能か調べ、CInt関数,FormatNumber関数を使う</title> </head> <body> <h2>IsNumeric関数で変換可能か調べ、CInt関数,FormatNumber関数を使う</h2> 受取ったパラメータは<br>[<%=Request.QueryString("DATA")%>]<br> <% 'IsNumericで変数をチェックする If IsNumeric(Request.QueryString("DATA")) = True Then '変換可能な時 DATA = CInt(Request.QueryString("DATA")) Response.Write "CInt()の結果は" & DATA & "です<br>" DATA = FormatNumber(Request.QueryString("DATA"), 2) Response.Write "FormatNumber(XX,2)の結果は" & DATA & "です<br>" Else '変換不可の時 Response.Write "を数値に変換することはできません、確認してね" End If D = Request.QueryString("DATA") 'パラメータをそのまま保存 %> <HR> <FORM ACTION="test048-3.asp" METHOD="GET"> 数値に変換したい文字列 <INPUT TYPE="text" SIZE="30" NAME="DATA" VALUE="<%=D%>"> <INPUT TYPE="submit" VALUE="変換テスト"><br> ↑いろいろと遊んでみてください↑<br> ※123456とInt以上を入れてオーバーフローを発生させたりして遊んでね </FORM> <br> </body> </html> 読者さんの一言:キタナイなぁ(笑)なんてお思いだと思いますが、続けると、 http://www.ken3.org/cgi-bin/test/test048-3.asp?DATA=12.567 とURLに載せたパラメータをあれこれやっているサンプルなのですが、 もったいないなぁ、処理時間が遅い、何回もリクエストするな ~~~~~~~~~~~~~~~~ と感じたアナタ、一流プログラマーさんですね(三流の私以上ですね確実に) Request.QueryString("DATA")の使用場所を見てみると、 1.受取ったパラメータは<br>[<%=Request.QueryString("DATA")%>]<br> 2.If IsNumeric(Request.QueryString("DATA")) = True Then '変換可能な時 3.DATA = CInt(Request.QueryString("DATA")) 4.DATA = FormatNumber(Request.QueryString("DATA"), 2) 5.D = Request.QueryString("DATA") 'パラメータをそのまま保存 と、5回も同じ値を取出して処理してます。 別にいいジャン?なんか文句在るの? ええ、大有りです。 サーバーは無口だけど、何回も同じリクエストを出すなよ、答えは一緒だろ。 女の子に「付き合ってください」と告白、答えイヤで同じ時は何回も聞かないでしょ ※何回も聞くと、答えが変わる場合あるかも?(ナイナイ(笑))  彼氏に「愛してる」「愛してるよ」と何回も聞きたい女心も在り?  って、そんな話は置いといて、 答えが変わらないデータに対して、 何回も関数をコールしたりコレクションを参照しに行くのは それだけCPUを占有してしまい時間の無駄なんですね。 こんな時は1つのローカル変数に代入しておき、 その変数を使用するほうが効率がいいです。 <%@LANGUAGE=VBScript%> <% D = Request.QueryString("DATA") 'パラメータをそのまま保存 %> と頭でパラメータの代入 ~~~~~~~~~~~~~~~~~~~~~~ <html> <head> <title>IsNumeric関数で変換可能か調べ、CInt関数,FormatNumber関数を使う</title> </head> <body> <h2>IsNumeric関数で変換可能か調べ、CInt関数,FormatNumber関数を使う</h2> 受取ったパラメータは<br>[<%=D%>]<br> Dの変数を使う ~~~~~~~~~~~~~ <% 'IsNumericで変数をチェックする If IsNumeric(D) = True Then '変換可能な時 DATA = CInt(D) Response.Write "CInt()の結果は" & DATA & "です<br>" DATA = FormatNumber(D, 2) Response.Write "FormatNumber(XX,2)の結果は" & DATA & "です<br>" Else '変換不可の時 Response.Write "を数値に変換することはできません、確認してね" End If %> みたいな感じで書くと処理時間やCPUの無駄使いが無くて、 先輩におっコイツわかっているジャンと思われるよたぶん ※先輩自身が私みたいにわかっていなかったらゴメンネ・・・ --- 枠外解説・愚痴 --- 動けばいいんだよ ガタガタいってんじゃなねぇよ、動けばいいんだよ動けば。 正常動作するプログラムが一番なんだよ、 三流プログラマーのクセに偉そうに説教たれてんじゃねぇよ と いつものように自分と戦ってみたり(笑) はぁ、コレだから少子化の一人っ子、お金持ちのお坊ちゃん世代は違うねぇ。 ~~~~ いいよねぇ、両親の愛情を独り占めしてぬくぬく育っている金持ちは。 それとプログラムとどこが関係あるんだよ、 失敗続きの貧乏酒屋の次男坊のヒガミかよ。 おっと話がそれそうなので、戻してと、 ローカルで自分のプログラムしか走っていない場合、 メモリも自分しか使わないし、リクエストしてもCPU両親はすぐに答えをくれます。 何回もおねだりして聞きに行っても大切な一人息子だからね、 少々時間がかかっても、元気に動いてくれれば文句も無いよ。 2つ3つ複数のプログラムが動いているサーバー処理家族では、 メモリやCPUは共有です、 メシ食わせろ・金使わせろとリクエストを送る、 2CPUの両親はがんばってうざったい、リクエストを処理します。 そんな両親はあんた長男なんだから少しは考えなよ、弟や妹が居るのだから、 同じこと何回も聞きに来るな、お金や資源は無駄に使うな・・・・ なんて言ったかどうかはわかりませんが・・・ う〜ん、キレがない(笑) ハヤイ話、サーバー上で実行されるASPみたいなCGIプログラムは、 動けばイイヤから、実行速度やメモリ資源を使わないプログラム作りを心がけましょう ってことです。 2CPUの両親で手が回らなくなったら、祖父・祖母を導入して、メモリ増設大豪邸で 4CPU処理するのも1つの手?だけど、プログラムで負担をかけないようにね。 私も動けばイイプログラム(健康ならいっか無職でも)から、 CPUに負担をかけない(両親を心配させない) にならないとね、、、チョットリアル過ぎるかな(爆) でも、リクエスト(相談)するのはキライだからCPUさんは気が付いてないか? ※そのうちプロセス切られるぞ(オイオイ!!!) ~~~~~~~~~~~~~~~~~~~~~~~~~

/* * 2.Request.QueryStringでも上位にくいこむ */

暗い愚痴は置いといて、 http://www.google.co.jp/search?hl=ja&ie=Shift_JIS&q=Request.QueryString&lr=lang_ja ↑ 有名なGoogleでRequest.QueryStringを検索すると(日本語のページ)、 私のHPが上から3番目に表示されてる(*2003/04/18現在) おいおいって感じですよね。 私のページがRequest.QueryStringのポイントが高い理由 ケガの巧妙じゃないけど、 Request.QueryStringを連発で使っているプログラムが多いので、 Request.QueryStringのポイントが高いんだと思う。 それと、HPの構造で、ホントは解説・サンプルソース・実行結果と3構成にするつもりが、 面倒なので、解説と実行結果+サンプルソースの2つの構成にしてます。 そんなさまざまな理由から、単語の出現回数が多く、 ポイントの高いページと判断されたと勝手に想像してます。 HPの構成もそのうち探ってみます。ロボットの弱点わかったらまたお知らせします。 --- 枠外解説・愚痴 --- 不思議だよね、1発で簡潔に説明しているページよりも、 ダラダラと同じ単語を使いつづけてるページのランクが高いなんてね。 まぁ、そこがロボット評価と人間の評価の違いなのかなぁ。 人間が評価すると個人差がでるし、ロボットの機械的な評価も完璧じゃないし、 いろいろと面白いよね。

/* * 3.終わりの挨拶(次回はアルのか?(爆)) */

今回も、まとまってませんでしたが、 ・同じ結果の時は、ローカル変数に入れて処理するといいですよ ・検索のランク、ムダに長いだけのHPが高いって不思議だよね って話でした。 読み直すとあれ?何の話だったのだろう? でも、せっかく書いたから発行しちゃえ(爆) 何か読者の心に残れば、うれしいです。 *私の独り言をうまく消化してくださいね。 yahoo,googleからASP系の来場者数が 今回のようなたまたまのポイント稼ぎ?で最近増えているので これをどうにかお金に替えたいけど、なかなかうまくいかないです。 もう四月も中盤かぁ、そろそろ派遣かなぁのKen3でした。 ~~~~~~~(↑オイオイ) -------------------- 読者からのお便り紹介 -------------------- In message "Re: 掲示板書き込みどうもね", いちにいさん wrote... >派遣は、虐めとか、良い話聞かないねぇ。 >人材会社なんて、使い捨ての道具くらいにしか思ってないみたいだし。 >2chのスレを見た記憶があるけど、良いこと書いてなかったな。 >派遣社員に仕事任せて、遊んでるとか…。(笑) >その辺の板、覗いてみたら? >実状が転がってるよ。(笑) ---- http://www.ken3.org/etc/500yen/job.html に情報載せつつ、自分でも探そうとしてたけど、 まぁいろいろとありそうですね。 自分のHPに貼った広告から応募しても紹介料500〜1000円入るか疑問だけど、 10社ぐらい試しに応募して反応を見てみます。 結果はまたメルマガで。 質問・感想はメール・掲示板に気軽に書いてくださいね。


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

リンクや広告など

項目別に本音?それとも建て前?的な記事をまとめました。

気になったジャンル↓を選択してください。
[ルーキー rookies]・・・ 新人さん達 初心者さんへ
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話
[共同作業 team]・・・チーム、グループ作業
[プログラムは心? spirit]・・・プログラマー 心・気質・魂

[掲示板デビューしようぜ bbs]・・・掲示板関係の話、質問者・回答者の気持ちほか
[昔はできた seo]・・・三流式の効果無しSEOとアフィリエイト
[仕事や作業、転職 job]・・・仕事や転職、評価、作業など
[その他 etc]・・・その他 分類外の記事

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]



[三流君(TOP ken3.org へ戻る)] / [プログラマー業務の愚痴] / [バックナンバー 一覧]