トップページ⇒tech
985コメント273KB

バカなコーディング規約

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさんNGNG
誰が作ったんだ?このコーディング規約。意味わかんねーよ。
つか適用すると逆に悪くなるじゃねーか。

そんな、バカなコーディング規約を書いてください。
言語は問いません。
0002かぼ師匠@N88-ぱんぷきんNGNG
@ノハ@
( ‘д‘) < 一応2Getずざーー
0003デフォルトの名無しさんNGNG
ひとーつ、Ruby以外の言語は糞!
0004デフォルトの名無しさんNGNG
ひとーつ、グローバル変数は一切使用禁止。
0005デフォルトの名無しさんNGNG
String型の変数名は s からはじめること
0006 NGNG
変数の最初は小文字。
0007デフォルトの名無しさんNGNG
while( 1 )が通らない。
0008デフォルトの名無しさんNGNG
malloc、new禁止・・・わからんこともないが、でもなー
0009デフォルトの名無しさんNGNG
ポインタ型の変数はpから始めること
0010デフォルトの名無しさんNGNG
終端が'\0'で終わるモジレツ変数にはszを付けること
0011デフォルトの名無しさんNGNG
「じゃあ、pszHogeって何よ?」
って言うと答えない。矛盾だらけのハンガリアン信者。
0012デフォルトの名無しさんNGNG
言語はRuby以外禁止!
0013デフォルトの名無しさんNGNG
DWORD型の変数名はdwからはじめること。
0014デフォルトの名無しさんNGNG
クラス名はCからはじめること。
0015デフォルトの名無しさんNGNG
「じゃあ、構造体名はSからはじめるのか?」
って言うとそうでもない。矛盾だらけのハンガリアン信者。
0016デフォルトの名無しさんNGNG
typedef unsigned int uint
typedef unsigned char uchar

でも、これはこれで便利 という罠
0017 NGNG
でも、変数名にしろ型名にしろ、全部大文字とか区切り無しで大文字小文字
とか見ると頭がクラクラする。
0018デフォルトの名無しさんNGNG
「じゃあ、列挙型名はEからはじめるのか?」
って言うとそうでもない。矛盾だらけのハンガリアン信者!
氏ね。おまえはプロジェクトに必要ネエ
0019デフォルトの名無しさんNGNG
>>17
Javaは区切りなしで大文字小文字を推奨してるね。
まあ、郷に入りては郷に従え ってところか
0020デフォルトの名無しさんNGNG
コメントに顔文字不可
誰もそんなことしないっつーの
0021デフォルトの名無しさんNGNG
typedefした型名には_tを付ける。
0022デフォルトの名無しさんNGNG
クラスのメンバ変数は m_ 、グローバル変数は g_ をつけること。
0023デフォルトの名無しさんNGNG

どんなコーディング規約にせよ、徹頭徹尾規約を遵守していて
例外なんてひとつも無い というなら
それはそれで見やすいコードになるから。

大人数のチームでプロジェクトを進めるときは
規約のあるなしで大きく効率が変わるのも また真実。
0024デフォルトの名無しさんNGNG
Javaの名前付け規約は・・もうね、アホかと。バカかと。
0025デフォルトの名無しさんNGNG
>>19
Smalltalkもね。
Lispとは大違い(w
0026デフォルトの名無しさんNGNG
全ての関数にコメントを書くこと。
0027デフォルトの名無しさんNGNG
>>21
うちの会社では typedefした構造体 には_tをつけてた。
見やすかったよ
0028レイフェイNGNG
>>24
あれはあれでいい
0029デフォルトの名無しさんNGNG
>>22 と一緒に仕事したくない
0030デフォルトの名無しさんNGNG

boolean 型 ― hogeFlag
int 型 − iHogeHoge
文字列型 − strHogeHoge
その他オブジェクト型 − objHogeHoge

※オブジェクト型は曖昧になるのでなるべく使用しないこと





… Java です
0031デフォルトの名無しさんNGNG
>>22
g_は100歩ユズってよしとしてだ、
なんでメンバ変数なのにわざわざm_Hogeなんてつけるのさ?
見やすいとでも思ってるん歌?
0032デフォルトの名無しさんNGNG

おねいちゃんにティムポこすられてもがまんすること
0033デフォルトの名無しさんNGNG

おどりこにさわらないこと
0034デフォルトの名無しさんNGNG

かいしゃのトイレでヌかないこと
0035デフォルトの名無しさんNGNG
>>30
こういう勝手なこと外に見える部分でされると困る。
0036デフォルトの名無しさんNGNG
会社のデスクトップにオタ絵を貼らないこと。
0037デフォルトの名無しさんNGNG
出社拒否しないこと
0038デフォルトの名無しさんNGNG
勝手にイースターエッグを仕込まないこと
0039デフォルトの名無しさんNGNG
無茶でも納期に間に合わせること
0040デフォルトの名無しさんNGNG
会社のものを勝手に持ち帰らない。
0041デフォルトの名無しさんNGNG
客先のねーちゃんに仕込まないこと
0042デフォルトの名無しさんNGNG
ファイルのコピーを「ダビング」と言わないこと
0043デフォルトの名無しさんNGNG
見積もりは最後に1.25倍すること
0044デフォルトの名無しさんNGNG
たばこで絨毯焦がさないこと。
0045デフォルトの名無しさんNGNG
仕事中の2ちゃんのリロードは3回まで
0046デフォルトの名無しさんNGNG
バグで進捗焦がさないこと
0047デフォルトの名無しさんNGNG
客先で深夜にやるな!!
警備から報告あったとき死ぬかと思ったぞ!!
カメラは全て見ているんだ!!
0048デフォルトの名無しさんNGNG
>>47
ああ、見られてる・・ハズカシイ!
0049まもら ◆MtyDeTiY NGNG
第1章4項
規約
 識別子名に「O」「0」「1」「l」「I」などの文字を使用しないこと。
補足
 誤読の可能性を排除することで、ソースコードの可読性を向上させるよ
 う心がけること。
0050デフォルトの名無しさんNGNG
コーディング規則が一切無いこと。


人によって書き方違って修正が大変じゃないか、ゴルァ!!
0051デフォルトの名無しさんNGNG
サブルーチン一つにつき、書類一枚
記入事項
・変数の型 入力・出力の区別
・動作
等など

研修が終わると誰も、そんなことやってなかった
過去の記録は何もなかった

ある重要なプログラムにバグがあるので改修した
あとで、4年前にも同じ改修が行われていることが発覚した

同じプログラムのバージョン違いがあり、用途別に使い分けるのだが
どのバージョンが必要かは一部の人間しかわからない
おまけに日々、改造コードが発生している

ちなみに、コーディング規約は当方の部署ではやってません
0052デフォルトの名無しさんNGNG
SunのJavaコーディング規約
キャストの括弧の後にスペースを入れるっちゅうのは何とかならんもんか?
誰もやってないだろ。
0053デフォルトの名無しさんNGNG
sz ってハンガリアン記法だったんですね。
つい最近初めて見かけて、「どういう教育受けてるんだコイツ」と
思っていたところです。
0054デフォルトの名無しさんNGNG
>>31
 >>1の趣旨からすると、規約にもりこんでも効率があがらない
 規約をかけといっているのだから >>22はその意味で書いたのでは?

まぎらわしいから、今実施しているコーディング規約の場合と
意味がないとおもう規約は明記してください。
例 規約 メンバー変数はm_ とする
    XXXXなのでやっても意味がない

たしかVC++ではデフォルトでm_となるようなきがしました。
クラスのメンバー変数はm_ とする については
設定した値はクラスないで有効になるのだから、グローバルとおなじで
多少は意味があるとおもいます。
0055デフォルトの名無しさんNGNG
非明文化規約
 プロジェクトマネージャ、ディレクターは神なので、
 彼らが黒といったら黒である。

罰則規定
 違反した場合、社内の特高警察に捕まって首になる。
 さらに再就職を妨害される。

こういう会社が意外とあちこちにあるような…
0056デフォルトの名無しさんNGNG
ただいまコーディング規約策定中です
ハンガリアン記法の悪い点って何ですか?あるいはその他のいい点でもいいです。
0057デフォルトの名無しさんNGNG
今だ!!100ゲットォォォォォォオォオォォォォォォォォオォオォオオォ!!
0058デフォルトの名無しさんNGNG
女のバグは三回までノーカウント
0059デフォルトの名無しさんNGNG
>>58
女のバグは体で償う。
006057NGNG
ごめん、激しく誤爆してもうた、、。
しかも狙ってたスレの100は他人にゲットされてるし。。。
0061デフォルトの名無しさんNGNG
お願いだから、コーディング規約を
プログラミングしない人が決めないで下さい。
スキルの低い人が決めないで下さい。
一人で決めないで下さい。
考えないで決めないで下さい。
調べないで決めないで下さい。
変なのを考え出さないで下さい。
0062デフォルトの名無しさんNGNG
>>59
男のバグも体で償う。f
0063デフォルトの名無しさんNGNG
変数名なんぞ
int a,b,c,d,e;
こんな感じでいいんだYO!!
0064デフォルトの名無しさんNGNG
えー。ここは、バカなコーディング規約を書くスレなので
>>63はバカなコーディング規約例です。
0065デフォルトの名無しさんNGNG
クラス名も
A001,B002...
関数名も
A000101、A000102...
で、1関数1ファイル。

こないだF通の請けでこういうのがあったよ。ロートルアホ氏ね!
0066デフォルトの名無しさんNGNG
>63
イテレータで使う一時変数程度なら同意i,j,k,l,m,n
0067 NGNG
わはははは。
クラス名でそういうのは初めて見た。
0068デフォルトの名無しさんNGNG
>63
メンバとかグローバルにそんなのあったら発狂するな
0069デフォルトの名無しさんNGNG
>>65
これまだ見たことない。本当にあるのなら見てみたいな。
いったんコンパイルしてからデコンパイルしたらいいかも。
0070 NGNG
e.c.b.c.set( a.c.s.get() );
0071デフォルトの名無しさんNGNG
>>70
多分クラスの暗号化(リバース妨害機構)の結果だと思われ。
0072デフォルトの名無しさんNGNG
A0001.java
A0002.java
…
A0227.java
B0001.java
B0002.java
…
B0328.java
C0001.java
C0002.java
…

もうね (略
0073デフォルトの名無しさんNGNG
>>65
リファクタリングブラウザが普及したら
簡単なマクロで一括変換できそう。
でF通にソースを渡すときにはマクロを実行するという決まりができる。
0074デフォルトの名無しさんNGNG
昔、関数に渡すのは変数でしか渡していないプログラムを見たことある。

void foo(int x)
{
 ...
}

void bar()
{
 int a;

 a = 1;
 foo(a); /* foo(1) と書いていない */
}

これってなんか意味あったのかな ?
0075デフォルトの名無しさんNGNG
インナークラス禁止
0076 NGNG
んー、デバッカで追えないからかな?
0077デフォルトの名無しさんNGNG
>>74
a=1;
ここでブレーク貼れば関数へ渡す前に引数を操作できる。
foo(a);
0078デフォルトの名無しさんNGNG
>>75
うちのが凄いぞ。インスタンス変数のprivate禁止。
0079デフォルトの名無しさんNGNG
Stringのフィールドは必ず定義時に""で初期化すること。

class Hoge {
  String s1 = "";
  String s2 = "";

  Hoge(String s1, String s2) {
    this.s1 = s1;
    this.s2 = s2;
  }
・・・・・・・
0080デフォルトの名無しさんNGNG
>>78
なんのなんの。

インスタンス禁止。全部静的メソッド&グローバル変数。
…だったらC++使うなよ。
0081デフォルトの名無しさんNGNG
>>79
そりゃ Hoge hoge = new Hoge(); のときのためでしょ。
0082デフォルトの名無しさんNGNG
昔malloc禁止ってのがあったな。
いろんなところにstaticな配列がバッファで取られてた。
0083デフォルトの名無しさんNGNG
なんか・・・馬鹿なコーディング規約 と思い込んでる馬鹿の方が多いな。

中にはほんとに意味不明なのもあるけど、大抵は
なんらかのメッセージが込められているんだから
その意図を汲み取ってほしいなぁ。

文句言う前にちっとは考えてみろ
0084デフォルトの名無しさんNGNG
>>77
あ、それよくハマったな。変数にしときゃ良かったっての。
foo() が自作ならステップインしてその中で変えりゃ良いけど、
DLL の中とかだと俺の手に負えん…
0085デフォルトの名無しさんNGNG
>>83がいい事言った
0086デフォルトの名無しさんNGNG
>>83
うんうん。一理ある。
だけどコーディング規約に理由も書いていてほしいな。と思う。

たとえば
規約 ローカル変数禁止
理由 俺がわからんから。
とか。
0087デフォルトの名無しさんNGNG
関数の長さは画面に収まる程度
0088デフォルトの名無しさんNGNG
>>83
環境の制限に基づいているなら、確かにそうなんだけどね。

プロジェクトの構成員がバカばっかりだから、そいつらでも
分かるように、というのも、立派な理由かもな…
最終的にはそいつら使って納品するしかないわけだし。
0089デフォルトの名無しさんNGNG
>>87
それは常識では?
0090デフォルトの名無しさんNGNG
ポインタ使用禁止
0091デフォルトの名無しさんNGNG
>>88
そのバカがバカな物を作らないため&バカを育てるための
コーディング規約だと思う。
バカにとってはいい決まりで、そうでないものにとっては
悪い決まりってあるのかな?
0092デフォルトの名無しさんNGNG
ここのどこかで昔見た。

全ての定数は、マクロ定義すべし。

#define ONE 1
#define TWO 2

…。
0093デフォルトの名無しさんNGNG
>>92
for(i=0;i<10;i++)
これも許さないってこと?
0094デフォルトの名無しさんNGNG
>>92
constじゃいかんのか?

ん? そういうことではない?
0095デフォルトの名無しさんNGNG
>>83
C → C++ 移行時も、C → Java 移行時も「面倒だから」「スタイル変えたくないから」
「流儀がよく分からないから」という理由でコーディング規約引き継いでるプロジェクト
多々存在。だから Java で A0001.java や m_ とかも「馬鹿な規約」に入ると思われ。
0096デフォルトの名無しさんNGNG
>>92
それは典型的な バカなコーディング規約 だね。

#defineされたらデバッガじゃ追えないから
constな変数に収めるのが通例だね。
0097デフォルトの名無しさんNGNG
#define TWO_THOUSAND_ZERO_TWO 2002

printf ("今年は %d 年です。\n", TWO_THOUSAND_ZERO_TWO);
009883NGNG
>>95
その例は大いに同意
009992NGNG
>>94 >>96
それは突っ込みいれるべき?確かにそうなんだけどさ。
0100デフォルトの名無しさんNGNG
>>81
>そりゃ Hoge hoge = new Hoge(); のときのためでしょ。

そんな生易しいアホさ加減では無い!

他のオブジェクトフィールドも全てnullで初期化するというルールや
intも0で初期化するというルールまであった。
ついでに各Collectionも使用禁止。
クラス名は全て小文字で書く事。
0101デフォルトの名無しさんNGNG
祭りはここですか?
0102デフォルトの名無しさんNGNG
>>100
そりゃ非道い
規約編纂者を火炙りにしろ
0103デフォルトの名無しさんNGNG
>>101
祭りというか、久々の良スレ。
0104 NGNG
>>96
意味が違う。
for( i=0;i<96;i++){
とかで
#define connection_max = 96;
for( i=0;i<connection_max ;i++){
とするようにという意味だと思われ。

ソースの1箇所変更で全て変えられるようにという規約を誤解した新人の話。
0105デフォルトの名無しさんNGNG
8Tab,4インデントなコーディング規約。
0106デフォルトの名無しさんNGNG
>>104
ゼロも定数なんだけどね・・・ま、いっか。
その会社に幸荒れ!!
0107  NGNG
=余計だった
0108デフォルトの名無しさんNGNG
>>96
むしろ enum だろ。
0109デフォルトの名無しさんNGNG
JavaでCollection使わなかったら、かなりとんでもない
ソースが完成しそうだなあ…

昔、ポリモルフィズム使用禁止、ダウン&アップキャスト禁止
ってのがあったな。
0110  NGNG
>>109
俺規約だが何か?
0111デフォルトの名無しさんNGNG
#define CUG1 1
#define CUG2 2
#define CUG3 3

とかやってたので

#include <hoge.h>
static const int GROUP_STAFF = CUG1;
static const int GROUP_CUSTOMER = CUG2;
static const int GROUP_ADMIN = CUG3;
…

if(user_group == GROUP_ADMIN){
…
}

とかやったら、規約に反しているという理由だけで書き直させられた。
いまだに納得が行かない。ちなみにこのソースの開発・デバッグ・テスト
全て俺担当。他人に触らせる予定なし。納品対象外ソース。

最終的にローカル変数 user_group も fUsrGrp に書き直させられた。
むかついた。
0112デフォルトの名無しさんNGNG
>>111
むかついたのなら、規約の方を改善するように努力すべき。
永遠にアンタが担当をするわけでもないだろ。
いつどこでだれに担当がかわってもいいように構えておくのが
PGとして最低限の心構えだ。
0113デフォルトの名無しさんNGNG
うちのJavaによるシステム開発のルール。

その1 RMI&CORBA使用禁止。

あのさあ…

0114 NGNG
俺規約
1)変数は全て小文字 アンダーバーで区切ること
2)インターフェースは最後の手段。全部変数にする。
3)配列名と[]の間はタブで空けること。
4)配列のつもりなら   int name []
5)オブジェクトのつもりなら int [] name
6)両方混ざってるなら  int [] name [];
0115デフォルトの名無しさんNGNG
>>77
ときどき自分で思ったことあるけど、
改めて言われると納得。
デバッガに関数呼び出し時の引数を変更できる機能が
あると良いのかもしれない。
0116デフォルトの名無しさんNGNG
>>113
ライブラリが信用ならないから使うな。
もし欲しければ同等の機能は自分で開発しろ。

という意味では?
0117 NGNG
俺規約
7)RMI&CORBAは最後の手段。
0118113NGNG
その2 J2EE使用禁止。
その3 オープンソースライブラリ使用禁止。

オイオイ…
0119デフォルトの名無しさんNGNG
変数名の先頭には_をつけること。
0120 NGNG
8)HORBも禁止。自分で作る。
0121デフォルトの名無しさんNGNG
>>118
オープンソースというよりGPLだったのでは?
0122デフォルトの名無しさんNGNG
10) 既存のコンパイラは使用禁止。自分で作る。
0123113NGNG
>>116
うちの経験2年程度+ロートルCバカオヤジ混成のJava
エキスパートチームの方がよっぽど信用できないよ。
0124デフォルトの名無しさんNGNG
>>112
害虫なので言うべき立場ではない。ちゅうかとっくにこの会社切ったけど。
害虫で切り盛りしてたんで、今の技術についてゆける社員いなくて倒産
一週間前らしい。Web サイトは三年前から更新されておらず。
0125デフォルトの名無しさんNGNG
>>121
GPLで配られているライブラリって商用には使えないんだっけ?
0126デフォルトの名無しさんNGNG
>>78
>うちのが凄いぞ。インスタンス変数のprivate禁止。

まえに何処かで、「privateは極力使うべきではない!」
と力説する人を見たことが有る。
0127113NGNG
おれもロートルCバカオヤジだから
ちょっと心が痛いかも。
0128デフォルトの名無しさんNGNG
>>125
使える。ただし、中にいれちゃったらGPLものになるので
バイナリ納品先にはソースを公開する義務が発生する。
0129 NGNG
俺規約
9)社内ライブラリ使用禁止
理由:天才の俺様に他人のソース使えと言うのは屈辱である。
   天才には天才のやり方がある。
   かような一般PG向けのライブラリなどちゃんちゃら可笑しくて
   使っていられないのである。
0130デフォルトの名無しさんNGNG
>>126
なんで使っちゃダメなの?わけわかめ
0131デフォルトの名無しさんNGNG
>>130
おそらくクラスを構造体の延長としてしか捉えてないからだと思う。
0132 NGNG
>>130
忍者部隊月光ネタ。
0133 NGNG
みんな 引くなー
0134デフォルトの名無しさんNGNG
>>129
使えるものは使った方がいいとおもうよ。
くだらないデティールに拘って効率落とすよりは
バンバン既存のライブラリを使用すべきだ。

バグがあるかもとか遅いかも、というのは
まったく別問題で、そんなものはあとから
いくらでも潰せる
0135デフォルトの名無しさんNGNG
補足
明確な機能区分がまったく出来てないライブラリは
使うべきじゃないけどね
0136デフォルトの名無しさんNGNG
VBはいいけど、VBオンリー使いはバカばかり。
コーディング規約はいいけど、コーディング規約
決めてるだけな奴はバカばっかし。

似たようなもんだな。
0137デフォルトの名無しさんNGNG
(Java っす)
パフォーマンスの観点より:

 1) synchronized 使用禁止。
 2) メソッドには必ず static final をつけること。
 3) extends は使用禁止 (サブクラス不可の意)。
 …

会議中に資料読んでて突然 ( ´,_ゝ`)プッ

…

( ´,_ゝ`)ププッ

金の折衝がつかず結局プロジェクト離脱。後はこんな感じ

 |
 |__∧
 |∀・)ニヤニヤ
⊂  )                    
 |  /                      
 |_)                       
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0138デフォルトの名無しさんNGNG
コーディング規約決定って、その人の知識と見識の良し悪し
が、実装そのもの以上に如実に現れるんだな。
俺は絶対そんな立場にならないようにしたいな。恥晒す
だけの立場なんて。
0139デフォルトの名無しさんNGNG
>>137
苦肉の策だね。
VMの質を上げればいいんだけど。
VM開発なんてどこもやらないやれないしね。
0140デフォルトの名無しさんNGNG
関数の仕様書の書き方だけ徹底させた。
あとはテストがしやすいように関数間の距離をなるべく空けさせるよう
指示した位かな。
0141デフォルトの名無しさんNGNG
>>139
synchronizedがおかしかった事なんかないけどな。

使ってる奴がアホでデッドロック起こしまくって、追跡方法も
知らないで四苦八苦しているシチュエーションなら、死ぬほど
出くわすが…
0142デフォルトの名無しさんNGNG

癌は、命名規約作っただけ、モジュールに番号振っただけで開発物
管理した気になってる管理者だな。
0143デフォルトの名無しさんNGNG
>>142
ウチには勤怠管理だけで役職手当貰ってるバカがいるよ。
0144 NGNG
synchronized使わないでマルチスレッドどうすんだろ?
0145デフォルトの名無しさんNGNG
>>144
mainスレッドしか使わないんだよ、きっと。
後はマルチプロセス。JVMをforkしまくり。ゲゲ。
0146名無しさん@おひさまのよう。NGNG
>>143
うちもうちも
0147137NGNG
>>144
サーバサイドなんで、どうする気なんでしょうね。というか、書いた人が明らかに
Java 知らず、「Java パフォーマンスチューニング」あたりの生齧り知識を並べ
立てただけのようでした。もう完全にヲチモードです。多分 SingleThreadModel
を使うことになるでしょう :-P
0148デフォルトの名無しさんNGNG
>>147
完全なシングルスレッドじゃサーバは出来ない〜!
JavaはブロッキングI/Oしかないんだから、ソケットの監視ができないよ〜!
どうすんだろね。ほんとに。
0149デフォルトの名無しさんNGNG
>>148
今時マルチスレッドにたよっているお前が痛い。
ということにしたい?
0150 NGNG
察するところ、ファイルロック使うんだろうな・・・。
0151137NGNG
ちなみに技術力もノウハウも無いのに、過去のコネと営業力だけで仕事取ってきて
協力会社集めて、なおかつリーディングも取ろうとしている会社です。もう発注元も
見切りをつけて次は他へ頼もうという気らしいです。いったい何を作る気なんでしょ
うね。そもそも extends しなきゃサーブレット作れないのに…。会議に参加した協力
会社の人達はみんな苦笑していました。金の折衝〜とか言いましたけど、本意は
キナ臭いのでさようなら〜です。
0152デフォルトの名無しさんNGNG
>>151
ちく裏あたりで社名晒してくれよ。参考にするから。
0153 NGNG
Nてーてー出たかな?
0154デフォルトの名無しさんNGNG
 スレッド使用禁止
 ソケット・パイプ使用禁止
 プロセス間通信はファイルを使って行うこと

っつーのがあったな。ちなみに、ファイルの排他制御してなかった(なんだかなぁ)
0155 NGNG
プロジェクト回数と表情
1回目( ´,_ゝ`)ププッ もうアフォかヴァカかと・・・・
2回目(TдT)マズー    又来たよーん
3回目(-_-)     力関係を見せ付けられた・・・。逆らっても無駄・・・。
4回目(゚ε゚)キニシナイ!!  そして彼は、かつて馬鹿にしていたアフォS∃に育っていくのであった。     

0156デフォルトの名無しさんNGNG
>>155
こうやってパカは継承されていくの……。
ありがとう。怖い物を見せてもらいましたよ……。
0157デフォルトの名無しさんNGNG

変数名は混乱を避けるために、
変数を作った人の名前を必ず前につけること。

結果:
for( HayashiT_i=0 ; HayashiT_i <= 0 ; HayashiT_i ++)


名前空間?(笑
0158デフォルトの名無しさんNGNG
>>157
ネタ?
0159デフォルトの名無しさんNGNG
>>157
会社名を明かす義務が生じたらしい。
明かせ。
016074NGNG
>>76, >>77, >>84
なるほど、意味が無いわけじゃないんだ...。ありがと。
0161デフォルトの名無しさんNGNG
>>160
>>83
0162デフォルトの名無しさんNGNG
キツイな>>161
0163デフォルトの名無しさんNGNG
>>159
どっちかというと転職は嫌いなので、遠慮しときます
0164デフォルトの名無しさんNGNG
>157
絶対ネタだね。いくらなんでも信じないよ。
0165デフォルトの名無しさんNGNG
ハンガリアンだかモンゴリアンだか知らないけど、
関数を短く纏めてればローカル変数にpだのszだのつける必要はないのにさ。

そういや、インクルードファイルからインクルード禁止っていう規約の会社もあったな。
0166デフォルトの名無しさんNGNG
委譲禁止。

びっくりしたよ。
0167デフォルトの名無しさんNGNG
1ソース1クラス(因みにJavaね)。インナークラス厳禁。なんでも、.javaに対し、.class
が複数あると、管理できなくなるそうな・・・。
0168デフォルトの名無しさんNGNG
コーディング禁止
0169デフォルトの名無しさんNGNG
>>167
.classファイルが増えすぎて管理しきれないってのは解る気がする。
俺の所もクラスファイル5000超えたし(藁
つーか、その為にパッケージが有るんだがな。。。
ウチの会社も理解できない奴が多くて困る(藁
0170デフォルトの名無しさんNGNG
言語:C
規約:標準ライブラリでさえも使ってはならない。
0171デフォルトの名無しさんNGNG
>170
djb大先生ですか?
0172デフォルトの名無しさんNGNG
.classばらばらに管理してるのは、頭悪すぎだと思われるが…
Cだって.objファイルでなんか管理しないでしょ?
0173デフォルトの名無しさんNGNG
なんか異様にレス速度早いぞ?

おまえら早く寝ましょう
0174デフォルトの名無しさんNGNG
言語:Java
Cloneable使用禁止。
Serializable使用禁止。

間抜けなコピーロジック(クラス毎にシコシコ実装)とストリーム読み書き
ロジック(こっちもクラス毎にシコシコ実装)がコード全体の3割くらいを
占めている。
0175デフォルトの名無しさんNGNG
自社の技術担当重役製オナニーライブラリ以外使用禁止。
恐ろしくて使いたくないんだが、使わないと首。

「頼むからバグってませんように!」毎日両手を合わせて
ますが、裏切られる毎日。1年後には顧客(ノンバンクだか
らヤクザがらみかも…)に追い込み掛けられて首吊り自殺か
なあ…
0176デフォルトの名無しさんNGNG
ひと〜つ、人の世の生き血をすすり、
ふた〜つ、不将な悪業三昧、
み〜っつ、醜い浮世の鬼を、
退治してくれよう,桃太郎侍!
0177デフォルトの名無しさんNGNG
ここちくりスレにしない?
0178デフォルトの名無しさんNGNG
定数と比較するときは
 if (hoge == 0)
ではなく
 if (0 == hoge)
とすること‥‥だそうだ。ハゲしく萎えたYO!
0179デフォルトの名無しさんNGNG
if ( hoge == 1 )
等のように変数,演算子,括弧の間は1文字空ける。
おかげで親指が勝手に動く癖がついたYO!
0180デフォルトの名無しさんNGNG
>178
それは一応意味は有るよ。

==を間違って=と書いたとき、
if(hoge= 0) だとエラーが出ずコンパイルが通ってしまう(&意図したとおりには動かない)が、
if(0= hoge) だとコンパイルエラー(定数には代入できないYO!)が出る。
0181デフォルトの名無しさんNGNG
178がJavaだったら皆で笑おう
0182デフォルトの名無しさんNGNG
>>180
でも a = b と b = a の間違いはチェックできないし、最近のコンパイラなら警告
出してくれるから、あまり嬉しくない気が。
0183デフォルトの名無しさんNGNG
>>178
C使ってた頃はよくやったが?
typoで if (0 = hoge)するとコンパイラが弾いてくれた。
小僧が書いたif (hoge = 0)で泣いた事、数知れず。
0184デフォルトの名無しさんNGNG
lint
0185デフォルトの名無しさんNGNG
>>176 のつづき

よぉ〜つ、横にもハゲがある・・・
0186 NGNG
>>169
OOだとクラスは爆発するもの・・・。
ひょっとしてOOで組んでます?
0187 NGNG
追記:Javaでは爆発します。
0188デフォルトの名無しさんNGNG
>>187
こまめにパッケージしようぜ
0189デフォルトの名無しさんNGNG
JAR くらい使え JAR …
0190デフォルトの名無しさんNGNG
>>175
うちも同じく自社製データベースアクセスライブラリ以外使用禁止。
しかし、便利な機能など何も無く標準のデータベースアクセスライブラリ
(の一部)をラッピング&機能縮小しただけ。

便利な機能(?)といわれているのは接続するデータベースサーバを
指定しなくても設定ファイルからみるから楽だと。
おかげで二つ以上のデータベースサーバに接続できない。
しかも汎用と名前を付けてるのに読みに行く設定ファイル名は固定だから
プロジェクトごとに改造している。

あとトランザクション系のメソッドが無かった。
言ったら必要ないと思ったそうだ。もちろんつけさせたが。
他にも不自由な点がたくさん。

不自由な点を改善すると標準のライブラリとほとんど同じになるので
標準ライブラリを使おうといったら、「利点がない。」だと。
なに言ってやがる、自社ライブラリは、バグだらけ。汎用性がない。
機能が少ない。と欠点だらけじゃないか。
0191デフォルトの名無しさんNGNG
>>190
あーウチもウチも。コーディング規約とはちょっと脱線するけどね。バグだらけ+明らかなドキュメント不備。
結局、ウチら開発側がブラックボックスの中までステップ実行してバグや仕様を見つけてる。

 1. 「○○より先に××呼ばなきゃだめなんか〜」
 2. 「○○って必須なのかよ〜、どっから持って来んのよ〜」
 3. 「DeleteMode って文字列なんだけど、保留するときは何指定すれば良いんだよ〜」
 4. 「これの呼び出しで発行されるのって、この SQL だったんか〜」
 5. 「なんで Get〜 呼び出すたびに毎回DBに SELECT 行ってんだよ〜」
 6. 「じゃ Repeatable Read 必須やんか〜 デッドロック起こすんじゃね〜のか?」

等々、1 機能使うだけで大騒ぎです。
0192デフォルトの名無しさんNGNG
グチはマ板で…
0193デフォルトの名無しさんNGNG

「ソースファイルのヘッダ部には開発担当者の名前、住所、
 メールアドレスおよび携帯番号を記述すること (厳守)」

会社から携帯もらってるの何人いたっけ… 俺の私物なんすけど…
いや、それ以前に何かがおかしい… 派遣いっぱいいるし…
0194デフォルトの名無しさんNGNG
>>193
コーディング規約じゃないけど、某所での話。お客さん側から

「サーバのアカウントを作成するので、既にファイルサーバで自分に
 割り当てられている ID と名前、住所と年齢を記入してください」

という連絡があった。なぜ住所と年齢が? みんな訝しがったがとりあえず書い
といた。週末、俺のアパートに年齢特約のパンフ持った保険の勧誘員が現れた。
0195デフォルトの名無しさんNGNG
実話。
「えーと、アレ。モンゴリアン方式で。」
0196デフォルトの名無しさんNGNG
そいつチョップしてやれ
0197デフォルトの名無しさんNGNG
>>157
ネタ決定。ネタだと思われたくなければ、理由を聞いてきてくれ。
0198デフォルトの名無しさんNGNG
うちではDelphi使っているのだが、
先輩は「どうせコンパイラが型チェックしてくれるから、
妙な変数名付けるのに時間食うくらいなら、ほかのコード作れ」と言われた。
漏れの先輩はただのDQNか?神か?
0199デフォルトの名無しさんNGNG
windowsの
m_sdafj;dl
みたいなm_
ってセンス悪いよね・・・
ダサい
そういうのを使ってるやつの服装は大抵ゲイツっぽい!?
0200デフォルトの名無しさんNGNG
200ズザー
0201デフォルトの名無しさんNGNG
>>198
自分で変数名に型情報を付加するよりもコンパイラが吐いた型エラーを見て後から直すほうが時間がかかるのでDQN
0202デフォルトの名無しさんNGNG
>199
代わりの案キボーン
ハッタリが利いてクールなやつを1つ
0203デフォルトの名無しさんNGNG
コーディング規約決めた奴のアホさ加減をさらし者にするスレですね。
どこの会社でも無限バカが責任者になるですね。
並みのプログラミング持っていれば絶対しないことをしまくるですね。
0204デフォルトの名無しさんNGNG
>202
代わりもなにもm_なんて使わなければいいだけだろ?
クラスウィザードで自動作成されようが、片っ端から削除。
こうしてソースの健全性は保たれた。
0205デフォルトの名無しさんNGNG
m_をつける理由はあるが、m_をつけてはいけない理由はないんだよなぁ。
0206Ruby!NGNG
>202
@をm_に変換するプリプロセッサをつくるとか。
0207デフォルトの名無しさんNGNG
>205
>m_をつけてはいけない理由はない
それはm_を自作クラスにまで付けてる様な不感症ヴァカの理論だろ。
0208デフォルトの名無しさんNGNG
>>203
>>83
0209デフォルトの名無しさんNGNG
>>208=83
馬鹿発見
0210 NGNG
>>207 ではm_ をつけない方がいい理由を説明してください。
    面倒だからですか?
0211デフォルトの名無しさんNGNG
また始まったよ…
0212通りすがりNGNG
>>210
カコワルイ
0213デフォルトの名無しさんNGNG
>>210
もうマム板で m_ の話はいいよ。最近来た連中は知らんのか。
だいたい揚げ足取る気満々なのみえ見えだし。
0214デフォルトの名無しさんNGNG
クラスやパッケージなどの名前空間の意味が分かってない
アホが、妙な接頭辞をクラスにつけることを強制している。

class a.aaa.AAAHoge
class b.bbb.BBBHoge

…イランだろ。
0215デフォルトの名無しさんNGNG
>>210
説明を要する時点で不感症ヴァカってこと。
0216デフォルトの名無しさんNGNG
LISP系はもしも気に入らん仕様(名前とか構文とか)があっても
全て自分でリプレースできるから良い。実はプログラマ天国だぞ。
0217デフォルトの名無しさんNGNG
>215
定説って事ですね♪
0218デフォルトの名無しさんNGNG
>>216
それは確か、xyzzyのLispモードで関数に色がつかない理由でしたね。
0219デフォルトの名無しさんNGNG
>>157
KenThompson_i、DennisRitchie_j、BillJoy_k
なんて変数があったら恐れ多くて変更できないYO!
0220デフォルトの名無しさんNGNG
>>219
KusakabeYouichi_i だったら間違いなく全回収だな。
0221デフォルトの名無しさんNGNG
むしろ、1つみつけたら、全ソースgrepすべき。
0222 NGNG
>>214 JAVAだよね言語は? 当方VC++ パッケージ?
>>215 説明ができないと、人を説得することは、できません。
   ここ2chでのいいのがれは、一般社会では通用しません。
-----------------------------------------------------------------
m_は好みの問題だけど、VC++では一般にデータめんば−に
使用されているからしたがっています。
------------------------------------------------------------------

0223デフォルトの名無しさんNGNG
>>222 蒸し返すなよ (´д`;)
0224派遣@某製作所ソフト部門NGNG
変数名は日本語から連想されるアルファベット3文字の組合わせ。
・ラベル&ワーク変数の名付けには、変換テーブルを使用。
・構造体名&メンバ名は、別の変換テーブル&構造体毎の独自ルールを使用。
・変換テーブル&構造体の仕様書は、Excelワークシートで管理。(変換は全て手動)
  例:×○部=ドキュソプログラマ → KY1 = DQNPGM

はっきり言うて、WinMe+64MB RAM でOffice2k 使って仕事するのはキツイ。
案の定スワップしまくりでHDが次々昇天してる。
修理代につぎ込むよりメモリ買えと言いたいが、派遣で新人の上
仕事が遅いので何とも言えん。
ちなみに自分の何倍も仕事が速い周囲の先輩方は、PCには疎い(PC自作程度で驚く)ので
環境が改善される見込みはまったくナシ。

鬱だ…
0225デフォルトの名無しさんNGNG
鈴木太郎は"鈴木太郎"
自宅というスコープに帰れば"お父さん"
会社というスコープに入れば"係長"
スコープでの役割に応じて呼び方は変わるけど、
たかだか、流行廃りのある処理の都合上、いじくる奴らの都合上
"m_鈴木太郎"とは呼ばれない、呼ばれたく無い。

設計書とコードで表記かわったらかなわん・・・
元ネタ知らんから蒸し返してスマソ。

鈴木太郎って誰だ?(w
0226デフォルトの名無しさんNGNG
>>225
俺の小学校の時の同級生だよ
0227デフォルトの名無しさんNGNG
>>224
WinMe+64MBにかすんでしまってるが、

> 変数名は日本語から連想されるアルファベット3文字の組合わせ。

これすごくないか?

int wndyokhab = this.Width; //WiNDow no YOKo HABa

とかするのか?
0228デフォルトの名無しさんNGNG
m_ってようするにスコープが関数の変数と区別するためだろ。
スコープがグローバルの場合g_で、クラスの場合m_で、関数の場合何も付けない。
まぁm_でなくてもこの三つが区別できればなんでもいいんだけど。

クラスと関数のスコープの違いについて意識することはあるので、
あった方が便利と感じているのだが。
0229デフォルトの名無しさんNGNG
今からこのスレは日本語をアルファベット3文字で書いてみるスレになりました。
0230デフォルトの名無しさんNGNG
MFC使うときはm_つけるし、JavaやC#のときはつけない。
生C++のときは、迷うけど、結局つけてる。つけて損は無いし。
0231デフォルトの名無しさんNGNG
m_だったり、_だったり色々あるけど、
言語処理上のスコープの違いを変数名につけちゃダメ
言語仕様の予約語privateとか使うのみ。
ってのが流行なのかな。教条主義な人たちは言語固有の型を表す
プリフィックスdw,sz,pなどもダメとおっしゃってます。

俺としてはそんな細かいことどーでもよくて、
開発プロジェクト内で決まり事が内容どーでもいいから
決まってればいいじゃないかぁーだな。
0232デフォルトの名無しさんNGNG
>>230
言語毎にいちいち変えるのしんどくない?
つかったりつかわなかったり、どーしようか悩んだり・・・
0233230NGNG
>>232
そんなの苦にならないけどなぁ。
むしろ自作クラスがライブラリ内のほかのクラスから浮くほうが気になるから
郷に入っては郷に従ってるよ。
0234232NGNG
>>233郷に入っては郷に従ってるよ。
なるほどー、道理。
たまに(よく?)郷に入ってみたもののみんなバラバラってあるよね。
あたしたち誰についていったらいいの?と途方にくれるピグミン状態。
0235デフォルトの名無しさんNGNG
>>231
szはともかくdwやpは重要だと思うなぁ。
0236まもら ◆MtyDeTiY NGNG
>>229
ZNNDDN MSISARCTN
0237デフォルトの名無しさんNGNG
while禁止。
無限ループするから。
forは…?
0238デフォルトの名無しさんNGNG
>>237
もちろん禁止。
do〜whileに至っては減俸モノだ。
0239デフォルトの名無しさんNGNG
>>238
関数呼び出しは?
0240デフォルトの名無しさんNGNG
>>239
それは許可。
よって、どうしてもforやwhileと同じ構造を作りたいときは
すべて再帰によって行うべし。
0241デフォルトの名無しさんNGNG
確かに再帰なら無限ループはしないな。
いつかはスタックが尽きるだろうし...
0242デフォルトの名無しさんNGNG
「ネストは3段まで」
おかげで不必要にトリッキーなコードが続出。
0243デフォルトの名無しさんNGNG
遅くなるからローカル変数禁止ってのがあったな。
10年以上前のヤツだけど。
俺はそんなもんには従ってなかったが。
0244デフォルトの名無しさんNGNG
いよいよgotoの出番だな。
0245デフォルトの名無しさんNGNG
>>242
同一ファイルなりクラスなりに関数でくくりだすだけじゃん。
トリッキーになるのは、コーダがアホだから。
0246デフォルトの名無しさんNGNG
>>243
今は逆で、グローバルが遅くなるよ
(全てのケースには当てはまらないかも)
0247デフォルトの名無しさんNGNG
>>240
可読性が低くなりやすい再帰を禁止する方が、まだ分かるような…
0248無限ループしない?NGNG
public static void main(String[] args){
main(args);
}
0249デフォルトの名無しさんNGNG
再帰のみって・・・ 
0250デフォルトの名無しさんNGNG
>>248
StackOverFlow。
0251デフォルトの名無しさんNGNG
あぁ、止まるのはOKなのか・・・
0252デフォルトの名無しさんNGNG
>>249
【問】
再帰のみで for、while、do〜while を実装せよ。  ( 5点 )
0253デフォルトの名無しさんNGNG
>>214
あるある。メソッド名にまでプレフィックスを付けようとか言い出しやがった。
さすがに阻止したが。
0254仕様書無しさんNGNG
>>253
ワラッタ
0255デフォルトの名無しさんNGNG
>>249
関数型言語だと常識的なコーディングだが、C でやったら無茶苦茶に遅くなる
わな。(まさか末尾再帰の展開をしてくれる C コンパイラとか無いよな)
0256デフォルトの名無しさんNGNG
>255
gccのコンパイラオプション参照。
でもgccだけで出来てもちっとも嬉しくないことに気づく。
0257デフォルトの名無しさんNGNG
>>255
あるよ。それも一般的によく使われているもので。
0258デフォルトの名無しさんNGNG
昔からgccはするよ。
0259デフォルトの名無しさんNGNG
Linux + gccで
int main(int argc,char ** argv){main(argc,argv);return 0;}
したら、せぐふぉった...
(´-`).。oO(なんでだろ?)

0260デフォルトの名無しさんNGNG
>>256
ほんとだ。-mtail-call なんてオプションがあるのね。
0261デフォルトの名無しさんNGNG
>>259
それはreturn 0;がmain()の後にあるから末尾再帰ではない。
よってスタックオーバーフロー。
0262デフォルトの名無しさんNGNG
>>234
ピクミン
0263デフォルトの名無しさんNGNG
int main(int argc,char ** argv){return main(argc,argv);}
つーこった。
0264224NGNG
>>227
yes。実際には類似単語が多いのでもっと読みづらいが。
ちなみにコメントは半角カナだったり。(w

例:WNDYOKHAB = GMN.YHB /* ウインドウ ヨコ ハバ ハ ガメン ヨコハバ */
(全て大文字なのと、"横幅"の表記が2種類あるのは実例に基づく。)

でもこんなのはまだ序の口。
このソースをデバッガ無しでチェックせんとアカンのよ。(´д`;)
0265デフォルトの名無しさんNGNG
なんかアセンブラやってた時代を思い出すな
0266デフォルトの名無しさんNGNG
>>264
それは罰ゲームかなにかですか?
0267デフォルトの名無しさんNGNG
>>264
同情を禁じえないよ。
0268デフォルトの名無しさんNGNG
>>264
規約であるところがなんともあれだが、
略称表記&何パターンかあるというのはありがちだな。
データベース絡みで特に。

kkk←KEIHIKAIKAKE(経費買掛)
kkk←KANRIKAIKEI(管理会計)
kmk←KAMOKU(科目)
kmk←KOMOKU(項目)
KEIHI, KH, KIH ←どれも経費
JSK,JISSEKI,JISEKI←どれも実績
SHOHIN,SYOHIN,SYOUHIN,SHOUHIN←どれも商品
:などなど

鬱だ。
0269デフォルトの名無しさんNGNG
>>268
もういっそ日本語にする、という手もある。
近頃は2バイト文字も許されるしね。
0270デフォルトの名無しさんNGNG
>259
いちいち変数を記述するのに仮名漢をOnにしたり、offにしたり
するのは鬱陶しい。
0271デフォルトの名無しさんNGNG
>>270

素直に入力補完機能付きIDE使えや。
0272デフォルトの名無しさんNGNG
同一の何かを示すシンボルに、いろんな文字列を使用するの、止めて欲しい。
勘違いしやすいし、GREPやFIND使えないし、ろくなことがない。
そんなルール決めてる奴は、マトモなソース書いたことないんだろうなあ。
0273デフォルトの名無しさんNGNG
たとえば、
>bool ブール処理済み?;
>ブール処理済み? = true;
にたいして、どんな入力補完をすれば、
仮名漢をまったく使わずに済むんだね?
0274デフォルトの名無しさんNGNG
>>273
ちょっと賢いIDE使えばメソッドやインスタンス等々の一覧が
メニューで選べるから、それでいいんじゃない?

まあ、いやなら日本語名を使わない選択肢もあると思う。

規約で 「日本語名を使うな!」 ならまだ判らないでもないけど
「日本語を必ず使え」 なんて言うわけ無いしね。
0275デフォルトの名無しさんNGNG
>>273
鬱になりそうなテクニックとして

boolean is生理;
public String get源氏名();

なんて頭にアルファベットをつけるとか(・∀・)
0276デフォルトの名無しさんNGNG
ていうか、変数名やメソッド名って、ほとんど全部コピペで済まさないか?
俺は結構長めの変数名をつけるほうなので、いちいち手入力してられない。
0277デフォルトの名無しさんNGNG
>>276
同意。
最初の一回にしても、コメントを書くのを止めればその方がタイプ量は
少なくて済む。
0278デフォルトの名無しさんNGNG
>>275 ワラタ
でも、マジメな話、日本語変数名ならプレフィックスよりサフィックスが
いいと思う。ジャパニーズ記法とでも名付けるか? (藁
0279デフォルトの名無しさんNGNG
>>278
プレフィックスの方が熱くていいんだけどなぁ
unsigned int 震えるぞハート(); とか
void 燃え尽きるほどヒート(); とか
0280デフォルトの名無しさんNGNG
>>278
boolean 生理かよ! = false;
public String 源氏名ゲトー(); みたいな。
0281デフォルトの名無しさんNGNG
void 源氏名設定(String 源氏名)
String 源氏名取得()
boolean 生理?()

これはちょっと…
0282デフォルトの名無しさんNGNG
変数名をメニューから選ぶとかコピペとかってプログラム書くスピードが遅くないか?
0283デフォルトの名無しさんNGNG
実際、変数とかテーブルのフィールド名に日本語使うのってどうよ?

初めてVBのバリバリ日本語入りのソース見たときは鼻血でそーになったが、
作ったやつがあまりに平然としてたんで(以降コーディングスタイル変わらず)。

おれはソースの中に2バイト文字使うのは嫌なんだが
おれの考え方が古いだけなのか・・・
0284デフォルトの名無しさんNGNG
>>282
マジな話、タイプミスが無くなるという効能があるんだけど
どっちみち間違えなきゃイイ話で。関係ない話でゴメン
0285276NGNG
>>282
エディタの短文入力機能を使う。複数ソースでありがちな変数名の揺らぎもなくなって
いい感じだYO
0286デフォルトの名無しさんNGNG
>>283
日本語の方がしっくりくる場合もあるからね。
データベース系だと日本語は最近はポピュラーだったりする。
0287デフォルトの名無しさんNGNG
>>286
確かにね。クライアントの社内用語なんかだと、英訳しようもないし、ローマ字にすると
綴りが不安定になるし、いっそ漢字で・・・・ということも多いね。
0288デフォルトの名無しさんNGNG
日本語変数名だと、IME入れたり切ったりするの面倒じゃないのかね?
まぁ、Viで日本語入れるのも慣れれば平気だから慣れの問題なのだろうか。
0289デフォルトの名無しさんNGNG
カラム名で

KOKYAKU_JYUSYO
とか書いたり、

KKYKU_JYSHO
だのとワケワカラン省略するくらいなら、

顧客住所

としてくれたほうが、開発成果物の信頼性増しそうだよな。
0290デフォルトの名無しさんNGNG
うちの会社はDQN極めてるな・・・
上が版画利案信者だから、pszとかつけてないだけでレビュー落ちた記憶がある・・
0291224NGNG
>>290
その位許してあげなよ。それともウチ来る?
0292デフォルトの名無しさんNGNG
224のところにだけは逝きたくねぇ!!!
0293デフォルトの名無しさんNGNG
>>290

逆にレビュアを吊るし上げるぐらいの勢いで頑張ってくれ。
業界の明日を背負って立つ若人よ。
0294デフォルトの名無しさんNGNG
「変数名はローマ字で書け」

m_iBunpairitsuKauntaa /* 分配率カウンター */
m_iBunnpairitsuKauntaa /* エラー */
m_iBunpairituKauntaa /* エラー */
m_iBunpairituKaunta /* エラー */

せめてヘボン式かどうかくらいは決めてくれないか。
0295デフォルトの名無しさんNGNG
>>294
Counterはエラーなの?
0296デフォルトの名無しさんNGNG
>>294
エラーはeraaなの?
0297デフォルトの名無しさんNGNG

  ∧_∧__フムフム・・
 ( ´ー`/  /
 (   ,/_〇                   ♪
 |   |旦                ♪   ∧∧ セッケイショ
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|            ヽ(゚∀゚)ノ   デキマシタ!!
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |             (  へ)
  |              |             く


   ∧_∧  モンゴリアーン!!
 |\ΦДΦ)   /|
 ○ <  ζ) <  ○                   人人
 | >  旦  > |               <   ∧∧  キュワアアアアア!!!
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|              ヽ(゚Д゚ )ノ
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |                (  へ)
  |              |                 く
0298デフォルトの名無しさんNGNG
class jo
{
…
private:
  int inagakiメンバー;
}
0299デフォルトの名無しさんNGNG
モンゴリアン ってなんだっけ?

心臓マッサージをセルフで直にやっておきながら
自分は人間だとうそぶいた青年だっけ? 特技は雄叫び?
0300デフォルトの名無しさんNGNG
チョップ
0301デフォルトの名無しさんNGNG
テソザソ
0302アパッチの雄叫びNGNG
>>299
それ、ジェロニモじゃないか?

0303 NGNG
データを溜めておいて一気に送るのは
flash が正しいのでしょうか?それとも
flush でしょうか?
0304デフォルトの名無しさんNGNG
>303
辞(略)
0305デフォルトの名無しさんNGNG
>>303
光に変換して目潰し攻撃をするならflash、
クソデータとして便所に流すならflushだな。
0306デフォルトの名無しさんNGNG
おい、おまいら!
おまいらだったら、次のような項目を変数名やDBのカラム名にするとしたらどうするよ?

管理番号
部品番号
制作工程コード
制作工程区分
受注日
受注者
発注日
発注者


ちなみに漏れの会社だと

KANRINO
BUHINNO
KOUTEICD
KOUTEIKBN
JYUCHUDATE
JUCHUSYA
HACYUBI
HACYUSYA

なお、スペルミスではない。仕様書に確かにこう書いてある(w
文句言ったが「もう出来ているので今更変えられない」だそうだ。
0307デフォルトの名無しさんNGNG
>>306
おれなら、この例の場合なら 日本語のままだな。
ご愁傷様
0308デフォルトの名無しさんNGNG
どうせなら JUCHUSYA と HACYUSHA ってしてほしかったなぁ、おしぃ。
0309デフォルトの名無しさんNGNG
PATSUBANGOとか
0310デフォルトの名無しさんNGNG
関数ごとにファイルを分けること。
mainのみで2kステップオーバーのプログラム書く奴が続出。
0311デフォルトの名無しさんNGNG
>>310
俺なら、簡単なプログラム一つ作って、納品前に関数ごとにファイルにバラすように
するかなぁ。。。

しかし、ネタでは聞いたことがあったが、そんな馬鹿な規約が実在したのか。static
変数/関数の意味がないやん。
0312デフォルトの名無しさんNGNG
一体誰がこんなコーディング規約作ってるんだ?
やっぱコーディングできないSEか?
PGに作らせろや。
0313デフォルトの名無しさんNGNG
>>306
>受注日
>JYUCHUDATE

>発注日
>HACYUBI

・・・「〜DATE」と「〜BI」、どちらか一方に統一しようよ・・・
0314デフォルトの名無しさんNGNG
>>313
>JYUCHUDATE
じゅちゅうだって。なのさ。
0315デフォルトの名無しさんNGNG
>>306

struct hoge {
 int mngno; /* 管理番号 */
 int partno; /* 部品番号 */
 struct manufacturing { /* 制作工程 */
  int code; /* コード */
  int category; /* 区分 */
 } manufacturing;
 struct request {
  char date[DATEWIDTH]; /* 日 */
  char name[NAMEWIDTH]; /* 者 */
 } receipt, client;
};
0316デフォルトの名無しさんNGNG
>306
Cなら#define KanriNumber "KANRINO"
VBなら Const KanriNumber= "KANRINO"
とかやってみたら?
0317not 310NGNG
>>311
うちの規約ではstatic関数は禁止ですが、何か?
0318デフォルトの名無しさんNGNG
1行80文字程度を推奨

ってことになっていたのだが、几帳面にも81文字以上の場合
に必ず改行するやつがいた。

最近ディスプレイも良くなってきたので、規約の幅を広げたが、
それに合わせて(以下略)
0319デフォルトの名無しさんNGNG
そろそろ、1024×768 つう中途半端に狭い画面を、廃止 or 禁止して欲しいYO!
0320318NGNG
>>318
でも、この人、幅には几帳面でも関数の長さの規約は
全然守ってくれなくて、妙に長い関数を書いてくれる(藁
0321デフォルトの名無しさんNGNG
やだ>>319
0322デフォルトの名無しさんNGNG
RDBMSの仕様よく知らないんだけど、テーブルやビューやカラムの
名前って、文字数制限とかがあるの?
0323デフォルトの名無しさんNGNG
ソースの規約じゃないけど、
 「ソースを修正するときは日付を付加してバックアップを取れ」
ってのがあったな。
UNIX使ってるんだからSCCSくらい使い方憶えろYO!

お陰でHDがパンパンになりもがいてます。
compressすると日付が変わるからダメなんだそうな。
tarも使い方わかんないってさ。manは使えるのに・・・

ぜんぜん関係ないが、めちゃかわいい子に「マンコマンド」って言われてほわ〜んとなったよ。
0324デフォルトの名無しさんNGNG
>>322
2^32文字までとか
0325デフォルトの名無しさんNGNG
>>323
最後の一文がウケタ
0326デフォルトの名無しさんNGNG
良スレかと思いきや、お馬鹿さんも多数…。

m_* が美しくないという話はわかるが、「スコープを名前で分けるな」というのは意味不明。m_* は美しくないから *_ 使えというのは、スタイルの問題だから、どっちかに統一してくれればいいけど。
0327デフォルトの名無しさんNGNG
じゃー メンバ変数には全部 this-> 付けとくってのは?
(宣言の時とかは除く)
0328デフォルトの名無しさんNGNG
関数は作成者の名前を付けるコトになっている。マジで。
STanaka_ResetColorとか、コレ自体慣れれば以外と気に
ならなくなるが、オレの知らない名前が異常に多いのが気に
なった。社長しか知らないヤツが10人くらいいた。
勝手に名前変えて使ってるがバレると怒られる。
0329デフォルトの名無しさんNGNG
自力名前空間ですか?
0330デフォルトの名無しさんNGNG
>>327
VBじゃ使えん。VBではthisに相当するものはMeなのだが
PublicじゃないとMe.fooと出来ない・・・。
0331デフォルトの名無しさんNGNG
this->はコンパイラが強制してくれない。
強制されるような文法だったらよかったんだけど
0332デフォルトの名無しさんNGNG
C++のthis->は主張が強すぎる気がするけど
JavaやC#は結構this.つけるようにしてるよ。
0333236NGNG
そもそも C# だと、何らかの規約を作らないと、フィールドとプロパティが
同名になるだろう。
キャメルスタイルとパスカルスタイルで分けるくらいじゃ足りない。
(かといって小文字だけ or 大文字だけにアンダースコアは見づらい、書きづらい)
ローカル変数とメンバー変数とメンバー関数とプロパティと…って分けていくと
やっぱり m_* か *_ 使う方がわかりやすいという事になる。
0334デフォルトの名無しさんNGNG
>>333
プロパティとクラスで名前がぶつかったときは悩んだ。
ガイドラインではどちらもパスカルだし。
0335デフォルトの名無しさんNGNG
が〜ん、キャメルスタイルとパスカルスタイルの意味がわからん。
簡単でいいから教えてくれ。
0336333NGNG
>>335
PascalStyle and camelStyle.
0337333NGNG
>>334
意外とそういう場合ってあるんだよね。
漏れはそういう場合結局湾曲した名前にするんだけど、どうしてる?
public/protected な名前にはプリフィックス&サフィックスつけたくないし
(漏れは private な名前には積極的にプリフィックス&サフィックスつけてる)
0338334NGNG
public class Phase;
private Phase phase;
public Phase Phase{get;set;} // コマタ!

こんな感じでねぇ。
結局プロパティのPhaseをCurrentPhaseにして決着したけど。
C++ではクラスはCから始めてたからこんなこと無かったのに。
0339デフォルトの名無しさんNGNG
>>338

public Phase CurrentPhase{get;set;}

みたいに意味を具体的にしてやれば?
0340デフォルトの名無しさんNGNG
>>335
MSが.NETで推奨している命名のガイドラインがMSのUSサイトにあるよ。
そこのNaming Guidelineには
Pascal Casing
Camel Casing
Upper Casing
の解説があります。
0341デフォルトの名無しさんNGNG
>>340
そこ消滅してた気がする
0342340NGNG
うげ、ほんとだ。なくなってる。
MS撤回か!?
全訳したのに。
0343339NGNG
>>338

ごめん。
途中までしか読んでなかった。
0344デフォルトの名無しさんNGNG
>>339=343

あの場合はCurrentとかの修飾語をつけることが出来たけど、常にそうとはいかないよねぇ。
クラスとプロパティで同じ名前になるのは設計が間違ってるんだろうか・・・
0345デフォルトの名無しさんNGNG
うちの会社はカウンタ変数は必ず「i」なんです。
integerではオーバーフローするのでカウンタ変数をlong
にしても絶対「i」中途採用者はみんなあきれる。
0346デフォルトの名無しさんNGNG
>>345
別にいいじゃん。
0347デフォルトの名無しさんNGNG
iteratorの i というのが定説。
integerから来てるわけではないので、longでiでも別にええやん。
0348デフォルトの名無しさんNGNG
>>345
そんなところでいちいちあきれてる人たちが、まとめてヤヴァイと思われ。

ローカル変数のシンボルなんて、極言すればぶつからなきゃいいだけなので、
ルールがあるなら従うだけでしょ。
0349デフォルトの名無しさんNGNG
345は、ハンガリー人。
0350デフォルトの名無しさんNGNG
>>345
むしろintのときはiでlongになったらlだったらもっとあきれる。
途中で型変更したらint l;になっちまう。
0351デフォルトの名無しさんNGNG
>>345
まじで、その中途採用の人と、その人を無邪気に尊敬している
アンタがヤバイと思うよ。気をつけなよ。
0352デフォルトの名無しさんNGNG
>345
オレが出向してた会社なんて
「変数の名前は極力短くする」なんてアホな規約があるもんだから
変数見ただけじゃ目的がわかんねーの、コメントの嵐でコードが
読み難い。2度とあの会社のVBの仕事したくねー。
t as Long '単価
jd as date '受注日
sd sa date '出荷日

0353デフォルトの名無しさんNGNG
やっぱWNDYOKHABにはかなわねぇ
0354デフォルトの名無しさんNGNG
>>345,347,350
long は long integer。
iはfortranの時代の名残り。
iから始まる変数は型宣言しなくてもinteger(j〜どこまでだっけ?)

>>326は設計手法やメタ言語などを学んでみては?
実装する言語に依存しないで設計する世界を知らないのか?
設計どおりに実装したこと無いのか?
ここだけみてるとプリフィックス*_付ける派が多いね。。。
小手先だけのプログラマが増えているのかなぁ。
0355デフォルトの名無しさんNGNG
>>354
m_付ける奴に付ける薬は無いので放置。
0356デフォルトの名無しさんNGNG
>354
i,j,k,l だったかと
0357デフォルトの名無しさんNGNG
i,jは紛らわしいからヤヴァイね、特にコピペしてから直すときとか。
コピペするなって?ごもっとも。
0358デフォルトの名無しさんNGNG
>>345
だから、FORTRANがなぜデフォルトでi〜が整数だったのかは、iteratorのiだからというのが定説だってこった。
0359358NGNG
s/>>345/>>354/
0360デフォルトの名無しさんNGNG
>>354

「とか言ってみるテスト。」
を付け忘れてるよ。学生さん。
0361デフォルトの名無しさんNGNG
>>355
理由もなく m_ を嫌う奴につける薬もないと思うね。
俺はメンバーなのかローカル変数なのかっていうのは区別するべき事だと
思うので m_ もしくは最後に _ つけるのは有効だと思う。

ループのカウンタは色々と試してみたけど、やっぱり長すぎても害かも…
座標とかの場合 nX, nY とかはわかりやすい。
個人的には cnt (カウンターの意), cur (カレントの意)くらいが
「意味があって」「長すぎない」バランスの取れた所だと思うな。
ライン
0362デフォルトの名無しさんNGNG
>>357
コピペは別にいいと思うけど、一括変換できないからやだね。
0363デフォルトの名無しさんNGNG
シンボル名なんて、動作には影響ないんだよね?
デバッグ時に苦労しないようなルールになっていれば、それでいいじゃん。
そういう意味じゃ、ハンガリアンは、趣味の問題ってことで。

で、for文のカウンタがiだと誰か困るのか?
どんなfor文書いてんだYO!
0364デフォルトの名無しさんNGNG
>>362
なんでカウンタを一括変換するんだ?
0365354NGNG
FORTRANのiはintegerのiだとオモテタ。ありがとう>>358。
一つ賢くなったよ。

学生には戻りたくないです。>>360
普通にUML使って設計して、JavaとC++両方で開発してますが?
気が利いたこと言ったつもりなのかな?>>360

とか言ってみるテスト。
でよろしいでございますでしょうか?(w
0366デフォルトの名無しさんNGNG
>363
別に困らないとは思うけど規約が存在するコトがダサい。
0367デフォルトの名無しさんNGNG
ループのiって、数学のΣからの慣用じゃないの?
0368デフォルトの名無しさんNGNG
>>365
いくらハイレベルで設計しても、実装するときには現実の言語のフレームワーク
に押し込める必要があるわけで、そこで

 メンバ変数はローカル変数とは寿命が全く異なるから、見た目で分かるように
 しておけ

っつーのは妥当な話だと思われ。

>>360 は現実の言語を忘れてハイレベルの議論だけするのは、アカデミックな世界
だけにしとけっつー皮肉だろ。(個人的には、メタ言語とかの世界にひたるのも意味
がないとは思わんが、現実と両天秤にかけられないヤツには用がない)
0369デフォルトの名無しさんNGNG
>>366
じゃあ会社辞めるか、上司を説得して規約変えろ。
喫煙所の談話好きバカ?
0370sageNGNG
するってーと、Σのiはiteratorだよ。
ってーのが定説?愛はどこまで掘り下がるんだ?(w
0371デフォルトの名無しさんNGNG
ループの i は FORTRAN の INTEGER の i っていうのは
昔からよく聞いた気がするけど
iterator の i だっていう意見を聞いたのはここ2〜3年な気がする。
Iterator パターンからの連想な気がするな…。
0372365NGNG
なるほど、とてもわかりやすい説明ありがとう。
つける|つけない のは意味が無いという方々より
とても素敵。
身の回りは、まぁつけないで現実うまく逝ってるよ。
現場(おれももちろんこっち側)とアカデミックな世界の
差っていつ埋まるのかね。
0373デフォルトの名無しさんNGNG
>>372
現場に何の功績も無い日本のアカデミックな連中は、現場に追いつく
ことも無く衰退するだろうねえ…
国立情報学研究所とか、物凄い人数使って今さらなもの作ってるし。
0374デフォルトの名無しさんNGNG
>>372
埋まっちゃ困ると思うんだが。

現場でやってるようなことを、いまさら研究してもしょうがないし。
0375372NGNG
えーとえーと、
研究成果がアカデミックすぎて現場で使えない。
予算や期間が限られてる現実無視しまくりとか。
現場がそもそも成果を覚える頭がなかったり気がなかったり。とか
こーいった差のつもりで書いてみたのですが。。。
0376デフォルトの名無しさんNGNG
>>373
日本でも「世界有数の」と冠詞がつくような研究者もいるんだけどね。NTT で
回線理論やってた某氏とか。(名前忘れた…)
0377デフォルトの名無しさんNGNG
>>375
現場っつってもピンきりだが、キリならそうだろね。

でもピンの現場は、会社同士で情報共有して、大金投資して、日本の大学なんか
の研究者とは比べ物にならならない、血に飢えた研究者どもが血道を上げてやっ
てるからな。
0378デフォルトの名無しさんNGNG
>>376

俺がいた大学の研究室にも世界で5本の指に入るって先輩が居たな。
世界で5人しか研究してなかったけど。
0379デフォルトの名無しさんNGNG
>>377
ピンキリはピンが下でキリが上ですよ...
仕様書にソートはピンからキリの順でと書いて
あった時、間違えたりしないで下さいね。
0380デフォルトの名無しさんNGNG
>379
ヴァカ発見。広辞苑みて反省しる!

>ピン(pintaポルトガル 点の意味)
>1.カルタ・采の目などの1の数。
>2.はじめ。第1。最上のもの。

>キリ(cruzポルトガル)の訛。
>十字架の意から転じて、十の意。
0381デフォルトの名無しさんNGNG
>>379
そうなのか?

> 【ピン】
> 第一番。また、最上のもの。
0382デフォルトの名無しさんNGNG
iterateはごくふつーの英単語だと思われ。
0383デフォルトの名無しさんNGNG
_■_ ________________
 |∵∴∵|:::ー-ーーー-ー─ーー--ーーーー-ーー-ー,||
 |∵∴∵|::::    磯野家の系図            i ||
 |∵∴∵|::::                      ; ||
 |∵∴∵|:::: 波平─-──┬─-──フネ     :; ||
 |∵∴∵|::::         │            | ||
 |∵∴∵|::::         │           ; ||
 |===|:::: 波平───サザエ          ! ||===-3
 |∵∴∵|::::       │             ; ||
 |∵∴∵|::::       │             ; ||
 |∵∴∵|:::: 波平─ワカメ             |  ||
 |∵∴∵|::::    │                     i  ||
 |∵∴∵|::::    │                ; ||
 |∵∴∵|::::   タラチャン               | ||
 |∵∴∵|:::ーーー ーー- -ーー-ーー-ーー-ーー─ ||
   ̄■ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0384デフォルトの名無しさんNGNG
オレの会社はコーディング規約なんてねーよ。
就労規則もねーし。
ボーナスもねーや。
0385379NGNG
>>380
反省しるよ。
ピンからキリまで。ピンは1=安い、悪い。キリ=12、高い、良い。
の意とならたんだが。キリは花札12月の桐ね。
広辞苑様にはかなわんなぁ・・・
0386デフォルトの名無しさんNGNG
>>384
つまり、コーディング規約も無いところには
誰も仕事出さないということか。
0387デフォルトの名無しさんNGNG
>384
ハッキリ言うなよ、貴様!図星じゃねーかよ(笑)。
開発者以外メンテできねーから納品後の評判がわりーんだよ。
でも、楽だから辞めません。31才年収300万でも辞めません。
カミさんに○ーソンでバイトさせてるけど辞めません。

0388   NGNG
>>347
jとkは?
数学の方から来たと思ったんだが。
0389デフォルトの名無しさんNGNG
>>388
漏れ >>347 じゃないけど。
アルファベット順に i, j, k
i はもう使ってるから次の j
j も使ってたら次の k
昔の人はこういう考え方だから嫌だ。
これが「現場のやり方」?
だとしたら少しは研究者の成果を取り込まないとね。
(「ループ用のカウンタぐらいいいだろ」って言われそうだけど、
割れ窓理論でいくと、カウンタでこれを許容すると、他のものにまで
適応するバカが出てくるのは自然の流れだからね。)
0390デフォルトの名無しさんNGNG
っていうか、やっぱりカウンタなんてどうでもいい気がしてきた。
>>65 とか >>72 みたいな、COBOLer あがりの親父が決めた
どうしようもないルールとか押し付けられる事を考えると。

カウンタの命名規約ぐらいマタ〜リとした雰囲気で許そう。
0391デフォルトの名無しさんNGNG
ピンとキリは諸説あってどちらが上なのかは謎だよ。
0392デフォルトの名無しさんNGNG
>>389
カウンタのめいめい規則に適用できる"研究成果”って何?
0393デフォルトの名無しさんNGNG
命名規則、研究、カウンタ でgoogleひいたら、
ttp://members.tripod.co.jp/aspara_2000/Column/cooding.htm
なページが・・・

ウンコ踏んじゃった気分(鬱
0394デフォルトの名無しさんNGNG
ループカウンタは i,j,k
座標系は x,y,z

何も問題なからおう。
0395デフォルトの名無しさんNGNG
ピンとキリはどっちが上なのでしょう?
・ピン 「最上のもの。 (広辞苑)」だから
・キリ
・諸説ありどっちが上かは謎
という意見がでて、ちょっと混乱してます
0396デフォルトの名無しさんNGNG
>>393
同情するよ。
0397デフォルトの名無しさんNGNG
先週土曜日、最寄の駅でたらふく飲んで家に向かいました。
帰り道ちょっと寒かったので自分の体の状況を完全に
把握できていなかったかもしれません。
アパートの階段を上り、家のドアを開けトイレのドアを開け
便器の前に立ってジーンズをおろそうとした瞬間、
全て放尿してしまいました。
えもいわれぬ瞬間でそのまま身をゆだねました。
新しい僕の誕生です。
0398389NGNG
>>392
いや、カウンタだけじゃなく、名前はすべて「意味のあるものを使おう」という事。
個人的には i は(こじつけの Iterator の略という事で)理解できるけど、
j, k と続けるのは理解できない、悪い慣例だと思う。

>>393
いや、中身はともかくスタイルはいいと思った。
【規則】【理由】【例外】【備考】にわけて書いてあるから
何故そうするのか、何に関しては適応外なのかがちゃんとわかる。
備考はいらない気もするけど。
0399デフォルトの名無しさんNGNG
>>398
二重ループぐらいだったらいいんじゃない。
たとえばバブルソートとかの。
さすがにkまで使うことはあまりないけど。
0400デフォルトの名無しさんNGNG
i, ii, iii...
i, i2, i3...
0401デフォルトの名無しさんNGNG
>>398
コーディングルールについて真面目にかたろうとしたりすると、
こんな事にしかならないという意味かもね。

"あとから分かる事が出来れば、それ以上はどうでもいいこと"
ということでしかないからなあ。
0402398NGNG
>>401
「よりよいプログラミングの為のコーディングルール」
っていうのはみんな考えないの?
コーディングルールは「ただプログラマーを縛り付ける為の物」だとでも?

もしそう考えてるんだとしたら、哀しすぎる。
アセンブラだけを使いながら「高級言語?あんな物使えるか」
って言ってる人と同じな気がする。
0403デフォルトの名無しさんNGNG
>>402
法律を変える方法が決まっているように
コーディングルールを変える方法も決めなければならない。

法律を変えることができるのが法律に従っている国民であるように
コーディングルールを変えることができるのはコーディングルールに
従っているプログラマでなければならない。
0404デフォルトの名無しさんNGNG
>>403
その言語の仕様自体を理解していないあ、バカ管理職やバカSヨが
決めている会社ばかりだと思われますが…
(たとえそれ以外で有能であっても、これについてはバカである場合
が多そうです)こいつらの職責にすべきではないという話ですね?
0405デフォルトの名無しさんNGNG
ファイルをopenしてはいけない。
0406デフォルトの名無しさんNGNG
コンパイル禁止。
0407デフォルトの名無しさんNGNG
コーダはCVSへのアクセス禁止。
0408403NGNG
>>404
その通り。常識的に考えるとできるわけないじゃん。出来るんだったら、
有名どころのコーディングルールの理由を説明してみろってんだ。
理由のない、もしくは不当なルールは悪。

ただし忘れてならないのは、今プログラマがコーディングルールを
決められないのなら、決められるように努力する責任があること。
0409デフォルトの名無しさんNGNG
標準はメモ帳。
0410デフォルトの名無しさんNGNG
win32のプログラミングだと、カウンタは長整数型が一番処理が早い
と聞いたことがあるので、lngCounter2 lngLoop2 などはどないでしょ。
慣例的にカウンタの変数名が長いと違和感あるけど。
しかし、デバッグ時なんかに理解しやすい変数名にすると、
一括置換とか微妙にしにくいんだよね。途中まで一緒の変数名とかあったり。
0411デフォルトの名無しさんNGNG
Windows禁止。
0412デフォルトの名無しさんNGNG
>>410
リファクタリングブラウザが早く普及すればいいのだけど...
0413410NGNG
>>412
なるほど。
やっぱりそういうツールがあるんだね。
でもテキストエディタでやっちゃうんだなこれが。
0414402NGNG
>>403
たしかにそうだね。で、具体的にはどうしたらいいんだろう?
「コーディングルール変更提案」をして「理由」を発表して
賛成多数なら変更?
民主主義だと権力だけはあるクソの方式が有力になる気がするのと
あんまりコロコロ変えられると、過去のソースと統合性が取れなくなって
余計に混乱する気がする。
やっぱり策定段階でわかる人達がちゃんと決めて、変更は慎重にしないと大変だと思う。
0415デフォルトの名無しさんNGNG
リファクタリングブラウザって何っすか!?
すごく興味を引かれる名前なんすけど。
0416デフォルトの名無しさんNGNG
Ether 禁止。
全て赤外線通信で。
0417403NGNG
>>414
具体的にといわれると難しいですね。どんな方法も完璧は無いので、
とりあえず悪い方法は改善していくという考えで行くと。

> 民主主義だと権力だけはあるクソの方式が有力になる気がするのと
これの悪い所は民主主義じゃなくいですね。クソの方式は本来却下
されるから、悪い所は「権力だけはある」なので2ちゃんみたいに
匿名にするとか。

でも、悪い方法でも賛成多数で通る可能性があるのもいやですね。
人数じゃなくて賛成理由と反対理由の数で決めるというのはどうだろう。

> あんまりコロコロ変えられると、
そんなに、コロコロは変わらないと思います。たしかに始めのうちは
変わるかもしれませんが、どんどん良くなるので後になればなるほど
変わらないんじゃないかな。

> 過去のソースと統合性が取れなくなって
過去のソースと整合性が取れないというのは、ルールを変更しない理由の
一つになると思います。この理由と変える理由を比べて変えた方が
いいのであれば変えればいいんじゃないでしょうか。もし過去のルールが
悪いなら、悪いルールに従う方が問題が起こると思います。
それに悪いルールならソースの質も再利用できないくらい悪いんじゃないかな。

> やっぱり策定段階でわかる人達がちゃんと決めて、変更は慎重にしないと大変だと思う。
変更を慎重にするのは当然でしょう。プロジェクト中にちょくちょく変えては混乱します。
しかし、変えてはならないというのはもっと悪いことだと思います。
変更したい理由は通常プロジェクト開発中に発見されるので、それを書いておくといいかな。

あと最初は、変更するルールを賛成多数にしたとしても、
変更するルール自体もルールなので、これも変えられるべきじゃないかな。

とりあえず、完全な理想にするのは難しいだろうけど、少しでも理想に
近づいていこうと私は考えます。
0418???NGNG
某カード会社・・・
VBにてif文禁止!
構造化にはifはいらんのだと。
よーわからん。

さ、出勤だ。
0419デフォルトの名無しさんNGNG
リファクタリングブラウザはリファクタリングを効率よく行うためのツールです。
リファクタリングはコードを良いコードに改善することで、多くの改善項目が
ありますが、その一つに名前を適切なものに変更するということがあります。
手動(一括置換)でこれを行うには、同じ名前があったりして危険が伴います。
リファクタリングブラウザを使うと、意味的に同じものの名前だけを安全に
変更することが出来ます。

トライアル版だけ手に入れて試してないけどJBuilder6の有料バージョンに内蔵さています。
まだ名前変更くらいサポートされてないみたいだけど。
早くコードの同じ部分をくくりだしたり、長い関数を分割したりといった
テキストエディタでやるにはリスクが高い機能がサポートされないかな。

バカなコーディング規約で作られたものを簡単にまとも変更できます。
といって話を戻しておく。
0420デフォルトの名無しさんNGNG
>>413
> でもテキストエディタでやっちゃうんだなこれが。
テキストエディタでやってもいいけど絶対にバグを入れないよう
しかも早く修正することをお願いします。
0421デフォルトの名無しさんNGNG
コード修正と言われると昔の WebSphere Studio の自動修正にバグが
あってソースにバグ入ったのを思い出す…
0422デフォルトの名無しさんNGNG
>>419 Thanks!
0423デフォルトの名無しさんNGNG
某大手電器メーカーで、納入するVCのプログラムはデバッグモードで
コンパイルしてくれと言われた。
理由を聞くと「あんた、コンパイラ信用できるの?」などと妙なこと
言われた。(w
そのくせ、VBはネイティブコンパイルなんだけどねぇ。
0424デフォルトの名無しさんNGNG
デバッグモードって MFCxxD.DLL がないマシンで動くんだっけ?
俺も似たようなこと言われたので「VC 付属のデバッグ用 DLL がないと
動きません。実機に VC は入らないですよね?」って言って納得して
もらった事があるんだけど、デバッグモードでも単体で動くなら俺が
間違ってた。
0425デフォルトの名無しさんNGNG
>418
Select Caseでやってみる
0426デフォルトの名無しさんNGNG
>>418
On Goto/GoSubでやってみる
0427デフォルトの名無しさんNGNG
>>424
スタティックリンクはどう?
でも・・・デバッグモードって・・・
かなり遅くなるじゃん。
0428デフォルトの名無しさんNGNG
>>427
遅くなるんだっけ?
やたらと情報が詰め込まれて肥大するだけだと思ってた。
0429デフォルトの名無しさんNGNG
>>428
ん〜〜前にテキストエディタ作ったときは1000倍くらい遅くなったかなぁ。
デバッグビルドしてることに気づかずに、何でこんなに遅いんだ〜〜ってしばらく悩んだ。
インライン展開が抑制されるし。ASSERT全部残るし。
0430428NGNG
>>429
最後の一行で納得しました。無知な私を許しておくれ・・・
0431デフォルトの名無しさんNGNG
前任者のソースを発見したのでup
/*




始点側の調整
*/
void
AjustLeft ( void )
{
int roop;

for ( roop = 0 ; roop < 2 ; roop++ )
{
AJUST_LEFT[roop] = 0;
}

中略

switch ( status )
{

case ACTIVE:

AJUST_LEFT[0] = ajust;

case NEGATIVE:

AJUST_LEFT[0] = 0;

}
}
特別に明文化された規約はないんだけど...
誤字と意味のない改行、空白...やたらと多いグローバル変数、引数のない関数

修正する俺の身になってくれ
0432デフォルトの名無しさんNGNG
>>431
俺の気のせいかもしれないけどダメな奴って誤字多くない?
俺もしょっちゅう指摘してる。
言葉なんてプログラム技術とは関係なさそうなんだけど。
0433 NGNG
ロープ(ローマ字)の始点と思われ。
0434424NGNG
命や金絡みのお客さんは「バイナリ」がテストの対象って所あんのよ。
バックサポート用の開発も引きずられてそういう話になってたんだけど、
向こうの事情考えたら分からんでもないし。

結局、異常系含めて全フロー通すにはデバッグコンパイルが必須 ⇒
そのまま使うなら実機全部に VC が必要 ⇒ どうしまっか? という話を
して、お客さんが全フローを優先させたという話。
0435424NGNG
ぬをぁ、たいした話じゃないのに上げちった
0436デフォルトの名無しさんNGNG
IME 使用禁止
0437デフォルトの名無しさんNGNG
>>436
文字コード表は可ですか?
0438デフォルトの名無しさんNGNG
句点コードのみOK
0439デフォルトの名無しさんNGNG
>>398
いまさらだけど。

名前はすべて意味のあるものを〜ってのには同意だけど、
ループカウンターのi, j, kってのは語源はともかく広く使われてるし、
そういう意味では「i, j, kという名前には意味はある」と思ってる。
ループの中でiって出てきたら、これは多分ループカウンターだなって思うでしょ?

0440デフォルトの名無しさんNGNG
>>436
FEPはあり?
0441デフォルトの名無しさんNGNG
マジに質問。
ハンガリー人は、何のためにあんな変数名にしてるの?
0442デフォルトの名無しさんNGNG
>>441
Javaなどではそれほどでもないが、
CやC++などでは型に関する情報が重要になるときも多い。
あるデータが厳密に4バイトであるとき、
dw***などとしておけばいちいち宣言を確認する必要も無くなるし、
ポインタとそうで無い変数も、同じく厳密に区別されるべきなので、p**としたほうが都合がよい。
0443デフォルトの名無しさんNGNG
昔々、16bitと32ビットのポインタを使い分け、
intが16bitだったりした頃は、lpszとpsz、iとdwの
違いは重要じゃったんじゃよ。
0444デフォルトの名無しさんNGNG
あれ、ここは「ピンとキリはどっちが上か?」ってスレじゃなかったっけ?
0445デフォルトの名無しさんNGNG
lpszやpszのszってなに?
string + zero って感じ?
0446441NGNG
>>443
なるほどー。
今やってるプロジェクト、>>30に近い規約があるけど、これはどーですか?(Javaで)
0447デフォルトの名無しさんNGNG
無意味だな
0448デフォルトの名無しさんNGNG
ハンガリアンって、
データを抽象的に捕らえる、ハードに密着するところはなるだけ局所的にする。
って考えが普及してない時代に考え出された技法。
いまだに喜んで人に薦めてるヤツがいるけど、害悪以外の何ものでもない。
0449441NGNG
変数名の先頭にクラス名を付けろと仰るんだが、たとえば
List l = new ArrayList();
みたいなときは、どうするんだろう。
グチ、スマン。
0450デフォルトの名無しさんNGNG
ハンガリアン信者じゃないが。
w,dw,n,str/wndなどのオブジェクトの種類をあらわす接頭辞,p あたりはつけても罪は無いと思う。
要するに、型じゃなくて意味に注目したハンガリアンなら。

行番号=lineNumberよりnLineのほうが少しだけ記述量が少ない(藁)とか利点もなくも無いし。

shとかulなんか氏んでもいいと思うけど。
0451デフォルトの名無しさんNGNG
lineNumberは行番号、nLineは行数だと思ってしまいます。
0452デフォルトの名無しさんNGNG
行数はlineCount->nLineCountとなる罠
0453デフォルトの名無しさんNGNG
型に注目するハンガリアンって結局、過去の栄光ってやつ。
0454デフォルトの名無しさんNGNG
line_numをnLineにするとか、
item_ptrをpItemにするとか、そういうのはいいんだけど、
↓こういう厨房にありがちな、
http://www2s.biglobe.ne.jp/~maekawa/dev/kakikata/nobugs.html#NAME
十数種類も使い分けろってのは、手間のかかる割には効果はないんだよね。
(しかも独自ルールだし)
0455デフォルトの名無しさんNGNG
>>442
うん、たしかにそういうときはある。
さらっとソースを斜め読みしたいときなんかは特に
ポインタと変数の区別がつかない命名されてると
ちょっぴりイラつく。
0456デフォルトの名無しさんNGNG
ハンガリアンを無邪気に人に薦めるヤツって、まとまったコードは
MSのサンプルくらいしか読んだことないんだろ?
ハンガリアン使わない読みやすいコードってのが想像つかない。
0457デフォルトの名無しさんNGNG
>>454
リンク先、あえてfloatとdoubleを分けんでえーだろと思てしまう。
0458デフォルトの名無しさんNGNG
>>454
それとクラスと構造体もわけんでえーだと思う。
0459デフォルトの名無しさんNGNG
boolとBOOLがともにbSuccessになる罠
0460デフォルトの名無しさんNGNG
>>454
BYTEやDWORDなどの値重視の型やLPSTRまでカウンター変数として使ってるのが謎
0461デフォルトの名無しさんNGNG
>>454
どうでもいいのけど、そのサイト。
内容はオリジナリティーなんてちっともないのに、
リンクがどうとか権利がどうとかへんなところが細に細かいな。
(オリジナリティーが無いっていうかパクリっぽいところもちらほら)
0462デフォルトの名無しさんNGNG
漏れはプリミティブ型(.NETだとstruct) は ハンガリアンライクな
prefix は有用だと思うな。あと C/C++ におけるポインタの p も。
実体なのか、参照なのかが名前でわかるとすごく楽。
あとはスコープを表す場合も有効。
メンバーフィールドは suffix の _ をつけるといい。

>>448
データ抽象ってもっとメタな視点の時に使う言葉だと思ってたんだけど。
interface/abstract class に ConcreteClass を対応させる時のように。
0463デフォルトの名無しさんNGNG
入力された文字列中のトークンのポインタの配列のポインター

list< Token* > *lplistlptokenInput;
0464デフォルトの名無しさんNGNG
そもそもハンガリー国民はハンガリアン表記してるの?
0465デフォルトの名無しさんNGNG
>>464
ハンガリー出身のMS社員が考えたっていうだけでハンガリー人みんなが使ってるわけじゃないでしょ。
ってマジレスしちゃ駄目だった?
0466デフォルトの名無しさんNGNG
>>463
多分、「こんな酷い事になるんだよ」って言いたいんだろうけど、
そもそもそんな複雑な物を表すのが間違いでしょ。
普通はそのシンボル自体が持ってる直接の意味くらいまでしか表さないよ。
0467463NGNG
>>463は一つの問題提起。
lplistlptokenInputなんて、激しく読みにくいけど、しかしこういう名前をつけておくとこれだけ複雑な構造も変数名を見ただけでわかる。
0468デフォルトの名無しさんNGNG
人間の短期記憶は同時に7つくらいのことしか覚えられないそうだ。
lplistlptokenInput だけで5つくらい使うぞ。
0469デフォルトの名無しさんNGNG
age
0470デフォルトの名無しさんNGNG
分けないとわかんない…

lpList_lpToken_Input

くそだな。
0471デフォルトの名無しさんNGNG
pImputTokenListでなくて?
0472デフォルトの名無しさんNGNG
>>467
>lplistlptokenInputなんて、激しく読みにくいけど、
>しかしこういう名前をつけておくとこれだけ複雑な構造も変数名を見ただけでわかる。
他人がみたらアホかと思うぞ?

0473デフォルトの名無しさんNGNG
>>471
463はあえてハンガリアンの原則に忠実なので、実際にあんな変数名つけるやつはいない・・・と信じたい。
0474デフォルトの名無しさんNGNG
>>463
現実にいたらまずそいつの顔ぶん殴るよ。マジで。
出社するたびに。
つまり必要の無い人間って事なんだけど、通じるかね?
0475デフォルトの名無しさんNGNG
お前ら、スレの趣旨忘れてねーか?
0476デフォルトの名無しさんNGNG
ハンガリアンな規約を導入しようとするヤツを悔い改めさせるネタ希望
0477デフォルトの名無しさんNGNG
ハンガリー人に聞いてみれ
0478デフォルトの名無しさんNGNG
ハンガリー人はハンバーガー好きですか?
0479デフォルトの名無しさんNGNG
カンガルー
0480デフォルトの名無しさんNGNG
チョコレート禁止。
餅はOK。
0481デフォルトの名無しさんNGNG
ちなみにはんがりー記法を使っていたハンガリー出身のプログラマは
チャールズ・シモニィ(Charles Simonyi)。
いまでもMSに在籍してるかどうかは分からない。
0482デフォルトの名無しさんNGNG
viの作者とどっこいどっこいだな。
vim使いの俺が言うのもなんだが
0483デフォルトの名無しさんNGNG
>>482
vi の作者っつーと Bill Joy だが彼のソースはなんつーか凄いね。インデントが深
くなるとか、気にもしちゃいねぇ。(あれできちんと動くものを作ってしまうあたり、天
才なんだよな、やっぱり)

ともかく、ハンガリー記法について熱く語るのはそろそろ終わりにして、バカなコーディ
ング規約について話を戻さんか?
0484デフォルトの名無しさんNGNG
ハンガリアン以外にバカなコーディング規約は無かった、ということでよろしい?
0485デフォルトの名無しさんNGNG
>>484
1 ファイル 1 関数とか、変数名は短くとか、他にも笑えるのがいくつか存在
したが。
0486デフォルトの名無しさんNGNG
今、やってる仕事に限っての話ですがVBで外部関数の使用を禁止されてます。
0487デフォルトの名無しさんNGNG
BASICなら古式にのっとりスパゲッティ・プログラムかけ!ってことだろ。
そいやVBにはGOSUBないなあ。
0488デフォルトの名無しさんNGNG
>>487
非構造化BASICならね。
0489デフォルトの名無しさんNGNG
>>487
たしかあったよ GoSub。プロシージャ内に収めるんだよ。
0490デフォルトの名無しさんNGNG
>>456

>ハンガリアンを無邪気に人に薦めるヤツって、まとまったコードは
>MSのサンプルくらいしか読んだことないんだろ?
>ハンガリアン使わない読みやすいコードってのが想像つかない。

最初の2行からは「ハンガリアン薦める奴は井の中の蛙!あんなの役にたたねーよ」というのがバンバン伝わってきますが、
最後の1行はどうみても「ハンガリアン万歳」ですね。

結局、あなたの意見はどっちなのよ。
0491デフォルトの名無しさんNGNG
>>490
ハンガリアンを無邪気に人に薦めるヤツ が、ハンガリアン使わない読みやすいコードってのが想像つかない。
って意味なんだろう。多分。
0492デフォルトの名無しさんNGNG
>>490
456じゃないが、

(ハンガリアンを無邪気に人に薦めるヤツには)
>ハンガリアン使わない読みやすいコードってのが想像つかない。
ってことだろ。

まぁそう読むのが自然だろう。
主語の省略によって曖昧な文になる典型だな。
0493デフォルトの名無しさんNGNG
>ハンガリアン使わない読みやすいコードってのが想像つかない。
+んじゃねーの、
ってことでは。
0494デフォルトの名無しさんNGNG
オレの2つ前の会社は「関数は処理内容がわかる日本語にする」
ってのがあった。Fc_請求データ作成実行、Fc_集計ファイル書込実行。
漢字はパンチするのが面倒でした。
0495デフォルトの名無しさんNGNG
秋田のN社におけるVBのコーディング規約は恐ろしい。
'1
If A = B Then
'2
Call SUB_A
'3
Else SUB_A
'4
End if
0496デフォルトの名無しさんNGNG
>>495
で、どういう規約なの?サンプルコードだけではわからん・・・。
0497デフォルトの名無しさんNGNG
>483
vimも結構凄いと思う。
さすがに3000行の関数とかは無いけど、
1000行クラスの関数ならいっぱい。
0498デフォルトの名無しさんNGNG
>>496
ifで分岐する意味がないだろ
0499デフォルトの名無しさんNGNG
行番号付けろってことか?
VB知らんのだけど。
0500デフォルトの名無しさんNGNG
>495
コメントでステップNoふるのが規約なのかな?
0501デフォルトの名無しさんNGNG
>>498
確かに分岐する意味はないが、
規約の話とコードそのものが糞とは関係ないのでは?

この短さでツッコミどころが結構あるから、どの辺に注目すればいいのかが
わからんかったのよ。

>>499
そういうことなら、納得。
コメントでなくても行番号は付けられるけど、普通は付けないからなぁ。
0502501は496ねNGNG
0503デフォルトの名無しさんNGNG
>>495
「ステップ単価の仕事の時は少しでも長コードにする」
って規約なんじゃない? >>498 の指摘通り
ダミーのIF文なんでしょうね。
0504デフォルトの名無しさんNGNG
>>501 <==ジーンズ?
どうやって行番号付けるの?
0505デフォルトの名無しさんNGNG
メソッドの入口と出口でログを残す。
0506デフォルトの名無しさんNGNG
>>497
オープンソースのコードの場合は、全体的に見た場合の保守性の高さや、拡張性
よりも

 とりあえず手を入れようと思ったときに、すぐに手を入れられる

っつーのが重要だったりするから。そうやって拡張を繰り返した結果として、ドラゴ
ンが棲んでるようなコードになることは、ままある。

(良い悪いじゃなくて、単に違うってことね)

sendmail も割とキテるよな。あれは過去のしがらみとかも引き摺ってるから、もう
どうにもならん。
0507デフォルトの名無しさんNGNG
>>505
なんかアスペクト指向プログラミングで聞いたようなネタだな。
0508デフォルトの名無しさんNGNG
>>507
ネタでは無い。
入口はともかく出口はたくさんあるから大変よね。
0509デフォルトの名無しさんNGNG
>>508
ああ、ネタというのはそういう意味ではなくて

 既存のプログラミング言語だとうまく書けないけど、アスペクト指向だときれいに
 書けるという話が出てた

っつー意味。即効性がある話でなくてスマン。
0510デフォルトの名無しさんNGNG
○部町水○局
「コメントは話し言葉にしない」...ってアタリメーだろ普通。
コーディング規約以前に社会人としての常識だろ普通。
0511デフォルトの名無しさんNGNG
>>28
あのセリフはVF界では有名のようだが、ここで見つけるとは…。
0512デフォルトの名無しさんNGNG
>>510
そう?私は結構、話し言葉風になる場合があるけどな。
「機能拡張の時は、このクラスを継承するのではなく
IHoge インターフェイスを実装するクラスを変更して下さい。」
みたいな。
この場合は話し言葉じゃなければなんて書いたらいいんだろう?
「変更するべきである」とかかなぁ?
0513デフォルトの名無しさんNGNG
コメントに
「たぶん」とか「一応」とか「思う」とか「大丈夫なはず」とか「いちかばちか」とかは
あまり書かないようにしましょう。
0514512NGNG
>>513
「いちかばちか」以外は全部、私の日常語で頻出する言葉なのですが、
さっきから私のPCに接続を試みてるのはあなたですか?
0515デフォルトの名無しさんNGNG
機能拡張の折、このクラスを継承せず
IHogeインターフェイスをば実装したるクラスを変更したまえ
0516デフォルトの名無しさんNGNG
去年の新人で
「ココでガーって一括して配列にいれる」って感じ
でコメントしてるヤツがいた。
0517デフォルトの名無しさんNGNG
>>512
それは話し言葉じゃないって。

 機能拡張の時には、このクラスを継承するんじゃなくて、IHoge インターフェース
 を実装するクラスを変更してね

こういうのが口語。

「だ・である」と「です・ます」は統一されていれば、どちらでも構わないでしょう。
個人的には、肩がこらない「です・ます」の方が好みですが。
0518501NGNG
>>503
なるほど!
495の意味が、今まさに点から線になったよ!

>>504
>>501 <==ジーンズ?
ジーンズです・・・なーんてね。

>どうやって行番号付けるの?

10 x = 10
20 y = 20
30 Debug.Print x + y
とか。そのまんま、古来のベーシックのように。
0519デフォルトの名無しさんNGNG
>>516
解りやすいじゃないか。
0520デフォルトの名無しさんNGNG
機能拡張に際しては、当クラスを継承すべからず。
IHogeインターフェースを実装するクラスを変更すべきなり。
0521デフォルトの名無しさんNGNG
>>519
オレ516しまった、もしかして解りやすいコメントだったのか?
あの時は、ソフトに激怒してしまった。
0522 NGNG
>>393
なくなっちまったようだ。google のキャッシュには残っていた。
URL の`cooding'とか`rool'ってそれだけでも萎えることができるよ...
http://www.google.com/search?q=cache:g_3XMKq6LycC:members.tripod.co.jp/aspara_2000/Column/cooding.htm+%96%BD%96%BC%8BK%91%A5+%8C%A4%8B%86+%83J%83E%83%93%83%5E&hl=ja

http://www.google.com/search?q=cache:Q9eaDjb6rUsC:members.tripod.co.jp/aspara_2000/Column/rool1.htm+aspara+%83p%83b%83P%81%5B%83W%82%C6%83R%83%93%83%7C%81%5B%83l%83%93%83g%82%CC%92%E8%8B%60&hl=ja
http://www.google.com/search?q=cache:em52YipdD7oC:members.tripod.co.jp/aspara_2000/Column/rool2.htm+aspara+%83w%83b%83_%83t%83%40%83C%83%8B%8E%C0%91%95&hl=ja
http://www.google.com/search?q=cache:x8g9YoYjgc0C:members.tripod.co.jp/aspara_2000/Column/rool3.htm+aspara+%83C%83%93%83v%83%8A%83%81%83%93%83e%81%5B%83V%83%87%83%93%83t%83%40%83C%83%8B%8E%C0%91%95&hl=ja
http://www.google.com/search?q=cache:foC37rns47gC:members.tripod.co.jp/aspara_2000/Column/rool4.htm+aspara+%83N%83%89%83X%92%E8%8B%60&hl=ja
(実質的に空っぽ http://www.google.com/search?q=cache:rM40KragSrIC:members.tripod.co.jp/aspara_2000/Column/rool5.htm+aspara+%82%BB%82%CC%91%BC%82%CC%8D%5C%90%AC%91%CC%82%C9%82%C2%82%A2%82%C4%82%CC%8BK%91%A5&hl=ja)
http://www.google.com/search?q=cache:Qsq-nS5KNasC:members.tripod.co.jp/aspara_2000/Column/rool6.htm+aspara+%95W%8F%80%89%BB%96%BD%96%BC%8BK%91%A5&hl=ja
0523395NGNG
IHogeインターフェースを実装しる!
0524デフォルトの名無しさんNGNG
>>433
ロープは`rope'。
`roop'だと、`roup'の同義語で「や鼻孔から粘液の出る家禽のウイルス性伝染病」という意味だよ。
0525コピペ間違いの524NGNG
s/「や鼻孔/「眼や鼻孔/ # 正直、突っ込むときに間違うと鬱
0526デフォルトの名無しさんNGNG
VBでイベント禁止。

たぶんCommand_Clickとかを受け取るな、じゃなくてクラスから
イベントを発生させるなという意味なのだろうけど、

ほう、どうやってクラスからイベントを通知するんだ。

 こうなったらフォームにインタフェースImplementsしてクラスに渡して
呼び出してやろうかと。文句いわれるつもりで見なかった振りしたけど
何も言われなかった。反論するつもりだったのに残念。
0527デフォルトの名無しさんNGNG
なんで最近の言語は行番号つけないの多いの?ヽ(^。^)丿
あれもあったほうがいいかもな〜
デバッグしやすいぞ〜
ラベルとか嫌いヽ(^。^)丿
0528デフォルトの名無しさんNGNG
>>527
邪魔だから。あまりにも非効率的だから無くなった。
0529デフォルトの名無しさんNGNG
>>528
全部の行に番号を振ったところで、ほんとに使うところは一部分だしね。
使う部分だけに「関数」とか「ラベル」として名前を振った方が見やすい。

…ネタニマジレス だな。
0530デフォルトの名無しさんNGNG
>>527-529
ネタにマジレスすんな
0531デフォルトの名無しさんNGNG
>530
ネタにマジレスするネタなんだよ。
(当方、再帰適用可能)
0532デフォルトの名無しさんNGNG
なあなあ、馬鹿なコーディング規約はその辺にしてさ。
「ム板公認! まともなコーディング規約」ってのを
作ってくんない? 俺、アマグラマだから、その規約に
従うからさ。
05332ch公認コーディング規約NGNG
1.言語はHSP
05342ch公認コーディング規約NGNG
2.ローカル変数は使用禁止
05352ch公認コーディング規約NGNG
3.構造体は仕様禁止
05362ch公認コーディング規約NGNG
4.理解しやすいように使用するデータ構造は配列のみ
0537デフォルトの名無しさんNGNG
>527
つうか行番号表示するエディタ使えばイイ
0538デフォルトの名無しさんNGNG
>537
VBの場合、エラーが発生した行を特定するために行番号を「プログラマが」付ける必要があるのよ。
0539431NGNG
>433
>524
タダ単にloopのつもりでroopって書いてると思うけどね。

変数はほとんどグローバル
関数に引数、返り値なし
行数稼ぎの空改行
意味なく広いコメント欄
2値しかないのにわざわざswitch使うとか
ループカウンタはroopだし、複数使う場合は配列だよ
誤字とか意味の取り違いは結構多いよ
AJUST -> ADJUST
ROOP -> LOOP
ACTIVE<->NEGATIVEはACTIVE<->INACTIVEかPOSITIVE<->NEGATIVEだろ
普通にTRUE<->FALSE使えよ
0540デフォルトの名無しさんNGNG
分かりにくくなるからリスト構造は使うなって言われたことある。
ツリーじゃなきゃいいんだろってことで片枝しか使わないツリー作ってた。
ヒネクレモノでごめんなさい。
0541デフォルトの名無しさんNGNG
げげ。
×ツリーじゃなきゃ
○リストじゃなきゃ
あいーん。
0542デフォルトの名無しさんNGNG
>>540
分かりにくくなるから?
俺がバカで分からんからだろ。
0543デフォルトの名無しさんNGNG
>>538
VBってどうしてそう2chでつっこまれる要素満載で作ってあるんだ?
不思議だ。
0544デフォルトの名無しさんNGNG
>>535
構造体を使わないって言うのは、何気に同意できる規約だな。
どうせクラスにしてしまうんだし。
Win32APIで使う構造体は別として。
0545デフォルトの名無しさんNGNG
>>543
マジレスすんのも何だが、

a) COBOL→VBに移行した連中が設計をする。
 ・当時の環境(VB4等)
 ・新しい技術に興味なし
 ・コピペ、力技大好き

b) 曖昧な言語仕様に慣れた連中の製造
 ・新しい技術に興味なし
 ・考えるのが苦手
 ・動けばオケ

if(a==true || b==true){
return ツッコミ;
}
0546デフォルトの名無しさんNGNG
>>545
を見て思い出したんだが

(1) if(a==true || b==true){

って、

(2)if(a || b){

でも一緒だよな。
でもな、俺のいたプロジェクトでは、(1)のように書けという
コーディング規則があったんだよ。
ちゃんとaとbの変数名を工夫すれば、
わざわざこんなことしなくても分かるよ……とか思った。
同じようなコーディング規則ある人います?
0547デフォルトの名無しさんNGNG
>>546
違うんでは
0548546じゃないですが。NGNG
>547
いいのでは?
0549デフォルトの名無しさんNGNG
>>547
a, b が bool じゃないとか、実は C++ で operator==() が定義されてるとかいう
非常識な自体を除けば、全く同じ。可能な組み合わせは

(a, b) = (false, false), (false, true), (true, false), (true, true)

しかないんだから、それぞれの場合について (a == true || b == true) と (a || b)
の値を紙に書き出して比較してみ。
0550デフォルトの名無しさんNGNG
isXxx という変数名にすれば。
ただし Xxx は肯定形で。
0551デフォルトの名無しさんNGNG
んじゃ、IsNotEofで
0552デフォルトの名無しさんNGNG
>>546
今更ながらつっこませてもらうが、そのコードは超危険だ。
a==true
でtrueの定義ってなによ?
0553デフォルトの名無しさんNGNG
前にあったな、ブール代数を単体で条件式に入れないで、ちゃんと
条件式で書けって奴。しかし期待に反して厨どもがこんなコードを
大量生産した。

if(a != true)
if(b != false)

微妙に読みにくいし…
0554デフォルトの名無しさんNGNG
>>552
C/C++ はね。Java の話か、言語実装抜きな話なんじゃないの?
0555デフォルトの名無しさんNGNG
545のコードはC/C++ではないに一票。
きっとHoge言語。==はくどいの意味。
0556デフォルトの名無しさんNGNG
>>552
assert(a==true||a==false);
↑これをコードじゅうにばらまいとけ
0557デフォルトの名無しさんNGNG
>>553
カナーリワラタ
ギャグでも思いつかん。吉本芸人並だな、そいつら。
0558546NGNG
情報不足のレスが波紋を呼んですまんです。
>>547 >>552 の言う通り、Javaの話です。

全然違う言語育ちのプログラマが集まった、
Cで実装するプロジェクトで、
真偽値の型名の定義でもめた話もどっかで聞いたなあ。
BOOLかbooleanかBooleanかboolか。
そんなもん、リーダーがばしっと決めればいいことだと思うんだが。
0559デフォルトの名無しさんNGNG
>>558
>そんなもん、リーダーがばしっと決めればいいことだと思うんだが。

リーダーからして「へっ?booleanって何?ねぇ何?」とか言ってそう。
0560リーダーNGNG
それくらい自分で出来なくてどうしる!
0561リーダーNGNG
全部定義しる!
0562デフォルトの名無しさんNGNG
リーダー+コーダー=リコーダー
0563デフォルトの名無しさんNGNG
リーダーの笛でコーダーが踊ります
0564マイナーアニメヲタNGNG
>>559
「愛と正義のビッグガール とんでboolean」のことだよ。
0565デフォルトの名無しさんNGNG
>>532
ム板公認は不可能。
コーディングルールなんてものは、あるものを開発する
チームなりコミュニティなりで合意&共有されてればそれで
OKなもの。
MSはハンガリアン、JavaはJavaなり。GNUはGNUのルールと。

絶対的な価値があるコーディングルールは存在しない。
存在すると思うのは間違い&幻想。
0566224NGNG
今更ですが m_ についての私的論。
最近腐ったコードばかり見てるので、アホな事抜かしてるかもしれんけど。

・public メンバはスコープを付けて使う事が多いから、m_は不要と言うより邪魔。
 それ以前に一部の例外を除いてメソッドだろうし…(メソッドには付けんわな)
・protected メンバは多重継承を用いた場合、定義位置を容易には見つけられない場合がある。
 そんな場合に備えてオブジェクトにはm_を付けておくと良い事があるかもしれない。
 (grep一発でprotectメンバ列挙等。)
・private メンバの定義個所は簡単に探せるのでprotectメンバほどm_の必要性は無い。
 むしろprivateメンバには付けない方が、protectメンバに付けた時のメリットが増す。

個人的結論:
protectなメンバオブジェクトに限って、m_を付けるメリットは(少し)あるかも。
0567デフォルトの名無しさんNGNG
Java なら javadoc 出せば継承した protected フィールドが列挙される。
java 限定の話だけど。
0568デフォルトの名無しさんNGNG
>>566
>private メンバの定義個所は簡単に探せるので
探す事自体がウザいのだけど…。見た瞬間に判断したい。
>privateメンバには付けない方が、protectメンバに付けた時のメリットが増す
m_ にこだわってるけど、区別するという意味なら protected には p_ とか
別の物をつければいいと思う。
0569通りすがりNGNG
>> 201
瞬間コンパイルと考え合わせると、
エラーを見て訂正、と、
型情報付きの名前を考える&それを使用箇所全てでタイプ、の
どちらが「時間を食うか」だと微妙だなあ…
0570デフォルトの名無しさんNGNG
google 使用禁止
0571新規約NGNG
>>558
Booleanはボーリアンと発音すること。

#昔ボーリアンがボーリアンがと連発する人がいて、何かと思ったら
#booleanのことだったよ。今では彼も博士号取ったかな?
0572デフォルトの名無しさんNGNG
Cにおいて、

1.変数名の先頭を合わせること。
2.ポインタの宣言*は変数名につけること(型名につけるのは禁止)

これによって、

char *foo;
unsigned long bar;

と書かなければならないのだが、そうするとtabだけでは合わせられない。
0573デフォルトの名無しさんNGNG
>>572
ずれた。

char        *foo;
unsigned long   bar;

これでどうだ?
0574デフォルトの名無しさんNGNG
>>573
久々のヒットだ。面白すぎ。
0575デフォルトの名無しさんNGNG
indentの書式でそういうのねえ?
0576デフォルトの名無しさんNGNG
>>574
インデントをそのようにしておかないと診断ツールが警告を
出すので、ツールに合わせろとさ(欝

その診断ツールを作った奴の基準は何なんだろう?
0577 NGNG
>>576
「COBOLやFORTRANはカラムの規定がしっかりしていて美しいなあ」のような基準だと思われ。
0578デフォルトの名無しさんNGNG
pythonサイコーとかダッタリシテ。
(python風インデントのC++トランスレータとか実装してたら笑うが。)
0579デフォルトの名無しさんNGNG
>>577
なるほどねぇ。何だか警告コメントには、変数名の位置が揃って
いないと可読性が低下して、誤りを招く恐れがあるとかないとか
あったような。

こういう人間はコラムニストと呼んでよいのでしょうか?
0580デフォルトの名無しさんNGNG
手続型言語の経験のないヤツはコーディング規約を守ってくれない。
ビジュアル系の経験しかない連中が規約にケチつける。
0581デフォルトの名無しさんNGNG
>>580さんは、規約を作ってケチをつけられた経験が
おありなのでしょうか? どんな人がどんな規約にど
んなケチをつけたのか知りたいなぁ。

漏れも規約づくりをしているけど、守る人はきっちり
律儀なまでに守ってくれるし、守らない人はそもそも
規約すら読んじゃいないし、はっきりわかれるねぇ。
0582傍観者NGNG
つうか素人が規約つくんじゃねーよ。偉大な先人が作った規約をそのまま使え。
0583デフォルトの名無しさんNGNG
>>582
FORTRAN 時代の規約とか?
0584傍観者NGNG
>583

機械語でなければ、問題ない。
0585デフォルトの名無しさんNGNG
偉大な先人が作った規約が全てのプログラマにフィットするとは
思えませんが。
0586傍観者NGNG
規約はフィットさせるために作られるのでは無い。それは、甘え。
0587585NGNG
>>586
そうですか。
それでは、偉大な先人が作った規約をそのまま使うメリットは?

0588傍観者NGNG
結局自分達で作った規約なんていうものは自己満足 だし、それが良いなんて思うのは自意識過剰。
自分で規約つくって運用しはじめたら分かるよ。

同業者にオープンな世界でレビューされておらず運用実績もないような規約は脆い。

最終的に偉大な先人が作った規約がやっぱり良かったんだという場所に落ち着く。
0589585 (587)NGNG
>>588
偉大な先人も、最初は自分で規約をつくって運用しはじめたんじゃ
ないでしょうか。たしかに実績は重要な要素だと思いますが、
それに拘っていては議論が進展しないし、レビューもされないと
思います。
0590傍観者NGNG
質問しますが、588 はコンピュータプログラミングの基礎研究をされているんですか?
今さらコーディング規約なんていう次元から始めるなんて
商業プログラマとして生産性わるいですよ。
0591デフォルトの名無しさんNGNG
589に同意。

偉大な先人も最初から偉大な先人じゃあるまい。
0592デフォルトの名無しさんNGNG
前のコードを残して修正するように決めてるところって、
よく見るんだけど
↓こんなのとか
/* 20020214 muneo delete start */
/* *p = 'A'; */
/* 20020214 muneo delete end */
/* 20020214 muneo add start */
if (*p == 'A') {
/* 20020214 muneo add end */
c = 0;
/* 20020214 muneo add start */
}
/* 20020214 muneo add end */

俺のまわりだけ?こんなアホなことやってるの
二重三重に修正コメントが入ってたりして、わけわかんない。
しかもその部門でCVS使ってたりするのが、もっとわけわかんない。
0593224NGNG
先人達の作った規約に従うのはもうウンザリです。
でも金融系@汎用だから未来永劫変わらんかもな。(´д`;)

某銀のバグ騒動は他人事じゃないヨ…
(実際他人事じゃないという噂も…ウヘ)
0594585NGNG
>>590
588 と書いてありますが、たぶん私の事だと考えてお答えします。
(長文で申し訳ありません)

個人的には、コーディング規約というのは生産性を高めるために
作成するものだと考えています。生産性を高めるのが目的なので、
個人のニーズにフィットするように改変もしくはゼロから作成
するのは自然な事だと思います。

先日、私は Perl プログラムを書きました。Perl の文法は一部を
除くと C に似ているので、偉大な先人が考えた GNU coding を
使用しようと考えました。GNU coding standard では中括弧は
一旦改行してから開くのですが、Perl では if、while の本文が
単文であっても中括弧を必要とするので、大量の「開き中括弧
だけの行」が作成されてしまいます。そこで私は GNU coding を
自分に合うように改造し、中括弧を条件式と同じ行に置くように
しました。(「本文 if 条件式」 という文法もありますが、条件式
を強調するために前に出したかったのです。)

もちろんこれは全ての人にフィットするものではありませんから、
590 さんが大量の「開き中括弧だけの行」を作成するのも自由です。
しかし結果として、その改変版 GNU coding を使用することによって
ソースプログラムの見た目は開発者にとって綺麗に見えるように
なりました。それはつまり、正産性が向上したといえるのです。
0595デフォルトの名無しさんNGNG
傍観者は放置した方がいいよ。
いろんなスレでしょーもないこと言って荒らしてるから。
0596デフォルトの名無しさんNGNG
完全にカプセル化された、信頼できるオブジェクトさえあれば
ガチガチの規約は不要だと思います。
0597デフォルトの名無しさんNGNG
>596
んじゃ、オブジェクトをプログラミングするにあたって
規約は存在しないのか。
0598デフォルトの名無しさんNGNG
ひとりでちまちま作るには個人のニーズで十分。
チームで作るにはチームのニーズ。
チーム内のルール決めるときに偉大な先人の考え適用するのもあり。
未来永劫つーかソフトウェアのライフサイクル内で、ある特定の
個人が開発、メンテをやり続けることができるのであれば、
ガチガチの規約は不要。だが、趣味のプログラムで無い限り、
ソースコードは人手に渡る。
0599デフォルトの名無しさんNGNG
>598
そうゆうコトですわ。
ごく稀に自分が必要とされたいが為に、複雑怪奇に
記述するヤツもいるが。
0600デフォルトの名無しさんNGNG
商業ソフト開発の生産性とは
開発チームとしての生産性>開発後のメンテナンスの生産性>
個人の生産性(個人が考えている生産性)の順の要素の複合ですね。
個人のニーズは一番後回し。
0601224NGNG
>>600
そうは思えん…
とりあえず>>224 と↓の458見てクレ。
 http://pc.2ch.net/test/read.cgi/tech/1007949218/

少なくとも今の職場の規約は生産性向上どころか、著しく低下させとるとしか思えん。
…でもなぜか周囲の先輩方はスゲー速度&精度で仕事をこなしてるから信じられん。(-_-;

奴(ら)は化け物かッ!?(シャア口調で)
0602デフォルトの名無しさんNGNG
>ごく稀に自分が必要とされたいが為に、複雑怪奇に
>記述するヤツもいるが。

かの名言にあるとおりだな。
「本当に必要な人材は、いついなくなっても大丈夫な人材だ」
パラドックスだ。
0603デフォルトの名無しさんNGNG
>>594
インデントとか括弧の位置は、それぞれ勝手に作って、
まとめるときにフォーマッター一発かませばすむ程度の問題。
c,c++だとCVSなどにcheckinするまえにindentしる!
emacsでindent-regionしる! など。
変数名とかif文の条件式はどー書くなどの中身のルール決める
方が重要。
0604   NGNG
全てクラスで書けだとおおおお!!!!!!
0605デフォルトの名無しさんNGNG
>604
言語はなんだ。
Javaとかだったら、当たり前だが。
0606600NGNG
>>601
読んだよ。昔の制約がある頃の仕様を引きずってる気もするが、
ルールとしては某製作所より多いところが山ほど(藁)
先輩方はルールを覚えて自在にやってるだけでしょう。
覚えるまでは大変だろうけど、覚えてしまうと悩まなくてすむ。
考える楽しみはぱっと見減るけど、本当に考えないと
いけないロジックとか実装とかに集中出来るメリットがある。

汎用機TSSのエディタはそんなもん。
ちょっと気が利いたところだと、PC上でコード書いて、端末エミュの
ファイル転送でアップロードして使ってるね。
0607デフォルトの名無しさんNGNG
>604
昔は正直、長いロジックを見てうっとりしてた。
C++になってから、自己陶酔できなくなった。
0608デフォルトの名無しさんNGNG
Forで回すかDoでまわすか、そこまで決まってる会社ってあるの?
0609デフォルトの名無しさんNGNG
会社ではなくプロジェクト毎のローカルルールだが、
ループのスタートとエンドが数値的に連続した範囲でかつ
移動ステップが固定の場合というか順番に処理を行う場合は
for(i=0; i<10;i++){}
ループ内で一定条件そろうまで回す場合は
while(status == true){}
do か whileかは処理内容依存。
0610デフォルトの名無しさんNGNG
初歩的な質問になっちゃうんです...
全く同じループだったら、どの回し方が一番高速なんですかね?
0611デフォルトの名無しさんNGNG
言語処理系にもよるけど、
for文を展開するオプティマイズがある場合は、
forが高速なのでは?(当たり前か・・・)

for (i = 0 ; i < 2 ; i++) { a+=i }
を
a+=0; a+=1 ;
てな具合に展開。
0612デフォルトの名無しさんNGNG
Forでカウンタ変数をLongにするのが一番高速。
↑先週授業でならった。
0613デフォルトの名無しさんNGNG
↑授業で使ってるのがそーいう結果が出る処理系なだけ。
どこでも通用するように教えた先生反省しる!
0614デフォルトの名無しさんNGNG
>613
もっと言ってヤレ。
実務経験のない先生様はかわいそうだね。
0615デフォルトの名無しさんNGNG
てか
そのガッコはVB専門がっこだべ?
0616デフォルトの名無しさんNGNG
>>613
612が部分的にしか聞いてなかったという可能性もあり。

>>612
おそらくVBなんだろうが・・・
なぜ高速になるのか、理由を説明してみ。
そこを理解していないと意味ないぞ。

>>602
名言かどうかはともかく、言いえて妙だな。
0617デフォルトの名無しさんNGNG
実際問題として、パフォーマンスチューニングの大半は
設計やロジックの見直しで行われる。ForがいいとかLongに
するべ、というようなところまで踏み込むのはかなり特殊
というか少数というか、極限というか・・・
0618デフォルトの名無しさんNGNG
>>617
素直に的外れと言いましょう
0619デフォルトの名無しさんNGNG
かといって、全部variantってのもかなり‥‥
0620デフォルトの名無しさんNGNG
>>612
そもそも開発環境下だと Long より Integer のが早いぞ。
(コンパイル後は Long の方が早くなるが)
0621デフォルトの名無しさんNGNG
Cの頃の話だけど規約って程でもないが癖かな
主語、述語が逆転しちまうんだよな
CodeSearchじゃなくてSearchCodeとかな
今は
Code.Searchだから逆転することはないが

どうでもいいことだな
0622デフォルトの名無しさんNGNG
>主語、述語が逆転しちまうんだよな
>Code.Searchだから逆転することはないが

codeがserachするのか
中学英語やり直したほうがいいよ
0623デフォルトの名無しさんNGNG
>621
日本語だと目的語‐述語の順だけど、
欧米語だと述語‐目的語が普通だわな。漢語もそうか。
主語が省略されてることが多いのは日本語的だが。
まあ、どうでもいいことだけどな。
0624デフォルトの名無しさんNGNG
>>620

LongがIntegerより遅くなるなんてはつみみです。
0625デフォルトの名無しさんNGNG
今なら
target.search(code);
かな。
0626デフォルトの名無しさんNGNG
Codeに関するメソッドを集めたクラスならば、
Code.search(引数)とかでいいんじゃないんですか?
0627おい、お前らNGNG
自分のネーミングセンスを疑おう
0628デフォルトの名無しさんNGNG
>>627
別にいいじゃん。
一貫性があれば大抵おっけー
そんなところで労力を使う方が問題あり
0629デフォルトの名無しさんNGNG
search()がCodeクラスのスタティックメンバだったら、ちょっとイヤ。
0630傍観者NGNG
For
ループに入る前に回数が決定しているもの。

Do
ループの処理により回数が決定するもの。

これは規約ではない。正しい使い方をしらないだけと思われ。

ちなみにForの方がDoループより確実に高速。
処理系依存とかいっている奴はおかしい。

Long と Integer は処理系依存。動作するPCのハードウェアにも依存。
0631デフォルトの名無しさんNGNG
>>630
> 動作するPCのハードウェアにも依存
PCのハードウェアによって Long や Integer のサイズが変わるのか…
0632デフォルトの名無しさんNGNG
>>630
黙ってみてるのが傍観者。
静かにしてろよ。

0633デフォルトの名無しさんNGNG
副問い合わせ禁止。なぜだ。
0634デフォルトの名無しさんNGNG
コーディング規約というより、自分の癖ですが、
クラス内のコードでメンバ関数を実行するとき、

Cfoo::Cfoo()
{
  this->Initialize();
}

という感じで、必ずthisを付けます。
普通の関数と見分けやすいので、こう書いてますが変ですか?



0635傍観者NGNG

>631
変わらないに決まってんじゃん?

それと、632には喋ってないよ
0636傍観者NGNG
>634

変じゃない。よい習慣。
0637634NGNG
そ・そうっすか!?
他の人の書いたコードで同じ事している人見たことないもんで・・。
MFCのソースなんかも普通に呼び出してるし。
0638傍観者NGNG
>631
俺が間違ってた。ハードウェアには依存しない。
0639デフォルトの名無しさんNGNG
>>634, >>636
凄く変。
0640傍観者NGNG

Integer (16bit)
Long (32bit)
という処理系があったと仮定する。

16bit CPU のPC でどっちが早く動きますか?
32bit CPU のPC でどっちが早く動きますか?

>631=638
見当違い。

>639
理由は?
0641デフォルトの名無しさんNGNG
>634
それ、結構多いですよね。
0642634NGNG
>>639
やっぱ変ですか?
普通の局所変数に

void func(void)
{
auto int i;
}

とするのと同じ位変ですか?
それと、あなたがthisを書かない理由はなんですか?

0643デフォルトの名無しさんNGNG
>>641 >>634
前の出向先がそうでした。
サブクエリ使えば速攻で作れるレポートなのに禁じ手なので
むちゃむちゃ苦労した。
0644傍観者NGNG
auto は、変とまでは言わないが冗長。
0645634NGNG
>>641
ほー!? 多いですか!!
知らなかった。
自分は、アマチューワなんで回りの状況が良く分かりません。
少なくとも、自分が今まで見た他人のコードでは見た事なかったんで。
0646デフォルトの名無しさんNGNG
Long,Int
とりあえず大は小を兼ねるでLongを使ってます。
0647デフォルトの名無しさんNGNG
>645
サブクエリ禁止と言うかサブクエリを必要としない
でーびー作れってことなんじゃないの?
0648デフォルトの名無しさんNGNG
>638
レジスタ長になるのは、intだけ?
intは良くきくけどほかはいわれないような気がする・・・。
それとも、あれってC依存・・・?
0649デフォルトの名無しさんNGNG
>646
何の言語だかわからん。
とかいう揚げ足取りするやつがでそうだ。
0650デフォルトの名無しさんNGNG
>>640
PC の定義書いとけ。
0651デフォルトの名無しさんNGNG
>Long や Integer のサイズ
処理系依存、つか、処理系の開発ターゲット依存だ。
0652デフォルトの名無しさんNGNG
>>634
普通の関数と区別つけたいならむしろ普通の関数のほうを
::FooBar()
で呼び出すべきだと思うが。
それともスーパークラスのメソッドと区別つけたいの?
0653デフォルトの名無しさんNGNG
>>652
自分としては、普通の関数を ::FooBar()みたいに呼ぶほうが、抵抗あります。
それでも、メンバにFooBar()というメソッドがあって、外部のFooBar()を
呼びたいときは、::FooBar()としますが・・

はっきりいって、thisを絶対にしたほうが(言語仕様的に)ソースが綺麗じゃないですか?
メンバは、this->FooBar()、外部関数は、普通にFooBar()と出来る様になりますし。

>それともスーパークラスのメソッドと区別つけたいの?
いえ、ノーマル関数と区別したいだけです。 まあ、単なる癖ですよ。

0654デフォルトの名無しさんNGNG
>>653
> はっきりいって、thisを絶対にしたほうが(言語仕様的に)ソースが綺麗
意味不明

言語仕様的には、区別できれば(コンパイラは)文句いわない
0655デフォルトの名無しさんNGNG
>言語仕様的には、区別できれば(コンパイラは)文句いわない
それは、thisを付けようが付けまいが、外部の同名の
関数を呼び出す時は、::FooBar()としないと、コンパイラが区別出来ないと言う事?
thisとしなくても、thisポインタが最初から渡されているんで同じと言う事ですか?

文章で伝えるのはムズい・・
0656デフォルトの名無しさんNGNG
>>655
何を言ってるのか良く分からんが

 言語仕様的にソースが綺麗

っつーのが 653 には理解不能なんじゃないの。俺にも意味がわからん。
0657655NGNG
thisとしなくても  ×
thisを書かなくても ○
0658655NGNG
C++言語の文法的に、thisを絶対書かないといけない様にすれば

クラス内でメンバ関数を呼ぶときは、
this->Func();

クラス内でメンバ関数と同名の関数を呼ぶときは、
Func();

と、出来るのではないかという事が、言いたいのでした。
分かりましたか?

言語仕様的じゃなくて、文法的でした。
0659デフォルトの名無しさんNGNG
>>658
なるほど、よく分かったが同意はしない。

 メンバ関数から、同一クラス内のメンバ関数を呼び出す
 外部の同名の関数を呼び出す

機会を考えると、前者の方が圧倒的に多い。一般的なケースは簡潔に、例外的な
ケースは目立つようにしたほうが、

 書くのが楽
 例外的な部分が、「注意を要する」とすぐに分かる

から嬉しい。
0660655NGNG
>なるほど、よく分かったが同意はしない。
うーん、やっぱり好みの問題ですかね?
自分は、やっぱメンバにthisを書きたいです。
僕ももう少し経験を積めば、そんな風な考えになるのかな?
0661224NGNG
>>659 の例外的なケースの方を修飾すれというのに同意。
でもOOP的には、オブジェクトをはっきりさせた方が良いと思うので655にも同意。

#折衷案としてpublicには付ける、privateには付けないっつーのはどう?
0662デフォルトの名無しさんNGNG
>#折衷案としてpublicには付ける、privateには付けないっつーのはどう?
VBみたいだなぁ〜。
0663デフォルトの名無しさんNGNG
>>662
VBはMeつけるのとつけないのでは違いがあるから気をつけてな〜。
(Meをつけるとプロパティ経由になり参照渡しにならなくてパフォーマンスも落ちる。
フォームのプロパティ or フォーム上のコントロールはたぶんMeつけてもつけなくても同じ。)
0664デフォルトの名無しさんNGNG
>>658
その感覚でいけば
for(i=0;i<n;i++){.
...
 {
  int i;
  for(i= ... ←これは内側のスコープの i であることを明示的に修飾しなくてはいけない
 }
}
ということになりそうだが・・・
0665662NGNG
>>663
>Meをつけるとプロパティ経由になり

どういう前提の話だろう??
Meを付けても付けなくてもプロパティを呼び出せば、プロパティ経由じゃない?

Public Property Get xxxx() As 〜
Public Property Set xxxx(yyy As 〜)

とあって、同じクラス内の別の場所で、
xxxx = ZZZZでも
Me.xxxx = ZZZZでもプロパティ経由でしょって意味ね。
0666663NGNG
>>665
ゴメン、説明が足りなかった。
Publicの変数のとき。

宣言がPublic xxxx As Integerのとき、
Meをつけないときは、変数を直接アクセスしている感じになって、
Meをつけたときは、
Public Property Get xxxx() As Integer
Public Property Let xxxx(ByVal i As Integer)
のような、プロパティを経由して変数にアクセスしている感じになる。
もちろん、外部からはプロパティ経由。
0667デフォルトの名無しさんNGNG
そういう意味なら了解!
666だね。
0668620NGNG
>>640
Integer と Long の話は元々 VB の話だったのだ。
当時、Win98/VB6 で計測したが、IDE上では Integer が、
コンパイル後のExeでは Long が早かった。
多分、IDE上では Long に対して、なんかチェックのルーチンが入るんじゃないかな?と想像した。
いついかなる時も最適化コンパイルされたネイティブコードだけを想定するのは間違い。
0669デフォルトの名無しさんNGNG
で、IDE上でわずかに速くなってなんか嬉しいのか?
0670デフォルトの名無しさんNGNG
>>669
IDE上でのテストが速く済む(w

>>668
つーか、それ本当か? 今試したがLongの方がわずかに速かったぞ。
0671デフォルトの名無しさんNGNG
>>668,670
そんなもん計測時の状態(実験環境(CPU,メモリ,OS,VB)、他のプロセスの起動数)、
計測の方法(コード、時間計測に使用した関数)によって変わる程度の微小な差だ。
何回計測した結論なのよ。
そういう話抜きでは、無意味すぎ。
0672デフォルトの名無しさんNGNG
Cだけど
昔COBOLやっていたせいなのか
関数名と変数名が大文字で
その名前自体がコード化されている。

PP13KA()とかね。
最後のAはその関数のバージョン。次はB。
0673デフォルトの名無しさんNGNG
>>655
つまりメンバ呼び出しにthis->をつけたいのは
「普通の関数と見分けたいから」
ではなくて
「インスタンスが暗黙のうちに渡されていることを明示したいから」
なのだろ?それなら論理的には納得できるし、好みの問題かもしれん。
0674668NGNG
ウチだとやっぱ int のが早かった。(10回くらいやってちょ)

Private Declare Function timeBeginPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Private Declare Function timeEndPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Private Sub Main()
Dim lngStartTime As Long
Dim lngEndTime As Long
Dim intCnt1 As Integer
Dim intCnt2 As Integer
Dim lngCnt1 As Long
Dim lngCnt2 As Long
Dim blnUseLong As Boolean

blnUseLong = False
Debug.Print IIf(blnUseLong, "Long", "Integer")

timeBeginPeriod 1

If blnUseLong Then
lngStartTime = timeGetTime()
For lngCnt2 = 0 To 1000
For lngCnt1 = 0 To 32766
'
Next
Next
lngEndTime = timeGetTime()
Else
lngStartTime = timeGetTime()
For intCnt2 = 0 To 1000
For intCnt1 = 0 To 32766
'
Next
Next
lngEndTime = timeGetTime()
End If

Debug.Print "結果:" & lngEndTime - lngStartTime

timeEndPeriod 1
End Sub
0675655NGNG
>>673
>「インスタンスが暗黙のうちに渡されていることを明示したいから」
>なのだろ?それなら論理的には納得できるし、好みの問題かもしれん。
いや、そこまで深く考えてません。
自分の場合、ただ見やすいという理由でthis付けてるだけです。
いや、ホントにタダの癖ですよ。

コーディング規約的な話をしだせば色々ありますねぇ・・

ポインタには、先頭に必ず"p"を付ける
int *phoge;

クラス名には、"C"を付ける
class Cfoo{
   ・
   ・
};

クラスメンバには、"m"を付ける
class Cfoo{
private:
m_hoge;
};

などなど、上に挙げたようなのは、すべて文法的に取り込めば
他人のコードも少しは読みやすくなりませんかね?
あっ、自由度が無くなるんでダメ?
かなり反感買いそうなんで流してください・・。

0676デフォルトの名無しさんNGNG
>>675
強制するのもいいかも知れません。ただし、その言語が相当自信作ならば、です。
はじめて Java の事を知った時、エントリポイントすらクラス内に書かなければいけないほど OO 「的」な文法を強制されるなんて!と思いましたけど、
Java を勉強する中で、この文法が何を伝えたかったのかが解りました。

逃げ場を無くす事は、場合によっては非常に有効ですね。
0677デフォルトの名無しさんNGNG
>>675とは一緒に仕事したくありません。
ぜひ異なる分野へ転職してください。
0678善良な一プログラマNGNG
>>675
氏んでください
0679デフォルトの名無しさんNGNG
それ以前の発言はおいといて、
>>675
に関しては同意。これくらいは統一しないと
人のコード読んだり、引き継いだりするとき
かなり困るんだけど…。

気ままに自分だけの感覚で命名される方が
よほど困るんだが…。

0680デフォルトの名無しさんNGNG
>>679
それはm_hogeのhogeの命名が悪いせいであって、
m_を付けたからって解決しない。
0681!= 679 だが…NGNG
>>680
具体的にはメンバー変数はどういう名前をつければいいんでしょう?
引数でわたってくる変数とメンバ変数名は、内容的には似ている物が多くなる気がするのですが?
常にベストな命名ができる基本方針等ありましたら是非ご教授くださいませ。

よしなによろしく。
0682デフォルトの名無しさんNGNG
>>681
this使うとか。
そして話題はエンドレスにループ。
0683デフォルトの名無しさんNGNG
・m_つける奴が会社勤めだったら、ぜひ辞めて欲しい。
・フリーになって一人でやって欲しい。
・ソースは納品しないで欲しい。
・その代わりあなたの納品物は無料永久サポート対象です。
・永久とは言葉のあやで、実際にはあなたが死ぬまでです。
0684デフォルトの名無しさんNGNG
>>683
感想文はこの板じゃないぞ。

技術的な議論ならここだが。
0685デフォルトの名無しさんNGNG
m_ を嫌う理由がちゃんと言えない奴が一番のアフォ。

「僕の気分がよくないんでちゅ〜〜!」
という自己厨は動物園の檻に(・∀・)カエレ!!

ちゃんと檻の前の看板を見ろよ。「チンパンジー」って書いてある所がお前の家だ。
0686特定の文字列でOE5がプレビュー時にハングアップNGNG
特定の文字列でOE5がプレビュー時にハングアップ

以下のような文字列を含むメールを開く・プレビューするとOutlookExpressが固まります。
<" http://www.testtest.co.jp/ "@www.testtest.co.jp>

-----

>> http://japan.cnet.com/News/2001/Item/011120-3.html?mn
> セキュリティー会社がInternet Explorer(IE)のセキュリティーホールの詳細を
> 公開したことに対し、IEユーザーを危険に晒したと非難していた米マイクロソフトだが、
> 実は1週間前からその欠陥を知っており、修正パッチをリリースできずにいたことを認めた。

そういえば自分も今年の3月頃、特定の文字列がかかれたメールを
OutlookExpress5に送るとプレビュー時にハングアップすることを発見し、
マイクロソフトに送ったのに、今のOE6でも直ってない。

内部的にセキュリティーホールに繋がってるとまずいと思って、
公開してなかったけれど、時間的にもう十分だよね。

以下のような文字列を含むメールを開く・プレビューするとOutlookExpressが固まります。
<" http://www.testtest.co.jp/ "@www.testtest.co.jp>
(ここではhttpを大文字にしています。)

以下より転載
http://memo.st.ryukoku.ac.jp/archive/200111.month/1912.html
0687デフォルトの名無しさんNGNG
685=クロ高のゴリラ
0688デフォルトの名無しさんNGNG
>>686
このスレに書くということは、
OE5はバカなコーディング規約の元で開発されたということですか?
0689デフォルトの名無しさんNGNG
>>688
いや、誤爆じゃないの?
0690デフォルトの名無しさんNGNG
>>688
dwXXXって変数が実はshortだったりしたんだろ。
0691685NGNG
>>687
なにそれ?誉め言葉?
なぜ俺が"クロ高のゴリラ"なのかなんて言えないんだよね。

"理由も無く" m_ を嫌う君はさ、理由もなく人を何かだと言うんだよね。

ちなみに俺は別に m_hoge 推進派じゃないよ。 hoge_ でもいい。
ちゃんと区別できるならね。
0692デフォルトの名無しさんNGNG
m_hogeもhoge_も同類だろ。
ちゃんと区別できるって何を?
0693デフォルトの名無しさんNGNG
>>692
メンバかメンバじゃないかだろ?
0694デフォルトの名無しさんNGNG
つか、メンバかどうかってそんなの規約で決めないといけないほどめんどくさいか?

まさかグローバル変数使いまくりとか?
0695デフォルトの名無しさんNGNG
また同じ事を繰り返してる馬鹿がいる
0696デフォルトの名無しさんNGNG
イタイ691のいるスレ
0697デフォルトの名無しさんNGNG
m_稲垣

スマソ...書きたくなってしまった。

0698 NGNG
何が何でもクラスで書けという規約。というか言語。
0699デフォルトの名無しさんNGNG
L はリップの L
0700デフォルトの名無しさんNGNG
>>694
グローバル変数はともかく、ローカル変数とメンバ変数ってたまに名前が
重なりそうにならん?
0701デフォルトの名無しさんNGNG
>>700
重なるときもあるけど、私は元気です。

言語によるけど重なったらエラーになったような
ならなかったような。

Javaとか新しいCはエラーになったような
記憶があいまいだけど
0702デフォルトの名無しさんNGNG
>>700
そういう発想なら、おれはローカル側に別名つけるよ
x(メンバ)
tx(ローカル)
0703デフォルトの名無しさんNGNG
>>700
それ忘れてた(鬱

でも、そんなに問題にならなそうな気がする・・・
0704デフォルトの名無しさんNGNG
>>694
このスレの上の方で、うまい説明してくれてる人がいた。
「生存期間が違うので、区別をつけた方がいい」だったかな。
俺が書くといけてない説明になるなぁ。

俺は「見た瞬間にメンバ/非メンバを判断したい」んだけど。
多数のクラスをいじってると、どれがメンバでどれが違うかなんて
覚えきれない。
スクロールしてメンバかどうか確認したりすると、
どう書こうと思ってたのか忘れたりする。

m_ (もしくは最後の_) は、「そなえあれば憂いなし」ってやつですね。
0705デフォルトの名無しさんNGNG
704や、もうやめなはれ(w
0706デフォルトの名無しさんNGNG
>>704
>>386 近辺かな。
0707デフォルトの名無しさんNGNG
やっぱハンガリアンは悪、つーことで、
─────終了。
0708デフォルトの名無しさんNGNG
>>703
気がするというか、

 重なったことに気づかないと、すごく不幸になる
 (一時間デバッグで悩んだ挙句に、こんなバグだと気が抜ける)

ので、たかが m_ 二文字で避けられるなら安いものじゃん、と俺は思ってる。
0709デフォルトの名無しさんNGNG
粘着だなあ
0710706NGNG
それ >>368 の間違いだ。すまん。
0711デフォルトの名無しさんNGNG
>>709
変数名に張り付く"m_"のこと?
0712デフォルトの名無しさんNGNG
頭のm_や末尾の_ は少なくともメソッドには要らん。
-> とか . 付けときゃイイ。
でもオブジェクトにはわざとつけた方が良いかもしれん。
(-> とか付けると醜くなるのは public 防止に良いカモ)
0713704NGNG
>>706
そうそう、>>368です。ありがとう。

>>712
オブジェクト?
0714712NGNG
あと、m_ とか _ 付けるより、ハンガリアンにするって手はどうか。
(ローカル変数には付けない方針で)

int grobal;

class Hoge
{
privete:
int method( int arg );
int nObject;
};

int hoge::method( int arg )
{
int local = arg;
nObject = this->method( ::global );
:
};

ってな感じで。
0715デフォルトの名無しさんNGNG
昔は
int m_hoge;
public:
int hoge(void);
void hoge(int);
とかやってたけど、最近はどーでもよくなったよ。
0716デフォルトの名無しさんNGNG
>>714
残念ながら…。
ハンガリアン禁止 > ハンガリアン厳守 > 中途半端にハンガリアン
だと思う。
0717デフォルトの名無しさんNGNG
>> 712 どこがハンガリアン?
つーか、これは何の言語ですか?処理系を教えてくらはい。
C++なら名前付け以前の問題...

0718デフォルトの名無しさんNGNG
>>717
多分、 n のあたりがハンガリアンじゃない?(俺はそう思った。)
コード追ってみたら確かにイッてるね。
スタックオーバーフローじゃ。
0719717NGNG
>> 718
スタックオーバーフロー以前にコンパイルエラー
C++という言語だったとしたらだけど(w
0720718NGNG
本当だ… typo の多い奴やなぁ…(言われるまで気付かなかった…鬱)
grobal あたりは typo ですらなく、そう覚えてると思われ…。
0721712NGNG
ついでに hoge:method() 定義部分末尾の ; も余分ですな。

>>720
>grobal あたりは typo ですらなく、そう覚えてると思われ…。
 nObject = this->method( ::global );
も見てから言ってクレ。
0722712NGNG
更に
 int Hoge::method( int arg )
だった…鬱だ。
0723717NGNG
privete: も残ってるよ、たぶん。
で、何の言語なの?(w
0724720NGNG
>>721
あ、気がつかなかった、スマンスマン。英単語はちゃんとわかってるのね。
つーかホントに typo 多いね、気をつけた方がいいよ。不可解なバグの種になる時あるし。
0725デフォルトの名無しさんNGNG
スペルわからんアホに限ってハンガリアン好きってことで
よろしいですか?
0726デフォルトの名無しさんNGNG
ジャンガリアンとm_の話題から離れようよ。
見ててつまんないし。
0727デフォルトの名無しさんNGNG
typoスリップなんだから、藁って許してやれ。

0728デフォルトの名無しさんNGNG
ペアプロの相方がtypoしまくりだったらキレるだろーな
0729デフォルトの名無しさんNGNG
すまん、さっきからでてくる「typo」ってナニ?
0730Kusakabe YouichiNGNG
誤植、ってことにしたいです。
0731デフォルトの名無しさんNGNG
>729
typeの誤植。
0732712NGNG
>>723
気付いたけど(>>722の後で)、あまりに鬱だったので放置して寝た。
つーかあんな時間帯にcodingするモンじゃないね。(-_-;
0733デフォルトの名無しさんNGNG
>>279
通報された後に警察がやってきて、あなたにしてあげる事。
0734デフォルトの名無しさんNGNG
>733
警察は波紋法をつかうのかー
0735733NGNG
>>734
すまん、指紋法と typo の因果関係が特定できなかった…。
http://www.google.com/search?hl=ja&q=%8Ew%96%E4%96%40+typo&btnG=Google+%8C%9F%8D%F5&lr=
0736デフォルトの名無しさんNGNG
>734
virtual void ピンクだぞチクビ();
0737デフォルトの名無しさんNGNG
>733
とりあえず、自分のレス先をよ〜くよんでみよう。な。
0738733NGNG
>>737
なるほど…俺も typo 君か……鬱。
0739729NGNG
よ〜するにだ。
「typo」は「type」の誤植として有名だ、と。
転じて、「typo」ってのが、「誤植」って意味として
マ板ム板あたりでは普通に使われてる、と。
そういうことでファイナルアンサーなのかな?

>>733
あんた、まさにtypo多すぎだよ!(笑)
s/>>279/>>729/
s/指紋法/波紋法/
0740733NGNG
>>739
すまん、波紋法って書いてあったのか…、それは typo じゃなくて >>734 を
読み間違っただけだ。
0741740NGNG
>>739
2ch用語じゃなくて、一般の単語だよ(口語かも) << typo
0742名無しさん@EmacsNGNG
typographical error
0743729NGNG
>>742
うわわ、それが正解か。>>731には騙されてたのか…。
0744734NGNG
733さん
あなた おいしすぎ
0745デフォルトの名無しさんNGNG
http://www.alt-usage-english.org/excerpts/fxtypoxx.html
0746731NGNG
>>739
引っかかってくれるとは、君はいいやつだな。

でもまぁ、先に辞書引いてみようぜ。
俺は729とおなじにtypoってなんだ?と思ったくちだ。
0747デフォルトの名無しさんNGNG
もう、たいぽ
0748デフォルトの名無しさんNGNG
たいぽしちゃうぞ!
0749デフォルトの名無しさんNGNG
たいぽしちゃうぞ!
0750デフォルトの名無しさんNGNG
カブタ━━━━━━(゚∀゚)━━━━━━ !!
0751デフォルトの名無しさんNGNG
たいぽしちゃうぞ!
0752733NGNG
>>748-749
だからそれは俺がもう逝ったてば。(リンク先間違えたりして天然っぷりを発揮してるけどさ)
0753712NGNG
|_Λ
|д`) 漏レガtypoシナケレバ..
⊂ |  スマネェ733サン...
| |
|U
0754729NGNG
このスレは数字コテハンが氾濫するスレになりました(笑)。

>>746
Googleでちょっと調べるぐらいはやったんだけどネ。すぐにあきらめちった。
0755733NGNG
   | ̄ ̄ ̄ ̄|
   _|____|_
    /ノ/ ノ   \ヽ
    |( | ??  ??|)|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    从ゝ  ▽  从 <  >> 712 気にしないで! typo 仲間じゃない♪
    /  ̄<V> ̄i    \__________
   / ハ   o  ハ
  (__)/   o   |_)
   /       ヽ
     ̄| ̄| ̄| ̄
     | ̄| ̄|_
    〈___〉__〉
0756三村NGNG
>>726
ハムスターかよ!
0757デフォルトの名無しさんNGNG
age
0758デフォルトの名無しさんNGNG
Cで関数途中のreturn禁止
前任者たちはこんな風にしてました
void f(){
while(1){ // 絶対ループしないbreakを使いたいがため
if(error){
break; // ほんとはreturnしたい
}
}
return;
}
0759デフォルトの名無しさんNGNG
gotoしちゃえ!
0760デフォルトの名無しさんNGNG
vbの変数めいめい規則で
intVal
lngVal
sngVal

とかあるけど、Boolってどうやってる?
bolVal?

あとFormとFrameも困る
どちらもfrmObjectになっちまう
俺の場合fraFrameにしているけどみんなはどう?

あと、VB変数の命名規則のリンクがあったら教えて。
0761デフォルトの名無しさんNGNG
>>760
MSDNにちゃんと全部書いてあるよ。

Bool型は、bln〜

fra自体がフレームを意味してるのだから、fraFrameは、馬から落馬。
0762デフォルトの名無しさんNGNG
>>760
オブジェクトはobj〜でいいんじゃないの?
0763デフォルトの名無しさんNGNG
フォームはfrm、フレームはfra
MSDNライブラリに書いてあるよ。名前付け基準とかで検索してみ。
0764デフォルトの名無しさんNGNG
>>763
マジ?ベリーサンクス!
0765デフォルトの名無しさんNGNG
n, sz, b みたいなプリフィクスは、どこに書いてありますか?
0766デフォルトの名無しさんNGNG
罠?
0767デフォルトの名無しさんNGNG
*プリ*フィクスはどこに書くか。
うーん、頭痛が痛い。
0768デフォルトの名無しさんNGNG
関数コメントには、次のテンプレートを使用すること。

/****************************************/
/* 関数名:                        */
/* 引数:                         */
/* 説明:                         */
/****************************************/

わざわざ*で四角に囲まなくても良くないと思うのですが。
テンプレートを埋める際にずれて腹立ちます。
0769デフォルトの名無しさんNGNG
>>768
矩形領域の上書きコピペすればいいだけでは?
0770デフォルトの名無しさんNGNG
//┏┏┏┏┏ここら辺に原因不明のバグがあるらしいです┏┏┏┏┏
0771デフォルトの名無しさんNGNG
>>769
viでそんな器用な事出来たっけ?

まあオレは秀丸使うけど
0772733NGNG
このスレまた上がってきたんだね

>>771
秀丸ってそんな器用なことできたっけ?
0773デフォルトの名無しさんNGNG
>>758
悲惨なコードだな
0774デフォルトの名無しさんNGNG
つーかループさせたくないなら
do{
...
}while(0);
の方が良いと思うなー。みたいなー。
0775デフォルトの名無しさんNGNG
int o=1;
for(;o;) { /*ダレカトメテー*/
...
}
0776デフォルトの名無しさんNGNG
>>758
あ、あ、あぁぁぁぁあぁあ、
……あーあ。
>>759
賛成
0777デフォルトの名無しさんNGNG
途中でかえる場合は必ず理由を明記すること
0778デフォルトの名無しさんNGNG
頭痛がするのでかえらせて下さい。
0779デフォルトの名無しさんNGNG
gotoを絶対使っちゃいけないなんていうくだらない規約。C/C++だけど。
0780デフォルトの名無しさんNGNG
数字は全てdefineで定義すること。

↓こんなのハケーン
#define ZERO 0;
0781デフォルトの名無しさんNGNG
>>758
 while(error) return;
とか
 for(;error;) return;
とかでいいんじゃねーの?
0782781NGNG
あ、ごめ。勘違いしてたわ。
0783デフォルトの名無しさんNGNG
>>775 禿藁
0784棄教者 ◆witdLTi2 NGNG
>>775,783
ループを抜けるにはループ内部で
 if (何か条件)
  o=0;
を挿入すればいいんですよね?
while(1){
 if(何か条件)
  break;
}
なループよりも格好いいかも
0785デフォルトの名無しさんNGNG
>>784
要するにキミは泣いている(;o;)に、
「止めてほしけりゃ、俺の0をしゃぶりな。」
と言うのが格好いいと。
0786デフォルトの名無しさんNGNG
>>785
滅びの呪文はFALSEですか?
0787デフォルトの名無しさんNGNG
>784
それじゃ即抜けできねーだろ
0788デフォルトの名無しさんNGNG
>>769
「矩形領域の上書きコピペ」って面倒だと思わないの?
0789デフォルトの名無しさんNGNG
>>788
使ってるエディタにそういう機能があるの。
どこが面倒なの? 
0790デフォルトの名無しさんNGNG
>>789
まあまあ
788は矩形選択できねえnotepadみたいなエディタしか
使ったことないんだろうよ
0791758NGNG
>>759
当然gotoも禁止でした
0792デフォルトの名無しさんNGNG
>>758
こういう輩にいいたい。
「ならbreak/continueもすんなよ」
0793デフォルトの名無しさんNGNG
>>792
そういう輩は、マルチプロセスとかマルチスレッドとかの扱い、
どうするんだろう???ソースが(そいつらの主観で)読みやす
ければ、実行時の複雑さはどうでもいいのかな?
0794デフォルトの名無しさんNGNG
>>792
break禁止だとswitchを使うのが難しくなるね。
0795デフォルトの名無しさんNGNG
>>794
脱出方法がreturnか、gotoだ!
0796デフォルトの名無しさんNGNG
全部exit(status)だ!
0797デフォルトの名無しさんNGNG
いっそ、脱出しないね、オレなら
0798デフォルトの名無しさんNGNG
コアはいて落ちろ!
0799デフォルトの名無しさんNGNG
いっそ、引きこもるね、漏れわ
0800791NGNG
そーいや longjmpは禁止されてませんでした
0801デフォルトの名無しさんNGNG
__asm{
 ret
};
だめ?w
0802デフォルトの名無しさんNGNG
そのプロセスのステータスを共有メモリに保存して、シグナル投げてexit
↓
他のプロセスがシグナル検知して別プロセス立ち上げ
↓
別プロセスが共有メモリを読み込んでつづきの処理
↓
以下繰り返し

…アホだ…
0803デフォルトの名無しさんNGNG
switch→テーブルジャンプは(多分)速いぞ
0804デフォルトの名無しさんNGNG
マルチプロセスとかマルチスレッドとかだとどうして break, continue が
多用されるのかよくわかりません、教えてください。
(煽りでもネタでもなく、最近マルチプロセス/マルチスレッド系に初めて手を染めたので、よく知らないので勉強の為です。)

よろしくお願いします。
0805デフォルトの名無しさんNGNG
>>804
マルチスレッドだからといって break, continue の使用頻度があがると
は思いません。
なにか勘違いされてるように思います。
0806デフォルトの名無しさんNGNG
>794
C++6年使いにこういうヤツがいた。

for(i = 0; i < loop_max; i++) {
  if (loop抜けの条件 == True) {
    i = loop_max;
  }
  else {
    /* ... */
  }
}
0807棄教者 ◆witdLTi2 NGNG
>>806
ぼくも気分的に

if( ! 条件文 ) {
/* Do something */
}

と書くべきを
if( 条件文 ) {
/* Do nothing */
} else {
/* Do something */
}
と書きたくなるときがありますが 何か?
0808デフォルトの名無しさんNGNG
実際バグって追う時、elseハックは見難いんだよね…。
そゆの書くヤツに限って !(a && b) と !a || !b がわかんないアフォだし。
0809デフォルトの名無しさんNGNG
>>806
そのif〜else節の後ろにも処理が続くなら、それはそれでアリだと思うよ。
だけどそれなら書き方にもう少し工夫がいるな。
0810デフォルトの名無しさんNGNG
else にしか処理を書かないのはコボラーのやり方です。
0811デフォルトの名無しさんNGNG
>>810はコボラー
0812デフォルトの名無しさんNGNG
>>810
Lisp でもよくやると思うよ
0813デフォルトの名無しさんNGNG
何もしないことを明示してんだよ。主張の感じられるましなコードだな。
0814デフォルトの名無しさんNGNG
>813
冗長だと思うよ。
0815デフォルトの名無しさんNGNG
if(!expr){
//.......
}

とかくかわりに
if(expr){

}
else{
//.......
}
と書くのは、あんまり使わないけどexprが複雑なときはそう書きたくなる気持ちは分かる。
exprの全体を!()で囲うとexprの部分が見づらくなってしまうし、
かえって意図がはっきりしなくなってしまうこともある。
まぁunlessのかわりって所かな
0816デフォルトの名無しさんNGNG
breakでは?
0817デフォルトの名無しさんNGNG
if("Aが存在するか"){
  if("Aの値が1なら"){
    TextOut("Aは1でした")
  }
}

ifを2つ使ったのは、Aが存在しないのに
if("Aの値が1なら")
を実行するとエラーになるからです。
こんな場合でも

if("Aが存在するか" && "Aの値が1なら"){
  TextOut("Aは1でした")
}

とすればAが存在しなければ
"Aの値が1なら"
は評価されず、if は FALSE の処理になるんですか?
0818デフォルトの名無しさんNGNG
実験してみれ。
0819デフォルトの名無しさんNGNG
>>817
規格書調べれ。
0820デフォルトの名無しさんNGNG
>>817
一部のCでは&&の右が評価されることがあるらしいが最近なら右は評価されない。
よって、最近なら後者で逝け。
0821デフォルトの名無しさんNGNG
漏れはいまだに
if(ptr!=NULL && *ptr==n) …
というコードがなんとなく書きたづらいなぁ
0822821NGNG
かきた→かき
0823デフォルトの名無しさんNGNG
>>820
&&はコンパイル時に結局if(){if()になるんじゃなかったっけ?
>右が評価されることがある
それはコンパイル時に&&の左右が入れ替わる可能性があるということ?
0824棄教者 ◆witdLTi2 NGNG
>>817-820
実験しましょう
int a = 0;
int b = 1;
int main(void) {
a++ && b++;
cout << "a=" << a << ", b=" << b << endl;
}
あなたのコンパイラでは結果はどうなりますか?

int a = 0;
int b = 1;
int main(void) {
a++ || b++;
cout << "a=" << a << ", b=" << b << endl;
}
あなたのコンパイラでは結果はどうなりますか?

ちなみにぼくはgcc2.95@Linuxですが
上の例だとa=1, b=1 下の例だとa=1, b=2でした

>>821
Perlだと
open FH, "<filename" || die "ファイルが開かないぞゴルァ\n";
って構文よくあるよ
ぼくは Perlが primary languageでC++がsecondary languageなので
C++でコードするときもこういう構文をよく書きます
0825デフォルトの名無しさんNGNG
&& の評価順序は ANSI で決められているんじゃなかったっけ?
0826デフォルトの名無しさんNGNG
これは「短絡評価」つって、式の真偽が決まったらその時点で
評価を終わらせるっつーやつやね。C/C++プログラマには
常識…とまでは言い過ぎかもしれないけど、聞きかじった
ことぐらいはある話のはず。ていうかCommon Lispでも
短絡評価だったような記憶があるし、Perlでもそうだって言うんなら、
この話はプログラマにとって一般常識かも。

でもまあ、せっかく>>824がテストコード書いたんだし、
動かしてみた。VC++6.0でも、824と同じ結果になったよ。
ちなみに、||のほうでは初期値をa=1,b=1でやってみて、
a=2, b=1、という予想通りの結果が出た。

やるまでもないようなことだけど、やってみて期待通り
だったから一安心やねー。
0827棄教者 ◆witdLTi2 NGNG
>>826
ぼくのテストコードで遊んで下さってありがとうございます
お説の通り&&でも||でも初期値をa=1にした場合も
テストしないといけませんでしたね
自分でももう一度やってみます 鬱だ
0828棄教者 ◆witdLTi2 NGNG
ぼくの好きな文句を引用します

> perlstyle より
> Just because you CAN do something a particular way
> doesn't mean that you SHOULD do it that way.

時と場合に応じた if || &&の使い分けやelse構文を使うのは
*読}*み*や*す*け*れ*ば*それでいいと思うYO!
0829デフォルトの名無しさんNGNG
>828
>*読}*み*や*す*け*れ*ば*それでいいと思うYO!

この部分が読みにくいのれす。コードだけでなく、文章も読みやすいほうがいいと思うYO!
0830デフォルトの名無しさんNGNG
>>826
VBでは短絡評価が通用しないんだよね。Andで繋ぐと全部評価してしまう。
Dim i,j,k As Integer とかの次に、Cプログラマがハマるところ。
でも、VB.Netでは短絡評価が採用されるそうな。仕様変えるなよ・・・。
0831デフォルトの名無しさんNGNG
>830
別の言語に文句いってもしょうがないと思う...
0832デフォルトの名無しさんNGNG
コンパイル時に&&の順序が変わることがないと思うが、大昔の話なら
ifの()の中が全て評価されことがあったかは分からんな。
Perlの
open FH, "<filename" || die "ファイルが開かないぞゴルァ\n";
もよく使います。
とりあえず現状では&&はFALSEが決定した時点で終了だ。

#include<iostream.h>
int func(){cout << "評価された"; return 1;}
main(){
int i = 5;
if(i==8 && func()){
cout << 3;
}
cout << 9;
}
0833デフォルトの名無しさんNGNG
ショートサーキットが当然と思わず、言語仕様を確認すれ。
0834デフォルトの名無しさんNGNG
でも常識を疑うよね>833
0835デフォルトの名無しさんNGNG
>>832
Perlなら||じゃなくてorにしとけ。
0836デフォルトの名無しさんNGNG
そこはかとなく無限ループ。
いまどきのコンパイラは警告してくれる。

for (unsigned char bits = 0x80; bits; bits >= 1) {
if (pattern & bits) {
// ...
}
}
0837836NGNG
スレ違い失礼いたしました。
0838棄教者 ◆witdLTi2 NGNG
>>835
この板はC系の住人が多いからわかりやすいように||/&&で書いたんだYO!

仕事でハックするときはいつもand/orを使っている これ最強
しかしこれをやると
Cでハックするときもand/orとやってコンパイルエラーを起こすという諸刃の剣
素人にはお勧めできない
まあお前はifでも使ってなさいってこった
0839デフォルトの名無しさんNGNG
>>834
まあ、オレはショートサーキットに依存しないように組んでるが。
perlのサンプルで常用されているやり方は正直論外だ。まあperlらしいが。
0840棄教者 ◆witdLTi2 NGNG
>>807
たった今そういうコードを書いたので報告

const LEFT = 1 << 0;
const CENTER = 1 << 1;
const RIGHT = 1 << 2;

if( direction == LEFT ) {
/* Do nothing */ ← どうしても書きたかったの♪
} else if ( direction == CENTER ) {
hoge();
} else if ( direction == RIGHT ) {
fuga();
}
これを
if( direction == CENTER ) {
hoge();
} else if ( direction == RIGHT ) {
fuga();
}
とだけ書くと「左」の場合は何をやるの? ってあとから
見直した場合に混乱するような気がしてならなかったんです
すみません もうしません 許して下さい
0841デフォルトの名無しさんNGNG
>>840
俺なら素直に switch - case にするか、関数ポインタの配列を使うけど。
0842デフォルトの名無しさんNGNG
>>841
スレの趣旨にそって考えるに、規約でswitch文またはbreak文が
禁止されてたとか。
関数ポインタは「難しくてメンテナンス性が悪い」から使うなとか。
0843デフォルトの名無しさんNGNG
うむ。まさに当スレにふさわしい規約じゃ。
0844棄教者 ◆witdLTi2 NGNG
>>841-842
言われてから気づきました switchの方がいいですね
関数ポインタは恐いので遠慮です
0845デフォルトの名無しさんNGNG
goto, continue, break(switchのは除く)は原則使用禁止。
returnは1関数内で一度だけ。

ってのがあった。もちろん、誰も守ってなかったけどな(w
まぁ「long型の符号を指定しないとがsignedになるかunsignedになるかは処理系依存」とか
書いているレベルだったしな。

sizeofも関数とか言ってるんです。もうね、アホかと。馬鹿かと。
0846デフォルトの名無しさんNGNG
>>845
> goto, continue, break(switchのは除く)は原則使用禁止。
> returnは1関数内で一度だけ。
構造化プログラミング原理主義者ですな。最近は絶滅の恐れが指摘されてい
ますので、速やかに実務から遠ざけて保護監視下に置いてください(w
0847デフォルトの名無しさんNGNG
>>842
ところで、switchが禁止されてたら、どうするんだ?

関数ポインタ
仮想関数のオーバーライド
Chain of Responsibilityパターン
if文ぐりぐり分岐

あたりで対処すんのか? どれもこれも面倒…。
0848デフォルトの名無しさんNGNG
すみません。ちょっと前まで、こーいう書き方してました。

#define not(f) (!(f))
if not( a<b && b<c ... )

0849デフォルトの名無しさんNGNG
反省してるならヨシ
0850デフォルトの名無しさんNGNG
>>847
もちろん>>840みたいにif文でぐりぐり
0851棄教者 ◆witdLTi2 NGNG
>>848
ぼくとしては !, &&, ||みたいな記号を使うよりも
not, and, orみたいな英語を使う方が直感的で好き♪
だから Perl マンセー
0852デフォルトの名無しさんNGNG
>>851
C++ 使え。
0853デフォルトの名無しさんNGNG
>>851
VB使え。
0854デフォルトの名無しさんNGNG
>>851
#define not !
#define and &&
#define or ||

ただし、これを使うと(以下略
0855棄教者 ◆witdLTi2 NGNG
>>854
>ただし, これを使うと訳の分からない副作用に悩まされる諸刃の剣
>素人にはお勧めできない
了解しました マクロの副作用はじっさいよく分からないので 恐くて使えません
定数を宣言するときはconstを,
マクロを使いたいときはインライン関数を使っています
0856デフォルトの名無しさんNGNG
マクロの副作用くらいは分かれ。

>>854の糞マクロは、お前以外のすべてのCプログラマにとって
読みづらいという副作用しかないが。
0857デフォルトの名無しさんNGNG
あのさぁ、構造化原理主義じゃないんだけど、
なんでもかんでも return すんなよって思うんだけど。
出口はできるだけ少ない方がわかりやすいでしょ?

出口をひとつにする為に多大な労力を払うのは馬鹿だけど、
簡単に出口をひとつに出来る場合までたくさん出口を作るやつはもっと馬鹿だと思う。
0858デフォルトの名無しさんNGNG
>なんでもかんでも return すんなよ
例外なげまくりの方向で。
0859デフォルトの名無しさんNGNG
>858
それ最悪。
0860デフォルトの名無しさんNGNG
>>856
C99 だと標準ヘッダ <iso646.h> で定義されてたり。

まぁ trigraph の親戚だから、無理して使う必要は *全然* ないけど。
0861デフォルトの名無しさんNGNG
>なんでもかんでもreturn寸名よ
じゃあ関数呼びまくりでreturnが複数にならないように。
0862デフォルトの名無しさんNGNG
if文ではelse文を必ずつけること。

if (a == b) {
 /* ... 処理 ... */
} else;


修正個所を示すコメントはインデントをつけず、
追加・修正・削除に応じた記号を埋め込むこと。


と、いうことでソースがかなりいい塩梅になってた。
0863デフォルトの名無しさんNGNG
バージョン管理ツールを知らないわけか…
0864862NGNG
もちろん、そんな高等なものを知っているわけもなく。
未だに日付を付けて履歴ファイルを残しているYO!
0865デフォルトの名無しさんNGNG
>>854
Pascalやってた俺には逆に見やすい罠。
ただし、Pascalと論理演算子の評価順が違う罠。
0866デフォルトの名無しさんNGNG
>>865
そんな奴はPascalを使えばいい罠。
0867デフォルトの名無しさんNGNG
pas2cを作ってしまう罠
0868デフォルトの名無しさんNGNG
p2cならすでにある罠。
0869デフォルトの名無しさんNGNG
#define begin {
#define end }
#define procedure void
0870デフォルトの名無しさんNGNG
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.html
0871848NGNG
あー断っておきますが、>>848は elseハックの回避(ifの拡張)が目的だったんで、
他の部分では普通に ! を使っておりました。

# 要するに if(条件); else{...} を if not(条件){...} にしたかった。
0872デフォルトの名無しさんNGNG
それならむしろunlessを以下略
0873Perl厨NGNG
>>872
unlessってPerl以外にあるの?
0874デフォルトの名無しさんNGNG
破門です
0875デフォルトの名無しさんNGNG
>>871
if (!(条件)) {...}でいけない理由が分からない
0876デフォルトの名無しさんNGNG
>>875
括弧のせいで可読性が最悪
0877デフォルトの名無しさんNGNG
>>876
最悪っつーほどのことか? むしろ、ふつーは見かけない not を使うほうが
(?_?) となると思われ。
0878Ruby厨NGNG
>>873
Rubyにもあるよ。
0879デフォルトの名無しさんNGNG
C の switch で、各 case 毎に必ず break する事を求められた事がある(守らな
かったけど)。

switch(exp) {
case 1:
 ほげ; break;
case 2:
 ほげほげ; /* break せずに下に落ちてはいけない */
default:
 ほげほげほげ;
}
0880デフォルトの名無しさんNGNG
>>879
このスレでマジレスするのもどうかと思うが、まぁ(w

break しなくても良いんだが、その場合には原則として

/* FALLTHRU */

と書いて欲しいとは思う。俺が /* FALLTHRU */ を書かないのは

case '0': case '1': case '2': ...

というような「数字をまとめて」「アルファベットまとめて」で処理する場合だけ。
0881デフォルトの名無しさんNGNG
受験生の前で switch 文の話をする事禁止(w
0882デフォルトの名無しさんNGNG
continueは?
0883879NGNG
受験性の前では 6809 の SEX 命令の(以下略)。

>>880
lint 対策すね。
0884 NGNG
JAVAの話だけど

if( a != null && !a.equals("") ){}

か

if( "".equals(a) ){}

どっち?

いつも上をつかってるけど下をはじめた見たとき
目からうろこが落ちた
0885デフォルトの名無しさんNGNG
>目からうろこが
まだたくさん入ってますよ、うろこ
0886デフォルトの名無しさんNGNG
>>884
そのコード、まったく違うだろ?
0887デフォルトの名無しさんNGNG
>>884
すばらしい。
おれも目からウロコがおちた。
こんどから使わせてもらおう。
0888デフォルトの名無しさんNGNG
>>884
そのだと文字列以外には適用できないし
下から上の意図を読み取りづらい(慣れの問題ではあるが)ので
使わないかも。
0889素人PGNGNG
>>884
JAVAよく知らないから聞くんだけどさ、
C++的なイメージで読み解くと、上の方って最初にNULLチェックしてる訳よね。
それだと、下のコードは ""ストリングクラスにNULL渡しても
イコールと評価されないって事なの?
"" って、C的に考えると \0 つまり NULL っすよね?

a がどんな型を使ってるのか解らなければ間違ってると過指摘できないや。
0890デフォルトの名無しさんNGNG
NULLと空文字列は区別したいなあ
DBのnullとかもそうだし
0891デフォルトの名無しさんNGNG
DBのは三値演算だからちとちがう
0892デフォルトの名無しさんNGNG
>>889
C的に考えても\0はNULLじゃないぞ。
0893デフォルトの名無しさんNGNG
>>889
自分でやってみろアホ
0894デフォルトの名無しさんNGNG
Cで、こういう規約があったとしましょう。

・等値の比較は、定数を左辺におくこと
・大小比較は、比較する値と比較対象の変数が数直線に乗るように書くこと

要は下記のように書け、ってことなんですが・・・
やっぱこういう規約ってアフォな会社のやることなんでしょうか?

----------
http://pc.2ch.net/test/read.cgi/unix/1016643235/ より

main()
{
  int x ;

  for ( x = -5 ; x < 10 ; x++ )
  {
    if ( ( 1 < x ) && ( x < 6 ) )
    {
      printf( "%d is in [ 1 < x < 6 ]\n" , x ) ;
    }

    if ( ( x <= 1 ) || ( 6 <= x ) )
    {
      printf( "%d is not in [ 1 < x < 6 ]\n" , x ) ;
    }

    if ( 3 == x )
    {
      printf( "%d is just 3\n" , x ) ;
    }
  }
}
0895 NGNG
>・等値の比較は、定数を左辺におくこと
if( a==1 )
を間違えて
if( a=1 )
と打ち込んでしまってもコンパイラは警告を出さない。
if( 1=a ) なら警告を出す。

>・大小比較は、比較する値と比較対象の変数が数直線に乗るように書くこと
意味判らん。
0896 NGNG
数直線に乗らない数ってなんだろう?
0897デフォルトの名無しさんNGNG
ようするに
x > 0 && x < 5
じゃなくて
0 < x && x < 5
って書けってことなんでは

自分的には… どうでもいい
0898デフォルトの名無しさんNGNG
>>894
> ・等値の比較は、定数を左辺におくこと
> ・大小比較は、比較する値と比較対象の変数が数直線に乗るように書くこと
後者は、それで多少式が読みやすくなるけど、前者は読みにくくなるよね。
その方針としての矛盾がいやだ。
0899デフォルトの名無しさんNGNG
>>895

いまどきのコンパイラかつ警告レベルが高ければ
>・等値の比較は、定数を左辺におくこと
if( a==1 )
を間違えて
if( a=1 )
と打ち込んだら警告が出る。

if( 1=a ) ならエラーを出す。
0900デフォルトの名無しさんNGNG
900げとずざ
0901デフォルトの名無しさんNGNG
>大小比較は、比較する値と比較対象の変数が数直線に乗るように書くこと

これは自分規約でやってるよ。Cやり始めの頃は
if (0 < x < 9) {.....}
とかやってはまったけどね。自分的には 0 < x && x < 9の方が左から素直に
読めるのでそうしてる。
0902デフォルトの名無しさんNGNG
「ソースの見た目効率スレ」でも、まったく同じ話題で
まったく同じようなレスをしてあったぞ。
0903棄教者 ◆witdLTi2 NGNG
gcc で if(a=1)と書くと怒られます
if( (a=1) )だと怒られません
0904デフォルトの名無しさんNGNG
if (0 < a && a < 10) は見やすいので肯定。
if (10 = a) は、そもそもこんなコードを書くのが悪いので否定。
0905デフォルトの名無しさんNGNG
>>903
a=1 ... 代入式
(式) ... 式
(a=1) ... 式
0906棄教者 ◆witdLTi2 NGNG
>>903,905
解説サンクス
ちなみにほかのコンパイラだとどうよ? >>警告が出るか否か
0907デフォルトの名無しさんNGNG
>>894
参考スレで賛同を得られなかったからって出張しなくてもいいんじゃないの?
参考スレでも書いている人がいるけど
「思考の流れに沿ってコード書く」
に俺も1票。
コンパイラがエラーで教えてくれるからってコーディングスタイルを変えるのはどうかなと思う。
# コード書く人がしっかりしていないとCは糞言語になるよ。

しかし、894みたくxの比較対照が全て定数ちゅう状況はあまりないような気がするんですが...
どうでしょうか。
0908デフォルトの名無しさんNGNG
激しく外出だろうが、FORTRAN77はアフォ
氏ねよボケが
0909ななしNGNG
VBでは、オブジェクト識別子の命名に型名のプリフィクスが推奨されますが、
他言語(OO言語?)では、ハンガリアンスタイルが否定されつつあるそうです
(2チャンネルでそういう趣旨の発言を複数回見た記憶があります)が、その
理由(趣旨)は何でしょうか?

イタチ飼い、もとい、板違いでしたら、スマソ。m(_ _;)m
(コーディングスタイルが議論の対象のようなので、恐る恐る上げてみました)
0910ななしNGNG
>>909

自己ツッコミですが、もしかして、実行時にならないと型が決定されない
オブジェクト(VBのVariantや抽象Object型のようなもの?)に対応でき
ないからですか?

見当違いでしたら、ツッコんでください。
0911デフォルトの名無しさんNGNG
意味のある「型」が増えすぎていちいち接頭詞を決めていられないからです。
基本型しかない・使わない言語しかなければ版狩り案も生き残ったかもしれんが。
0912ななしNGNG
>>911

マジレス感謝です。m(_ _)m ペコリ
0913894NGNG
>>907
ちょっと待て えらく心外な言われ方だな。

自分でこれが正義だと思ってたら、「バカなコーディング規約」なんていうスレ題のところに
書くとでも思ってる??

バカっぽいけど作成者集団がバカの集まりだった場合にはどうだろうか?
という疑問があったから書いたまでだよ。
UNIX板のURLを書いたのは前評判はこうでした、というのを提示したかっただけ。

実際問題、こういう比較を行なうこと自体マレなのは承知してるよ・・・バカにすんなや

0914907NGNG
>>894
了解しました。&失礼しました。
みなさんの意見を聞こうと思います。
その前にあなたはどう思っています?是非聞かせてください。
0915デフォルトの名無しさんNGNG
意味の分かりにくい時点で罰
だいたいそんな細かいこと 規則にする必要ないよ
お薦めのコーディングスタイル程度でいい
0916(謎)のつぶやきNGNG
コンパイラにとって (a==1) と (1==a) ってどっちが最適化しやすいのかな…
0917デフォルトの名無しさんNGNG
同じだよ
0918下の方が見やすいとおもうんだがどうだろう。NGNG
if( foo.bar( arg1, arg2, ..., argn ) == 0 )
if( 0 == foo.bar( arg1, arg2, ..., argn ) )
0919デフォルトの名無しさんNGNG
愚問だらけやな。
実在する規約をかこうよ。
0920デフォルトの名無しさんNGNG
if SUCCEEDED( pFoo->Bar(lpszArg1, iA2, chA3, punkA3) )
0921デフォルトの名無しさんNGNG
>918
私の感覚では上の方が自然。
下は if ( 0 = value ) でエラー(警告?)を出すための技法だったような・・・。
0922デフォルトの名無しさんNGNG
変数 = 変数 を検出できないからいかにも中途半端、
素直に警告レベル上げろに一票入れとく
0923921NGNG
じゃなくて、
if (a = 0) を防ぐためでした。
カッコ内で代入しない方がいいと思いますよ!
0924918:この場合は?NGNG
if( foo.bar( arg1, arg2, ..., argn ) > 0 )
if( 0 < foo.bar( arg1, arg2, ..., argn ) )
0925デフォルトの名無しさんNGNG
>>924
foo.barがどういう役割かによる
0926デフォルトの名無しさんNGNG
>>924
一旦変数に受ければ?
デバッガで追うときも楽だし・・・
0927デフォルトの名無しさんNGNG
>>923
if(a=0) を防げても if(a==b)のつもりでif(a=b)って間違いが防げないってことだ。
0928デフォルトの名無しさんNGNG
だからconst修飾子をローカル変数にも使いまくります。
大変便利です。
0929デフォルトの名無しさんNGNG
>>922
激しく同意!!
むしろC言語など使うなに一票。
0930基本だろ?NGNG
>>927
セキュリティは2重3重にかけるべき。
0931デフォルトの名無しさんNGNG
if(retval=foo()){
 /* ここでretvalの値を使ったり */
}

こういう書き方はやっぱりやばいですか?マジ代入の意味なんですが。
単に
if((retval=foo())!=0){
}
と書くのが面倒なだけですが。
0932デフォルトの名無しさんNGNG
書き間違いが危ないと言うなら、

#define equals(a,b)
#define notequals(a,b)

を使うことをプログラマに強制する。
0933デフォルトの名無しさんNGNG
doesnotequal(a,b)?
0934デフォルトの名無しさんNGNG
retval = foo();
if (retval){
}
の方が好き。
0935デフォルトの名無しさんNGNG
>>934
禿しく同意。
printfデバッグや仕様変更時に修正量が結局一番少ないのが
ifの条件式を単純にすることと悟った。12年ぐらいプログラミング
してるけども。
0936デフォルトの名無しさんNGNG
>>930
そもそも、二重になってないやん(変数 = 変数の場合)
0937デフォルトの名無しさんNGNG
>>934
戻り値にエラーと正常値を混在させるな、と言ってたのは WRITING SOLID CODE
だっけ?
0938デフォルトの名無しさんNGNG
おれは
#define error_if_zero
#define error_if_nonzero
を空宣言して関数につけるようにしてる
0939デフォルトの名無しさんNGNG
>>937
ユーザ関数をそう設計しても標準ライブラリやシステムコールが
旧態依然とした戻り値にエラーと正常値を混在させるものだから
どうにもこうにもって感じだな。
0940デフォルトの名無しさんNGNG
そうかといって、コレ以上ラッパーでくるみたくないしね。
0941デフォルトの名無しさんNGNG
Cで
#define PUBLIC
#defone PRIVATE  extern
としといて
PRIVATE funcA(〜)
PUBLIC funcB(〜)
とするのはやめようよ。
CなのにC++を簡易的(安易)に取り入れた規約決めんといてくれよ。
0942デフォルトの名無しさんNGNG
> #defone PRIVATE extern

#define PRIVATE static
ではなくて?
0943デフォルトの名無しさんNGNG
>>942
すまそ。その通りです。
泥酔気味なので許して。
0944930NGNG
>>930
(定数==変数)として、警告レベル上げれば2重だよな。
定数をうっかり右に置いて、>>903のケースみたいにならん限り
必ず警告される。
0945デフォルトの名無しさんNGNG
有名なオープンソースのコードをいくつかチェックしたけど
(定数==変数)←こんな書き方してるのはなかったな。
0946デフォルトの名無しさんNGNG
俺は定数を左に書くクセをつけようと思ってたけど、
==を体が覚えるほうが先だった。
結局、==のつもりで=って書いたバグに悩まされ
たのは、2回だけだった。
そんな俺が最初に使ったのはLattice C 2.0
N88-BASIC+アセンブラからの移行組。

(定数==変数)は、バカなコーディング規約だ、に1票。
0947デフォルトの名無しさんNGNG
>>947
一票
0948デフォルトの名無しさんNGNG
>>946
一票。
小手先のほとんど意味のないテクニックに走って、
コードの読みやすさを犠牲にすることはない。
0949デフォルトの名無しさんNGNG
>>948
== の左に定数を置くのも、たぶん「慣れれば違和感がない」と思う。
でも現実問題として、

1. そうなってないソースコードが大半で
2. かつ、違和感を感じる人間も多く
3. 現実問題として、別の解決方法で十分

って状況だと、デメリットの方が大きいよな。
0950デフォルトの名無しさんNGNG
> 定数をうっかり右に置いて、
それじゃ演算子うっかり書き間違うのと危険に大差ない。
>>946に一票だな。コンパイラが強制しないものを
コーディング規約で強制するのはバカ。
0951デフォルトの名無しさんNGNG
>>950
946 には一票投じておくが、

> コンパイラが強制しないものを
> コーディング規約で強制するのはバカ。

コーディング規約は、そもそもコンパイラが強制しないものをルール化したも
のと思われ。たとえば変数名だと、コンパイラは

 a, b, c, d, e, ..., aa, ab, ..

でも文句を言わんが、そんなソースをメンテナンスするのは嫌だろ。
(揚げ足取り気味ですまん)
0952デフォルトの名無しさんNGNG
946に2票

>コーディング規約は、そもそもコンパイラが強制しないものをルール化したもの
に5票

C/C++で(定数==変数)としている人に逆にしろと強制はしないと思うが強制される
(コーディング規約にされる)のは断固拒否します。


0953デフォルトの名無しさんNGNG
多数決で言えば(定数==変数)こういう書き方をしてるのはごく少数だな。
スキルの高い人の間では。
0954デフォルトの名無しさんNGNG
(´д`;;)
0955選管委員NGNG
>>952
おいおい、一人一票じゃないと困るよ!
0956930NGNG
定数は右、に0.8票。
定数は左、に0.2票。

>>946はなんかバカっぽいので票は入れん。
0957デフォルトの名無しさんNGNG
Lattice C 2.0が意味するところがわからないのか?
>>946は1週間だけCをさわたのかもしれないけど(w
0958デフォルトの名無しさんNGNG
Lattice C って何?
0959デフォルトの名無しさんNGNG
>>958
Visual C++の前身のMicrosoft Cの初期のバージョンのOEM元、つまりは
DOSで初期によく使われてたC言語処理系
0960デフォルトの名無しさんNGNG
きゃぁ、漏れの流儀が否定されつつある・・・。

といっても BASIC 育ちで Java 経由の C++ 使いなので
C と C++ 以外では 変数 == 定数 って書くし、
何故か NULL 以外だとうっかり普段の癖が出るんだけど。
( NULL == xxx の時だけは絶対忘れないのは何故だろう?)

やっぱり直感的なのは 変数 == 定数だよね。
0961930NGNG
if( 946==lattice C User
&& 946==2ちゃんねらー)
{
  946 = 厨房オヤヂ;
}
0962デフォルトの名無しさんNGNG
(´-`).o○(やっぱり、タダの煽り厨だったか、ヤレヤレ…)
0963デフォルトの名無しさんNGNG
(しかも、定数は左って言ってるのに、>>961は946に代入してるよ…)
0964デフォルトの名無しさんNGNG
定数==変数
これをすすめる人って、なぜか「初心者向け掲示板」みたいな
レベルの低いコミュニティーにしか現れないよな。
0965デフォルトの名無しさんNGNG
>>964
CODE COMPLETE (だったか?) あたりでも勧めてたから、そうとも言い
切れん。
0966デフォルトの名無しさんNGNG
切羽詰った状況で使い捨て糞コードとわかっている状況だとするなら、
安全のために左側に定数を書くだろうなあ。
0967デフォルトの名無しさんNGNG
定数==変数

の利点はわからないこともないが、感覚的に不自然で読みにくい。
なれれば平気というかもしれないが、無理にそんなことに慣れることに労力を払うほどのメリットを感じない。
0968デフォルトの名無しさんNGNG
>>965
何ページで?
CODE COMPLETE は 変数==定数 のスタイルじゃん。

三田某とか評判の悪いやつが定数==変数進めてたのって知ってるけど。
0969デフォルトの名無しさんNGNG
>>968
そのスタイルは、日本だと三田典玄がCマガで
「プロならこう書く」と言ってからよく言われるように
なったような気がするなぁ。
Cマガもいいけど、ほかの本も読んでほしいよ。
0970デフォルトの名無しさんNGNG
定数==変数の利点があるのはC/C++だけ・・・だよね。
0971デフォルトの名無しさんNGNG
>>970
利点といってもほとんど意味ないじゃん。
0972デフォルトの名無しさんNGNG
ガイシュツだけどコンパイラの警告レベルを上げてたら
対処できるので、不要<定数==変数
0973デフォルトの名無しさんNGNG
そういえば、lintで検出できないんだっけ?
俺しばらくつかってないから知らないんだけど。
0974965NGNG
>>968
確認してみたが CODE COMPLETE じゃなくて「Windows プログラマのための
デバッグテクニック 徹底解説」だった。著者は NuMega 社で BoundsChecker
や SoftICE の開発に関わってたそうだから、デバッグのプロだよね。

(俺個人は 変数 == 定数 だけど)
0975930NGNG
>>963
スレ読んでますか。
定数左を否定してないだけで、自分はそうしてると言った憶えない。
あえて反論述べてるワケだから煽り中であることは否定せんけど。

# 定数 == 関数(のreturn値) はたまに使う。
0976デフォルトの名無しさんNGNG
#define EQUAL(a,b) ((a)==(b))
ってすれば万事解決だろ。
0977デフォルトの名無しさんNGNG
バカな議論だ
0978デフォルトの名無しさんNGNG
>>930
自分の書いたの読んでますか?

0979デフォルトの名無しさんNGNG
「定数を左に書け」っていう「コーディング規約」の是非じゃなかったのか??
0980デフォルトの名無しさんNGNG
#define eq ==
#define ne !=
#define le <=
#define lt <
#define ge >=
#define gt >


・・・じゃダメ?






というのは冗談だけど、「定数==変数」は読みづらい。
変数同士でも被比較側になるべき値が右辺に来ると読みづらいし。
0981デフォルトの名無しさんNGNG
いつまで愚問を繰り返すんだ!
何年かマトモにやっときゃ自然に「思考の流れに沿ってコード書く」になるはずだが...
# >>907より陰毛。
0982デフォルトの名無しさんNGNG
>>980
http://www-ccs.ucsd.edu/c/iso646.html
0983棄教者 ◆witdLTi2 NGNG
>>980
神またはぼくの同志
0984デフォルトの名無しさんNGNG
マクロを定義してもそのマクロをうっかり使い忘れる危険はなくせないから
言語仕様で強制できないと意味なし
0985デフォルトの名無しさんNGNG
>>984
コーディング規約は、処理系によって強制されないお約束をまとめた
ものです。>>980 は C の

 記号を多用して、可読性をあげる
 (慣れるまでは暗号に見えるが、ある程度慣れれば、さくさく読める)

というメリットを思い切り損なうから、俺は嫌だけど。
レス数が950を超えています。1000を超えると書き込みができなくなります。