コーディングスタイルにこだわるスレat TECH
コーディングスタイルにこだわるスレ - 暇つぶし2ch2:デフォルトの名無しさん
07/10/28 16:03:26
余裕の2get


3:デフォルトの名無しさん
07/10/28 16:03:38
インデント禁止

4:デフォルトの名無しさん
07/10/28 16:11:07
改行禁止


5:デフォルトの名無しさん
07/10/28 16:21:22
()禁止

6:デフォルトの名無しさん
07/10/28 16:30:23
if文の比較では定数は左に置くよな、常識的に考えて。

if(0==a){
  処理
}

みたいに

7:デフォルトの名無しさん
07/10/28 16:32:04
if文なんて使ってるやつはばかです

8:デフォルトの名無しさん
07/10/28 16:35:08
include禁止


9:デフォルトの名無しさん
07/10/28 16:37:07
>>6
スペース入れろよ。

10:デフォルトの名無しさん
07/10/28 16:39:10
>>6
詳細は
スレリンク(tech板)l50
こっちを参照で。


11:デフォルトの名無しさん
07/10/28 16:39:35
必死だなw

12:デフォルトの名無しさん
07/10/28 16:59:53
>>9
スペース禁止


13:デフォルトの名無しさん
07/10/28 17:01:05
ガッ禁止


ぬるぽ

14:デフォルトの名無しさん
07/10/28 17:04:46
WinMainっていうのは定型だし、無視される引数もありいちいち書くのは面倒臭い
というわけで

#define WINDOWS_APPLICATION_ENTRYPOINT(hinstance,lpcmdline,ncmdshow) \
int WINAPI _tWinMain(HINSTANCE hhnstance, HINSTANCE, LPTSTR lpcmdline, int ncmdshow)

というようなマクロを使って
WINDOWS_APPLICATION_ENTRYPOINT(hinst,lpcmdline,ncmdshow)
{
  return 0;
}
と書くのはどうでしょうか?
コード内部で参照するパラメータ名は使用する側が自由に決めることができます

15:デフォルトの名無しさん
07/10/28 17:13:55
define禁止


16:デフォルトの名無しさん
07/10/28 17:26:27
NULL禁止

17:デフォルトの名無しさん
07/10/28 17:27:51
URLリンク(www.google.co.jp)

コーディングスタイルに意味があるとしたらそれはプロジェクト内で統一することのみで
どう決めるかはまったく問題ではない。
もちろん一定以上の知的水準と経験を持った人間が決めればの話だが。

18:デフォルトの名無しさん
07/10/28 17:33:54
goto奨励


19:デフォルトの名無しさん
07/10/28 18:00:20
>>17
> コーディングスタイルに意味があるとしたらそれはプロジェクト内で統一することのみで

誤読してるかもしれないが、コーディングスタイルの意義として、プロジェクト内でのスタイルの統一しかない
ということであれば、それに全く同意できない。

まず、可読性ありき。

20:デフォルトの名無しさん
07/10/28 18:44:05
もしコーディングスタイルを決める意義が「統一することのみ」だったら、
「一定以上の知的水準と経験を持った人間」が決める必要さえないしな。

21:デフォルトの名無しさん
07/10/28 18:53:14
それじゃあ、変数名いってみようか。

ハンガリアン記法はクソ。

変数定義の箇所に型情報は記述されており、
適切に実装されたスコープ内では充分に目に付く。
型情報をたどれないほどに変数定義から離れた変数は、
同時に関数などのクソ設計を匂わせており、クソ。

22:デフォルトの名無しさん
07/10/28 18:57:04
>>21
URLリンク(local.joelonsoftware.com)

23:デフォルトの名無しさん
07/10/28 19:04:11
> アプリケーションハンガリアン
> システムハンガリアン

シモニイすまんかった(´;ω;`)

24:デフォルトの名無しさん
07/10/28 19:20:22
>>22
またMSがいらんことを・・・

25:デフォルトの名無しさん
07/10/28 19:27:55
1、2、ハンガリアン!
2、2、ハンガリアン!

26:デフォルトの名無しさん
07/10/28 19:31:21
>>22
それ読んだとき、めっちゃバグりそうな書き方だとおもったな。
内部で処理するときは、HTMLエンコードしないで処理して、表示のときに一括して、エンコーディングしたほうが
いいと思ったよ。
unsafeとsafeを混在させて処理してたら、いくらネーミングで工夫してもミスるだろって。

27:デフォルトの名無しさん
07/10/28 19:33:32
>>25 どぅわ~

28:デフォルトの名無しさん
07/10/28 20:22:40
joelなんか糞派登場

29:デフォルトの名無しさん
07/10/29 02:29:59
関数名、変数名は6文字以内。


30:デフォルトの名無しさん
07/10/29 13:10:06
//char a, *b, *const c, const *d;
char a, *b, *const c;char const *d;

char const *dを続けて宣言できないのが悔しい。

31:デフォルトの名無しさん
07/10/29 19:49:30
考えるときはマンダム
立った時はジョジョ立ち

32:デフォルトの名無しさん
07/10/29 20:24:41
牛乳は瓶の奴しか飲んではいけない。
飲むときは腰に手を当てること。


33:デフォルトの名無しさん
07/10/29 21:59:31
>>29
俺が就職したばかりの頃は、
リンカの制限で関数名は4文字までだった。
プリプロセッサは16文字まで対応してたから、
マクロ使ったりして工夫してたなぁ。

今考えると冗談みたいな話だ。

34:デフォルトの名無しさん
07/10/29 22:11:03
最初の文字がi, j, k, l, m, n の変数は整数型。他は実数。

35:デフォルトの名無しさん
07/10/29 22:51:24
>>34
文字列、真偽値は…?
つーかクラスオブジェクトは…?

36:sage
07/10/30 00:34:16
hsqscsName (html-safe, sql-safe, command-line-safe)
hsqscusName (html-safe, sql-safe, command-line-unsafe)
hsquscsName (html-safe, sql-unsafe, command-line-safe)
:

37:36
07/10/30 00:37:04
orz

38:デフォルトの名無しさん
07/10/30 00:41:26
今さらだけど>>6はどうかと思うな
見てから理解するのに時間がかかる

実際にあの方式使ってる人どのくらいいる?

39:デフォルトの名無しさん
07/10/30 00:43:46
>>38
コードサーチでオプソをググったら腐るほどいた

40:デフォルトの名無しさん
07/10/30 03:27:07
ヘアースタイルは7:3厳守。


41:デフォルトの名無しさん
07/10/30 05:24:12
エラーコードを解析する時は三白眼、効果音は
 ┣” ┣” ┣” ┣” ┣” ┣”

42:デフォルトの名無しさん
07/10/30 09:17:13
>>38
999:1くらいだと思う。もちろん1の方。

43:デフォルトの名無しさん
07/10/30 21:37:51
>>38
俺はデキる奴だぜー、と思い込んでるけど実際はそうでもない人が使いそう

44:デフォルトの名無しさん
07/10/31 01:39:14
< とか > とかの向きを揃える目的なら使っちゃだめか?

45:デフォルトの名無しさん
07/10/31 02:55:54
定数を左に置くのは、次の場合だけだな。
if (0 < x && x < 100)
本当はif (0 < x < 100)と書きたいけど、書けないのでその代用としてだ。


46:デフォルトの名無しさん
07/10/31 23:03:42
returnやsizeofの後をカッコでくくるかどうかって話はもう出た?

47:デフォルトの名無しさん
07/10/31 23:06:40
return の後の括弧は無し
sizeof の後の括弧は有り

48:デフォルトの名無しさん
07/10/31 23:06:52 BE:1262592768-2BP(125)
return はくくらないのにsizeofはくくりたくなるんだよな。。

49:デフォルトの名無しさん
07/10/31 23:08:24
習慣っつーか慣用句みたいな感じ

50:デフォルトの名無しさん
07/10/31 23:09:44
括弧つけるべきか否か迷う時間が勿体無いので、
なんでも括弧つけることにしてる。

51:デフォルトの名無しさん
07/10/31 23:45:58
return 0; ならいいとしても、return i * 2; みたいになると、括弧で括りたくなる。

52:デフォルトの名無しさん
07/10/31 23:52:18
昔、会社のコーディング規約決める時に、returnの後の括弧は無しじゃね?
って言っても、みんな、returnの後は括弧付けるって言って引かないから、
もう、どっちでも良い事にしちゃった。



53:デフォルトの名無しさん
07/11/01 00:30:32
実際どっちでもいいし

54:デフォルトの名無しさん
07/11/01 00:33:31
>52
燃料投下。
URLリンク(www.st.rim.or.jp)

55:デフォルトの名無しさん
07/11/01 07:23:14
やっぱりキチガイは一人だけだったか。
奴が来ないとこんなに静か。

56:デフォルトの名無しさん
07/11/01 08:35:41
交差点で100円ひろおったーよー

57:デフォルトの名無しさん
07/11/01 21:05:04
ちびまるこちゃんだな。


58:デフォルトの名無しさん
07/12/20 03:21:44
なんでもかんでもみんな マスゲームを踊ってるよ
ピョンヤンの丘にはボカッと 巨大な銅像献上
いつだって 忘れない 金日成偉い人 そんなの常識
パッパパラリラ
ピーヒャラピーヒャラ おなかが減ったよー

59:デフォルトの名無しさん
08/01/21 02:38:32
>今さらだけど>>6はどうかと思うな
>見てから理解するのに時間がかかる
今更だが、

1. if ( hogehogeflag == 0 )
2. if ( hogeHoge( parameter_list ) > 0 )
3. while( ( c = fgetc( stdin ) ) != EOF )

とかよりは

1. if ( 0 == hogehogeflag )
2. if ( 0 < hogeHoge( parameter_list ) )
3. while( EOF != ( c = fgetc( stdin ) ) )

の方が大事なことが先に書いてあって分かりやすくて読みやすくね?
特に3.の場合なんか前者だと条件比較の意味を理解するのに最初fgetc()から←方向にcを読んで次に→方向に読み直してEOFを探さなきゃならんし。
それとも俺がそういうコミニティで育ったからか?

60:デフォルトの名無しさん
08/01/21 03:46:07
私は三つとも上のほうが読みやすいと感じる。
数字の 0 よりも、フラグとか関数呼び出しのが「大事なこと」だと思う。
コミュニティ次第なんだろうね。

ただ私なら、 3 は

for (;;) {
c = fgetc(stdin);
if ( c == EOF ) break;
...
}

みたいに書く。

61:デフォルトの名無しさん
08/01/21 04:45:23
出力(条件比較や返値)より入力(関数呼出や引数)が「大事なこと」だと思えば上のほう、
if ( hogeHoge( parameter_list ) ~
入力(関数呼出や引数)より出力(条件比較や返値)が「大事なこと」だと思えば下のほう、
if ( 0 < hogeHoge( ~
ってところではないかな。

定数と一時変数を使えば
err = hogeHoge( parameter_list );
if ( err == SUCCESS )
2 は 1 の問題に出来るな。

ただし 3 はイディオムなので、私でも>>60のように分解はしないな。

62:デフォルトの名無しさん
08/01/21 05:06:08
ん、制御とデータで分けた方が適切なのかな。

"hogehogeflag が", "hogeHoge( parameter_list ) が", "while 内で c に fgetc( stdin ) を代入" のように データ中心に考えれば上のほう、
1. if ( hogeh...
2. if ( hogeHoge( para...
3. while( ( c = fgetc( stdin )...

"0 の場合に", "返却値が 0 より大きければ", "while は c が EOF になるまで" と制御中心に考えれば下のほう、
1. if ( 0 == ...
2. if ( 0 < hogeHoge( ...
3. while( EOF != ( c = fgetc( ...

になるね。

63:デフォルトの名無しさん
08/01/21 08:38:08
定数左に置く人はfor文でもやっぱり左に置くの?
for (i = 0; N > i; ++i) みたいな感じに

64:デフォルトの名無しさん
08/01/21 09:58:03
>for (i = 0; N > i; ++i) みたいな感じに
そりゃ不等号の向きによるんでね。if文でも同じやろ。
for( i = 0; i < N; ++i )
for( i = N; 0 < i; --i )

定数右に書く人は"N より大きい"を if ( i > N ) って書くん?
気持ち悪くね?

65:デフォルトの名無しさん
08/01/21 10:11:40
それもそうだ。

66:デフォルトの名無しさん
08/01/21 10:38:05
>>64
不等号の向きが数直線だと思い込む方がどうかしている。
つまり0より大きいと0より小さいがならぶときに、
if (var > 0) ...;
if (var < 0) ...;
と書くか
if (0 < var) ...;
if (var < 0) ...;
と書くかの違いなわけだが。

例えば、このvarが関数呼び出しになっても後者のように書くということなのだろ?
それが気持ち悪いと思えないなら、私とは相容れない種類の人間だと言うことだ。

67:デフォルトの名無しさん
08/01/21 10:46:16
>>64
私はそれぞれ

for ( i = 0; i < N; i++ )
for ( i = N; i > 0; i-- )
if ( i > N )

って書く。
逆は気持ち悪いって感じる。

「 i が N より大きい」をそのまま書いたら i > N でしょ。
N < i は「 N が i より小さい」。

68:デフォルトの名無しさん
08/01/21 10:56:56
私は基本的には定数右派だが、不等号については後者かな。
やはり var < 0 ってのは直感的ではないし見ていて気持ちが悪いって感じる。

69:デフォルトの名無しさん
08/01/21 10:59:26
>>68
おお、これは新しい意見だ。
ついに、var < 0 が否定されたぞ。

70:デフォルトの名無しさん
08/01/21 10:59:59
>>68訂正
× var < 0
○ var > 0

71:デフォルトの名無しさん
08/01/21 11:04:38
私は < だろうが > だろうが関数呼び出し相手なら
if (0 <= func(
if (0 == func(
if (0 >= func(
だなぁ。


72:デフォルトの名無しさん
08/01/21 11:07:39
>>70
だろうな。
さすがに var < 0 を 0 > var って書く人はいないか。
いないよな?


73:デフォルトの名無しさん
08/01/21 11:10:36
よし纏めよう。
・定数右派
基本的に、常に定数が右。不等号の向きなんて関係ねぇ。
・定数左派
基本的に、常に定数が左。不等号の向きなんて関係ねぇ。
・不等号は数直線派
基本的に、不等号は常に左を小さく。定数の位置なんて関係ねぇ。

ダメだ、>71も恐らく例外があるのだろうし分類しきれない……

74:63
08/01/21 11:22:37
>>64-72
回答ありがとう

なるほどねー
1. 数直線に合わせる派
2.1. 評価対象を常に左に置く派
2.2. 評価対象を常に右に置く派
がいるみたいだね

…これ、どっかのMLの過去ログにもありそうだな

75:デフォルトの名無しさん
08/01/21 11:42:38
基本的に短い物が左。
そして変数同士の不等号は数直線派。
変数か定数かなんて関係ねぇ。

な俺は結果的に
即値 < 変数・定数 < 式 < 関数
な順番になるな。

定数左ってよりは即値左か?
画面が狭かった頃の規約の名残だな。

76:デフォルトの名無しさん
08/01/21 13:24:24
こんなものは理屈じゃなくて、数学の記法では普通 0=x でなく x=0 と書くというのが一番大きい気がするけどな
不等号は3項関係なら数直線だが2項関係ならやはり変数を左辺に書くのが数学でも一般的だと思う

77:デフォルトの名無しさん
08/01/21 13:59:49
その理屈だと関数が絡んだときにおかしくないか?
数学だとy=f(x)の方が一般的でないか?


78:デフォルトの名無しさん
08/01/21 14:12:06
>数学だとy=f(x)の方が一般的でないか?

その記法は定数相手には使わないような。
確かに y については y = f( x ) 的な書き方をするけど、f(x) については f(x) = a * x + y 的な書き方もするはず。
だからまあプログラミングの記号と数学の記号とでは微妙に意味が違うので全てを同じルールでは扱えないが、それでも変数と定数に限れば 0=x ではなく x=0 だろう。
これはもう理屈とか抜きに。

79:デフォルトの名無しさん
08/01/21 14:27:50
>>78
数学に限って言えば、
>0=x ではなく x=0 だろう
これは状況によりけりだな。まぁ、
>プログラミングの記号と数学の記号とでは微妙に意味が違うので全てを同じルールでは扱えないが、
は正しいと思うので、数学のルールは適用できないんだけどね。

80:デフォルトの名無しさん
08/01/21 16:34:55
&&とか||が絡むなら不等号の向きをそろえるけど
それ以外なら気にしないな。

81:デフォルトの名無しさん
08/01/21 16:36:21
またこの話か。去年さんざん「祭り」したのに。

もう秋田。

82:デフォルトの名無しさん
08/01/21 18:25:42
わざわざ来なくてもいいのに(笑)

83:デフォルトの名無しさん
08/01/21 18:34:21
基本的には数直線に合わせるけど、場合によっては変えるね。
言葉や数式で表現するとどうなるかを頭に置きながら
理解しやすい方を選択する。

84:デフォルトの名無しさん
08/01/21 20:01:32
Cプログラマの為に、ポイントをまとめたドキュメントを販売しています。
プロのプログラマでもあまりにレベルが低い人が多すぎます。
そんな人に限って、自分のレベルの低さを自覚していない、、、
 本人は構わないかもしれませんが、その下についた新人プログラマは
たまったものではありません。(私が経験しました。)
 今になって分かりました。
彼らもまた、理解できていなかったのです。
 プログラミング言語の一番の習得の近道はきちんと理解している人にアドバイスをもらうこと。です。
私のC言語に取り組んだ7年間をすべてぶつけたつもりでテキストを作りました。
 私の会社の後輩からは、どんなテキストよりもわかりやすかった!や、
今まで教えてくれていた先輩や、テキストたちが、ちゃんと理解できていないことがわかりました。
と、嬉しいコメントをたくさんもらいました。
そしてなにより、彼らの社内での評価がとても高いということが、私の誇りです。
 興味がある方はどうか、下のサイトをみてみてください。
URLリンク(mori.eco.to)

85:デフォルトの名無しさん
08/01/21 20:04:01
ウゼェ

86:デフォルトの名無しさん
08/01/21 21:33:16
みるまでもなくネタだろ

87:デフォルトの名無しさん
08/08/02 01:43:31
最近、カプセル化は要らん子な気がしてきた。
真面目に適用したところで可読性や保守性は上がるどころか下がることの方が多いし、
getter/setterを書くより、コメントやドキュメントをしっかり書いた方が良い気がする。

88:デフォルトの名無しさん
08/08/02 02:58:06
getter/setter が無いと、ついつい直接書き換えして
後の挙動が掴めなくなってしまう俺みたいな屑も居るので書いてくれて良い

89:デフォルトの名無しさん
08/08/02 09:35:09
つーか、そもそも下駄雪駄がある時点で間違いだろ。ちゃんと意味を考えたI/Fにするべきだ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch