グローバル変数撲滅委員会

このエントリーをはてなブックマークに追加
288仕様書無しさん:03/06/26 00:57
うざいな
289仕様書無しさん:03/06/26 01:01
グローバルな領域におかれた変数を使うより、
スコープが充分に限定された変数の方が
- レジスタに置きやすい
- スタックレジスタ(?)の近くに置きやすい
から、速度的に有利になりそうな気がする。
290仕様書無しさん:03/07/06 09:04
手抜き、不勉強でグローバル変数を使ってる奴が多いな
291仕様書無しさん:03/07/06 10:29
手抜きで使うのと、

知らずに使うのでは

天と地の差があるが、

結果は一緒だったりして
292仕様書無しさん:03/07/06 10:47
ごめんなさいごめんなさい。
手抜きでグローバル変数を乱発したプログラムを作ってしまいました。
このプログラムを保守する人には決して僕への連絡先を教えないでください。
お願いします。
あと、これからはこんな事をたくさんするので、お許しください。
293仕様書無しさん:03/07/06 11:49
>>292
お前COBOLerだろ?
294仕様書無しさん:03/07/06 12:05
質問です。
libpq(PostgreSQLのライブラリ)使ってるんですけど、
mainで接続し、その接続を別の関数へ渡すためにPGconn*を全ての
データベースへアクセスする関数へ渡しまくっています。
これって実はグローバルで宣言すればかなりすっきりだと思うのですが、
どうでしょうか?
295_:03/07/06 12:07
296仕様書無しさん:03/07/06 12:18
過激な出逢い
http://220.71.31.233/
過激な愛
http:///www.11555.net/b011/
297仕様書無しさん:03/07/06 12:19
攻撃開始
298仕様書無しさん:03/07/06 12:23
熊本人よ、いい加減にしとけよな。
299仕様書無しさん:03/07/06 12:25
過激な出逢い
http://220.71.31.233/
過激な愛
http:///www.11555.net/b011/
300仕様書無しさん:03/07/06 12:36
グローバル変数 static にしよう。
でその変数ごとに set と get 作ろう。

だめ?
301仕様書無しさん:03/07/06 13:50
public class Grobal {
private static final String hoge = "FUCKYOU!";
public static String getHoge() { return hoge; }
public static void setHoge(String str) { hoge = str; }
}
// >>300 だめ、だな。
302仕様書無しさん:03/07/06 14:13
>>301
グローバルインスタンスホルダー?
staticでなければ生成される順番が保障されるだけ少しはましだよ。
かなり馬鹿だと思うけど。
303仕様書無しさん:03/07/06 17:04
グローバル変数ばかりを目の敵にして
グローバル関数を野放しにする理由が意味不明。
304仕様書無しさん:03/07/06 17:11
あーあ。言っちゃった。
305仕様書無しさん:03/07/06 17:21
コードの最初にたくさん定数やら変数が定義されてるのはほんとに見る気なくす。

アセンブラで書くにしても、領域確保しといて、
変数はそこからのインクリメント指定で使うようにしたほうが読みやすい。

嫌なのは変数のスペルが間違ってるのに平気なやつね。
英語勉強しれって感じ。
他人の定義した間違ったスペルにあわせてコード組むのがすんごい嫌。

大体グローバル定義なんて、
どの関数で使ってる変数かわからないし、関数の目的がよみづらくなる。

グローバル関数に関してもお話がでてるようだけど、同じことだと思う。
それってWindowsのカプセル化を意識してれば自然となくなるでしょ。
カプセル化することで、クラスの意味も明確にできるし、読みやすくなるはず。

グローバルにするなら関数も変数もそれなりの意味を考えて欲しい。
306仕様書無しさん:03/07/06 17:25
固定データなんかはグローバル変数に代入しておかない?
307仕様書無しさん:03/07/06 17:29
ROMに取られるべき物と、RAMに取られるべき物。
308仕様書無しさん:03/07/06 19:09
>>294
DBオブジェクトとか普通1本のPGMで1つでしょ。
そんならグローバルでもいいや。とか俺も思うね。
309仕様書無しさん:03/07/06 19:48
>>308
グローバル変数ってのは誰でもアクセスができちまうことが問題なんだよ。
個数は問題じゃない。
呼び出し側が無制限に呼び出すため関わらなくていいようなクラスまで
巻き添えをくってしまうときがある。
また、グローバル変数が巨大なクラスにまとめられていたりすると
後でソースをみたとき呼び出し側が最低限必要なものがわからない。
結果バグが増える。
引き数で必要なときに必要な分だけデータを渡せるような設計にするべきだ。
できなきゃそいつは三流PGということで。
310仕様書無しさん:03/07/06 20:24
グローバル変数より、
const のつかないポインタを無条件に渡している方が漏れは怖い。

グローバル変数の使っている個所は、最悪、検索すればよいが、
ポインタにされてしまうと、検索すら使えない。もうだめぽ。
311仕様書無しさん:03/07/06 20:53
>>310
グローバル変数の問題に比べたら遥かに小さな問題だと思うけど。
312仕様書無しさん:03/07/06 20:56
ねえ、みんな
もっとグローバルに物事考えようよ
313仕様書無しさん:03/07/06 20:57
>>312 んー、もう一息。
314仕様書無しさん:03/07/06 20:58
言語によるのでは?
315仕様書無しさん:03/07/06 23:09
いくらマスターだからってさ、
片手間にテキトーに作ったのも判るけどさ、
編集対象のテーブルの全フィールド名を素のまま
グローバル変数できらなくったって・・・!!
316仕様書無しさん:03/07/07 00:04
私とうとう脱いじゃった♪
http://alink3.uic.to/user/angeler.html
317仕様書無しさん:03/07/07 14:35
>>309
>>グローバル変数ってのは誰でもアクセスができちまうことが問題なんだよ。
まぁ俺も大部分ではそう思うけどさ。
DBオブジェクトに限り、問題では無く恩恵を受けることのほうが多いよ。
複数のインスタンスやらスキーマを扱うDBアプリなんて至極まれでしょう?

そういったアプリではグローバル変数も「あり」ではないかと。。

本当にグローバル変数が必要無いのであれば、そのうちJavaでも定義出来なく
なるはずでしょ。一概に駄目では無いと思うよ。(もちろん大部分では駄目だけどね)
318仕様書無しさん:03/07/07 22:27
二日市人よ、いい加減にしろ。
319仕様書無しさん:03/07/07 22:28
ほんとに関数の引数に const char*
ぐらい書けるやつは一人も居ないのが泣けてくるよ。
バーカ。死ねバカ派遣先
320仕様書無しさん:03/07/07 22:30
よく考えたらC++のクラスのメンバ変数も、クラス内のグローバル変数だよな。
うっかりしてたよ。
321名無し@沢村:03/07/07 22:33
グローバル変数って、撲滅委員会を発足しなければならないほど、使ってるやつ多いわけ?
グローバル変数使ってるやつって少ないような気がするが…?
このスレの意図がわからん?
322名無し@沢村:03/07/07 22:39
>>319
はあ?関数の引数に const char* 書けるやつがいない?
ふつー書くだろ、そのくらい?意味がわからん…
代わりに何書いてるの?
323仕様書無しさん:03/07/07 22:40
const char * って使ったことないな・・・
324名無し@沢村:03/07/07 22:48
>>323
はあ?const char * 使ったことない?
const char * はプログラムの機能向上よりも安全性を高める意味で使うんだよ。
一般的な業務用アプリでも使ったほうがいい場面には山のように出くわすぞ。
一体ふつーどんなプログラム書いてるのよ?
325仕様書無しさん:03/07/07 22:54
>>324
全部 char * で済ましちゃう。
326名無し@沢村:03/07/07 23:14
>>325
プログラミングのことをあまり知らないの?
327仕様書無しさん:03/07/07 23:20
>>326
馬鹿自己中に、自作ライブラリをとんでもない使いかたされた
挙句に「バグ!なんとかすれ!」と理不尽な要求をされたという
経験がないんじゃないの。幸せデスネエ。
328仕様書無しさん:03/07/07 23:23
>>326
そんなことはないけど。
char * だけでも動作するし、const に興味が無かった。
329仕様書無しさん:03/07/07 23:25
>>327
うむ。無いかも。
330仕様書無しさん:03/07/08 00:26
キャストしちまえばそれまでの話だからねぇ。
ただVC使ってるとどっちが入力でどっちが出力なのかわかりやすい。
331仕様書無しさん:03/07/08 00:35
俺漏れも,仕事を始めるまでは const 使った事がなかった。
てか,意味が分からなかった。
そんな昔のコード読むとガクブルものだね。
332仕様書無しさん:03/07/08 00:45
漏れはconst使ってるかどうかを、相手の技量測る目安にしてる。
もっとも今まで出会ったPGの中で、使ってた香具師は1割にも満たないが。
333仕様書無しさん:03/07/08 01:09
入出力を判りやすくするという意味では
VBで言うところのByValとByRefみたいな感じになるのかな?
334仕様書無しさん:03/07/08 04:49
>>321
ここにカキコしてるような屋しはグローバル変数なんぞ殆ど使わないレベルなのだろう。
というか、本当にいるんだよ。勉強しねぇ屋詩が。
ヤシらときたら各ソースファイルにそれぞれプロトタイプとかextern変数宣言を書くんだ。
おりゃーそれ見たとき顎がはずれるかと思っただよ。
335仕様書無しさん:03/07/08 08:56
>>334
新人の頃それを見て真似してたよ。

今は必要な時変数や関数フレンド化している。
・・・っていうかグローバル変数ってほとんど受け渡しに使ってるわけだし、グローバル関数は使いまわしだろ?
フレンドにすればスッキリできて問題解決じゃねーか?
漏れへんな事いってる?
336仕様書無しさん:03/07/08 13:49
関数内で参照するだけなら
○○○ * より
const ○○○ *  を使ったほうが
関数内で変更されることはない、と見ただけで分かる
 
あと、間違って関数内で変更しようとしても
コンパイルエラーがでたりする。 分かりやすい、安全、安い、かっこイイ。
337仕様書無しさん
引数の型のことです