グローバル関数は悪者?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG最近何故かよく見かけるようになった単語、「グローバル関数」。
これっていわゆる「グローバル変数」と同じように、言語が
その機能をサポートしてさえいれば、できるだけ削減するように
努めた方がいいものなの?
一見すると同じ「グローバル仲間」ということで悪者扱いされがちだが、
関数のスコープがグローバルである事によって発生する問題というのは、
関数の命名時に起こる名前の衝突ぐらいしか思いつかんのだが。。。
関数の量が多くなると管理ができなくなるというのは論外。
それは管理をする側が悪いだけ。
「グローバル変数」が多い為にバグが発生することはあり得るが、
「グローバル関数」が多い為にバグが発生するなどということはあり得ない。
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG誰かそんなこといったか?
Mathクラスのstaticなsinメソッドと
Math名前空間のsinグローバル関数に何の違いがある?
言語上の制約による問題だけだろ。
0005デフォルトの名無しさん
NGNG>誰かそんなこといったか?
例)
http://bbs2.gamdev.org/test/read.cgi/gamedev/1054282821/145
http://pc2.2ch.net/test/read.cgi/tech/1064541405/369
他にも google などで検索すれば使用を避けるように
薦めている文が簡単に見つかる。
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG謙虚な性格なので・・・
0008デフォルトの名無しさん
NGNGって書いてるけど?
namespaceで包んでないグローバル関数は悪だとオレも思う
0009デフォルトの名無しさん
NGNG上のURLは読んでないのでわざわざ見に行かないが、
下のURLはグローバル関数は使うなとは言ってないように見えるが。
0010デフォルトの名無しさん
NGNGそういうのは「ぐろーばるねーむすぺーすをおせんするのはよくない」といいます。
0011デフォルトの名無しさん
NGNGまったくその通りでございますが、なにか?
0012デフォルトの名無しさん
NGNG「namespaceで包んでないグローバル関数は悪」と主張するより、
「グローバルネームスペースを汚染する行為はよくない」と主張したほうがよいという話だ。
0013デフォルトの名無しさん
NGNGオナジジャン
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGきみにとっては同じなんだろうね。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG違います。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGグローバル関数を使用禁止にした言語を使用していたものにとって
グローバル関数をゆるせる言語はとても奇異にみえるのだよ。
パターンのひとつ、デザインパターンくらいは知っておるな?
インスタンスメソッドとstaticメソッドとの違いはわかるな?
グローバル関数を許容するということはstaticメソッドを許容するようなものなのだぞ。
staticメソッドは重たい計算以外には極力使用することを避けるべきだ。
0025デフォルトの名無しさん
NGNGじゃあ標準ライブラリも使えないね。
0026デフォルトの名無しさん
NGNG馬鹿?
0027デフォルトの名無しさん
NGNGシステムコール使った事無いみたいだね。
0028デフォルトの名無しさん
NGNG馬鹿?
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG馬鹿?
0031デフォルトの名無しさん
NGNGおまえ、インスタンスメソッドはインスタンスごとにコードを持ってると思ってるだろ。
0032デフォルトの名無しさん
NGNGそういうお前はおまいはソフトウェアの品質を下げる厨
0033デフォルトの名無しさん
NGNGアセンブラから勉強し直しなさい。
0034デフォルトの名無しさん
NGNGstaticな変数もってるなら、
それは悪だと思う。
0035デフォルトの名無しさん
NGNG馬鹿?
0036デフォルトの名無しさん
NGNGそういう君は過剰サービスという言葉も知らない童貞。
0037デフォルトの名無しさん
NGNG関数を抜けても値が保持され続ける静的変数という意味でのstaticな変数は
ロガーみたいなもんに使うのならまだしも
それによって振る舞いが変わるようだったら悪だろ。
0038デフォルトの名無しさん
NGNGだったらグローバルなOSの資源は使えないね。
0039デフォルトの名無しさん
NGNGオブジェクト指向以前に、
可能ならこういう副作用ゼロの関数を書くのは昔からのマナー。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG?
俺のWindowsやLinuxはちゃんと資源をカプセル化して各種取り合いに対応できるようになってるけど。
0042デフォルトの名無しさん
NGNGグローバルなOSの資源も、static変数と同じようなものなんだが。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGWindowsでもforkできますよ?
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGアホがいます。
0048デフォルトの名無しさん
NGNGOpenGLは使えないね
0049デフォルトの名無しさん
NGNGファイルスコープやモジュールスコープ、プロセススコープを超えるOSスコープのスーパー
ウルトラ外部変数があるぞ。リブートを超えるエクストラスーパーウルトラ外部変数もありだ。
0050デフォルトの名無しさん
NGNGメモリ保護機能も糞もない。
0051デフォルトの名無しさん
NGNGアホがいます
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG副作用がないことと、リエントラントであることは別もんだよ。
0054デフォルトの名無しさん
NGNGもっと論理的思考能力を磨くか、意思伝達能力を磨きましょうね。
0055デフォルトの名無しさん
NGNGはぁ ?
俺の意見が正しいかどうかは別にしても、意志が「お前には」通じないと言うことか ?
わざわざ、アフォさ加減を世間に公表しなくてもいいと思うよ。
0057デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG具体的に指摘してみな。
0060デフォルトの名無しさん
NGNG最近お前みたいなガキが増えたな。
自分で考えろよ。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG>>60
プッ
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGグローバル関数の使用はひかえめに
0066デフォルトの名無しさん
NGNGstaticな変数を使わないようにすりゃいいんでしょ?
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGそこまでするならアクセサメソッド作って
シングルトンにしてしまえよ。
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGもしかしたら微妙に速かったりするかも知れなかったりなんかしちゃったりして。
0072デフォルトの名無しさん
NGNG制御分野なら嫌になるほど経験できるよ。
0073デフォルトの名無しさん
NGNG#include <sys/unistd.h>
}
0074デフォルトの名無しさん
NGNG処理の詳細を受け持つ関数に直接アクセスさせるなっていうだけの話でしょ。
0075デフォルトの名無しさん
NGNGみんなシングルトンなので問題なし!
0076デフォルトの名無しさん
NGNGそこで register int ですよ
0077デフォルトの名無しさん
NGNG馬鹿?
0078デフォルトの名無しさん
NGNGアフォ。大きなループでそんなんしたら、レジスターが一個使えんようになる。
言語能力が足りんのだ。言語能力と記憶力が発達していると
全部グローバルで書いても、スマートな芸術的プログラムが書けるのだ。
おまけに、俺だけに理解できて、誰にも理解できないプログラムだって書ける。
0079デフォルトの名無しさん
NGNG馬鹿?
0080デフォルトの名無しさん
NGNG宗教上の理由でしょうね。
カプセル抱えて自爆テロしかねないんで
ほっておくしかありません。
0081デフォルトの名無しさん
NGNG馬鹿?
0082デフォルトの名無しさん
NGNGオブジェクト指向の他に神なし。
オブジェクト指向は偉大なり。
0083デフォルトの名無しさん
NGNG馬鹿?
0084COBOL命
NGNG0085デフォルトの名無しさん
NGNG・名前空間で区切れば問題ないよ派
・グローバル変数はソース公開しても自分にしか理解できない
最強のプログラムをかけるので最高だよ派
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGオブジェークト。
じゃなかった。
オブイェークト。
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG関数名を AfxxxxにすればOK
0091デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています