グローバル変数を使おう
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGバカがいるから使うと面倒になるだけで。
0108デフォルトの名無しさん
NGNGかーなり管理がウザクなってきて、10000行越えたら
もうヤって感じだな。
学生時代、簡単な実験装置を制御するプログラムを
同期と一緒にいぢった時の話。
グローバル変数じゃないんだけど、数千行に及ぶ関数の中で、
かーなり外側のループでiとかjがフツーの変数として使われてた。
知らずに
for(i=0;i<MAX_HOGE;i++){/*fugahoge*/}
とか追加した為に、エラくタノシイことに...(・∀・)
# いや、見た瞬間、書き直さないと逝けないとは思ったん
# だけど....メンドクさかったんだよぉ
0109デフォルトの名無しさん
NGNG単に「最後の武器」っていうだけのことだ。だから>>1の
「グローバル変数を使った方が楽だよ」ってのは
あまりにも中途半端な言い方であって、正しくは
「グローバル変数を必要最小限使った方が楽だよ」
とすべきだな。
でもまぁ、(無理せずに)全く無くすることも不可能じゃないがな。
プログラムのデータ構造全体をCompositeパターン的にtree構造に
してしまい、根をmainのローカル変数にすりゃいいんだ。
delのComponent管理がコレに近い。ただし根のApplication変数は
なぜかglobalだが(わら
あとObjectiveCつーかOPENSTEPフレームワークの
NSAutoreleasePoolっていうクラスの仕組みも、それに近い。
0110デフォルトの名無しさん
NGNGグローバル変数がダメなのではなくて、
管理できないグローバル変数がダメなんだよ。
グローバル変数を効果的に使用して効果をあげているプロジェクトは
幾つもあるし、その使い方は哲学的であることもしばしば。
セオリーを知って、その上に思想を持った自分のセオリーを構築できれば
周囲は説得できるし、武器になると思う。<ごめん、かなり抽象的だね。
0111デフォルトの名無しさん
NGNGプログラムに哲学や思想を持ち込むなよ
周囲が迷惑する
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG現場のプログラマに周知徹底できてこその哲学と思われ
0114デフォルトの名無しさん
NGNGいや、それは不可避だぞ。どうせ人間のやることだ。
言語仕様みたいに、(作者の)哲学の塊みたいなもんを
俺らは日常的に使わされてるわけだろ(わら
問題はそこじゃない。
>>110
結局は、哲学が「(客観的に見て)間違って」なければ、通るかもだな。
計算機的に間違ってる哲学なら、なんぼ主張しても通らないか、
無理を通して道理引っ込む(=プロジェクトが崩壊)かどっちかだ。
メジャーな言語(という哲学の塊)を使っても大丈夫なのは、
ひとえに、その作者の哲学が間違ってなかったから、だ。
一度、ドキュ会社が作ったドキュ言語を使わされてみろって。
昇天できるぞ。
哲学といっておきながら、人間の思想だけの問題じゃなく、
同時に計算機をきちんと動かすこともできる思想、
でないと駄目ってのが、ここでいう意味の「思想」
って奴の味噌だろう。
そうでない場合は、つまり「独善」だ。
0115デフォルトの名無しさん
NGNG申し訳ない。
哲学や思想という言葉に拒絶反応を示す人間が居る事を考えるべきだった。
ポリシーという言葉ならOKかな?
グローバル変数は何処からでも参照できる(書き換えできるとは言わない事に
注目して欲しい。)特徴を持ったオブジェクトなんだ。
この素晴らしい機能に着目した事が無いなんて寂し過ぎると思う。
カプセル化、隠蔽は役に立つポリシーだが、自分自身のポリシーを
確立させることもプロとして重要な事だよ。
0116デフォルトの名無しさん
NGNGまぁ、リビドーを満足させるような状況になるには、そうだねぇ、
あと何年かは耐えないとね。あ、そのころにはあんた、部下から
この擦れのように陰でぶちぶちいわれてんだけどね。
0117デフォルトの名無しさん
NGNG>哲学や思想という言葉に拒絶反応を示す人間が居る事を考えるべきだった。
>ポリシーという言葉ならOKかな?
おい。それは全く同じだろ(わら
>グローバル変数は何処からでも参照できる(書き換えできるとは言わない事に
>注目して欲しい。)特徴を持ったオブジェクトなんだ。
おい。「変数」なら書き換えも許可だろうがよ(わら
自分自身の言葉の「正確な」意味に、少しは注意してくれ。
ちなみに上記は、単なる揚げ足じゃなくて、体まるごと転倒だぞ。
上記の齟齬によって論旨本体が危うくなってる(のを
俺は蹴っ飛ばした)のだからな。
判るか?
ポリシーという言い換えにもなってない言い換えを
するってのは人様を馬鹿にしてるに過ぎないのだし、
書き換え可能かどうかが結構重要な焦点になるんで
そこを間違えたら一大事、なのだ。
繰り返すが、
>自分自身のポリシー
ポリシーが工学的(てーかそれ以前)に間違っている場合は
プロとして死だぜ。
0118デフォルトの名無しさん
NGNG組織がどうたらさ、文句いうなら自営でやれよ。お前はそこまで
独創的にアイデアがあるんだろう?自営が恐いならだまっとけ、
サンシタ。
0119デフォルトの名無しさん
NGNGそんなのを偉そうにいうオヤジつまらん。
あたりまえの常識を盾に説教たれるオヤジはつまらん。
グローバル変数賛成派頑張れ。オヤジをぶっ倒せ。
0120118
NGNG0121デフォルトの名無しさん
NGNG>要するにさ、プログラミングって発想なんよ。アイデアなんよ。
発想とかアイデアが必要とされるのは、研究とかごく一部の分野だけ。
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNGおや、ポリシーという言葉もお気に召さないのかい。
と言う事は君はかなり確固たるポリシーを持っている事になる。
ある意味感心だ。
私も安直に使われるグローバル変数に悩まされている者のひとりだ。
そういう意味では君の悩みは私の物でもある。
ただし、美しいルール(ルールではどうだろう?)の下に使われる
グローバル変数は有意義な場合が有る事を判って欲しい。
0124デフォルトの名無しさん
NGNGおまえさ、通勤途中で「あ、こうすればいいのか」
っておもいつたことないだろう?
それじゃ、プログラミング人生もつらいわな。
転職したら?
0125117
NGNG>言葉も
おい。俺は>>111じゃないぞ。
>美しいルール(ルールではどうだろう?)の下
たぶん違うはずだ。たしかlawという単語(=法則)が適合するはず。
味噌は、人間様の自由意志で必ずしもなんでも選択可能であるとは限らない、
という点なので。
それを満たさない、つまり人間の考え次第でどうにでもなるものは、
たいてい気分の問題に過ぎない。
>>124
いいこといった!
0126デフォルトの名無しさん
NGNGうちの会社は優秀な技術者ばかりなので、
エレベータは一度も防護策が必要になるようなトラブルが発生することはない
だから今後の製品には、楽だから防護策を取り入れない
そんな会社の製品を買いますか?
0128デフォルトの名無しさん
NGNGそんな手抜きプログラムを喜んで使う会社は無い
0129デフォルトの名無しさん
NGNG> グローバル変数は何処からでも参照できる(書き換えできるとは言わない事に
> 注目して欲しい。)特徴を持ったオブジェクトなんだ。
書き換え不能のオブジェクトは「定数」という。
>>123
> グローバル変数は有意義な場合が有る事を判って欲しい。
でも大概の場合、「自分だけがそう思っているだけ」である
場合が多いことを判って欲しい。
0130デフォルトの名無しさん
NGNGが持つ、パブリックなプロパティはどうなんですか?
このクラスに入れれば、管理されたグローバル変数みたいなもんですけど。
0131130
NGNG0132デフォルトの名無しさん
NGNG>>1が言っているのとは別の意味で「楽」になる
0133デフォルトの名無しさん
NGNGこれはあったほうが便利だと思うけど。
0134デフォルトの名無しさん
NGNG駄目だろ。
グローバル否定派は、変数は全部ローカル変数じゃないと許さないんだよ(藁
0135デフォルトの名無しさん
NGNGフラグ志向というか、状態遷移図的な手法が多くなるな。
当然、グローバル変数のみ的世界。 他人から嫌われています。
パソコンの世界で仕事すると、Delphiを使うせいか殆どこんな書き方はしないんだけど
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNGデバッグしやすかったりするね。
0138デフォルトの名無しさん
NGNG>グローバル否定派は、変数は全部ローカル変数じゃないと許さないんだよ(藁
おーい。OOPのメンバ変数のことも考慮してくれー(わら
というか、確かに本物のドキュなら考慮しないだろうけどな(わら
>>135
>フラグ志向というか、状態遷移図的な手法が多くなるな。
>当然、グローバル変数のみ的世界。 他人から嫌われています。
去年(今年じゃなく)のObjectDay2000で、組み込みの人も
大ホールで喋ってたぞ。
いわく、組み込み屋の開発手法において、第一の波は状態遷移図、
第二の波はOOP、なのだそうだ。
というか今第二の波に襲われ(教われ?)中、なのだそうだ。
まぁ1年以上前の話だ。今はもっと進んだんだろうな。
状態遷移をOOPで表すといえばStateパターンとか、
それによる挙動の自動変更といえばStrategyパターンとか、
ネタは色々あると思われるぞ。
状態遷移図すなわちグローバル変数、というもんでもない。
というか、1つのプログラムの中に同時に複数の「状態(遷移空間)」を
持ち込もうと思ったら、言語を使うかどうかはさておき手法的には
どうしてもOOP風になるだろう。
>>137
>タッチブレークかけられるならグローバル変数の方が
>デバッグしやすかったりするね。
もしかしてデバッガの話っすか?
それなら、今のグローバル変数とかしか監視できないデバッガを
逝かせるほうが、先決だな。
「Objectデバッガ」とでも呼ぶべきものが欲しい。
まぁVC++でも真似事は出来るんだが。Objectのポインタ値(変数じゃなく値)を
DragDropすれば、使い勝手は悪いが一応1つの(動的に作られた)Objectを
ストーカーできる。
0139デフォルトの名無しさん
NGNGグローバル大好きな、馬鹿がプロジェクトに紛れ込むと死ぬから
生理的に嫌悪。
(馬鹿じゃなければ良いんだけどね)
(もう、あのデスマーチは思い出したくない。
( 思い出したくなくても、時々夢にまで出てくる。
( 鬱ー
0140デフォルトの名無しさん
NGNG{
int var;
char var2;
}
anyfunc(...)
{
using namespace global;
...
}
とか、どう?
0141デフォルトの名無しさん
NGNG小手先のテクニックはどうでもよいと思われ
0142デフォルトの名無しさん
NGNG0143>142
NGNG0144デフォルトの名無しさん
NGNGどうしてそんなに毛嫌いするんですか?
みなさんバカですか?
きっとそうなんだろうか。
世の中プログラムの何たるかを知らない奴がおおすぎるよ。
0145デフォルトの名無しさん
NGNG. // /
. // ソ /
// ラ ./
// ネ /
// / ./
// ヨ /
∧空∧/___/
_______ {´ ◎ `}< ソラネーヨ
,ィィ,ィィ\):::::::::(
しししし(_つ:::::::::ヽ
ヽ__ノ::::::::::::::|二手
(;;;;;;;;;;;;;;;;;;;)
// >>__
<◎:::> <::::◎ノ
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNGconst int a = 100;
みたいなのか?
0148デフォルトの名無しさん
NGNGなるへそ。
0149デフォルトの名無しさん
NGNGヴァカ発見(藁
0150デフォルトの名無しさん
NGNG0151147
NGNG俺は当然のように使うけど、だめなのかな。
0152デフォルトの名無しさん
NGNGラッパー経由で書き込むと、このスレで追求してきた
メリットが失われませんか?
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNG使うべきときにのみ使おう。
なるべく使わなくて済むなら使わない。
どうしても使った方が見通しよくなるのであれば使う。
無意味にグローバル変数に 頼る のは好ましくない。
0155後発メンテ隊
NGNG100も200も見つかるとバグ要因探しきるのすんげーーー大変なんだよ。
使われ所を特定できるGetSet使っているほがまだ楽ヂャ。
っちゅうかモノ作るときに作り手が楽するためにグローバル使うな。
0156デフォルトの名無しさん
NGNGアホなオーバーフローすることがなくなります。
0157デフォルトの名無しさん
NGNGなので使わないか、使うときでも static にして操作関数を extern
します。天才の皆様は使っていただいて構いませんが、僕とかかわる
ときはバカな僕に合わせてください。
そんとき「合わせられん」って言い訳は聞きませんのでそこんとこヨロシク。
0158デフォルトの名無しさん
NGNGint i,j,k;
というグローバル変数があった。情けなくてどっと疲れた。
もちろん、i,j,kはいたるところで、for文のループ変数として使われていただけだった・・・
その会社、つぶれたけどな。
■ このスレッドは過去ログ倉庫に格納されています