1read 100read
2011年10月1期プログラムコーディングスタイルにこだわるスレ
TOP カテ一覧 スレ一覧 削除依頼 ▼
・ 次のスレ
【SAP】ABAP【BASIS】 【独学】一人で勉強する奴らのスレ【自習】 こんなコンパイラは嫌だ!7行目 制御系なら俺に聞いてもいいぜ(10)
コーディングスタイルにこだわるスレ
1 :07/10/28 〜 最終レス :11/11/22 コーディングスタイルについて熱く語れ
2 : 余裕の2get
3 : インデント禁止
4 : 改行禁止
5 : ()禁止
6 : if文の比較では定数は左に置くよな、常識的に考えて。 if(0==a){ 処理 } みたいに
7 : if文なんて使ってるやつはばかです
8 : include禁止
9 : >>6 スペース入れろよ。
10 : >>6 詳細は http://pc11.2ch.net/test/read.cgi/tech/1193250955/l50 こっちを参照で。
11 : 必死だなw
12 : >>9 スペース禁止
13 : ガッ禁止 ぬるぽ
14 : 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 : define禁止
16 : NULL禁止
17 : http://www.google.co.jp/search?q=%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP229JP231 コーディングスタイルに意味があるとしたらそれはプロジェクト内で統一することのみで どう決めるかはまったく問題ではない。 もちろん一定以上の知的水準と経験を持った人間が決めればの話だが。
18 : goto奨励
19 : >>17 > コーディングスタイルに意味があるとしたらそれはプロジェクト内で統一することのみで 誤読してるかもしれないが、コーディングスタイルの意義として、プロジェクト内でのスタイルの統一しかない ということであれば、それに全く同意できない。 まず、可読性ありき。
20 : もしコーディングスタイルを決める意義が「統一することのみ」だったら、 「一定以上の知的水準と経験を持った人間」が決める必要さえないしな。
21 : それじゃあ、変数名いってみようか。 ハンガリアン記法はクソ。 変数定義の箇所に型情報は記述されており、 適切に実装されたスコープ内では充分に目に付く。 型情報をたどれないほどに変数定義から離れた変数は、 同時に関数などのクソ設計を匂わせており、クソ。
22 : >>21 ttp://local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B
23 : > アプリケーションハンガリアン > システムハンガリアン シモニイすまんかった(´;ω;`)
24 : >>22 またMSがいらんことを・・・
25 : 1、2、ハンガリアン! 2、2、ハンガリアン!
26 : >>22 それ読んだとき、めっちゃバグりそうな書き方だとおもったな。 内部で処理するときは、HTMLエンコードしないで処理して、表示のときに一括して、エンコーディングしたほうが いいと思ったよ。 unsafeとsafeを混在させて処理してたら、いくらネーミングで工夫してもミスるだろって。
27 : >>25 どぅわ〜
28 : joelなんか糞派登場
29 : 関数名、変数名は6文字以内。
30 : //char a, *b, *const c, const *d; char a, *b, *const c;char const *d; char const *dを続けて宣言できないのが悔しい。
31 : 考えるときはマンダム 立った時はジョジョ立ち
32 : 牛は瓶の奴しか飲んではいけない。 飲むときは腰に手を当てること。
33 : >>29 俺が就職したばかりの頃は、 リンカの制限で関数名は4文字までだった。 プリプロセッサは16文字まで対応してたから、 マクロ使ったりして工夫してたなぁ。 今考えると冗談みたいな話だ。
34 : 最初の文字がi, j, k, l, m, n の変数は整数型。他は実数。
35 : >>34 文字列、真偽値は…? つーかクラスオブジェクトは…?
36 : 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 : orz
38 : 今さらだけど>>6 はどうかと思うな 見てから理解するのに時間がかかる 実際にあの方式使ってる人どのくらいいる?
39 : >>38 コードサーチでオプソをググったら腐るほどいた
40 : ヘアースタイルは7:3厳守。
41 : エラーコードを解析する時は三白眼、効果音は ┣” ┣” ┣” ┣” ┣” ┣”
42 : >>38 999:1くらいだと思う。もちろん1の方。
43 : >>38 俺はデキる奴だぜー、と思い込んでるけど実際はそうでもない人が使いそう
44 : < とか > とかの向きを揃える目的なら使っちゃだめか?
45 : 定数を左に置くのは、次の場合だけだな。 if (0 < x && x < 100) 本当はif (0 < x < 100)と書きたいけど、書けないのでその代用としてだ。
46 : returnやsizeofの後をカッコでくくるかどうかって話はもう出た?
47 : return の後の括弧は無し sizeof の後の括弧は有り
48 : return はくくらないのにsizeofはくくりたくなるんだよな。。
49 : 習慣っつーか慣用句みたいな感じ
50 : 括弧つけるべきか否か迷う時間が勿体無いので、 なんでも括弧つけることにしてる。
51 : return 0; ならいいとしても、return i * 2; みたいになると、括弧で括りたくなる。
52 : 昔、会社のコーディング規約決める時に、returnの後の括弧は無しじゃね? って言っても、みんな、returnの後は括弧付けるって言って引かないから、 もう、どっちでも良い事にしちゃった。
53 : 実際どっちでもいいし
54 : >52 燃料投下。 ttp://www.st.rim.or.jp/~phinloda/cqa/cqa6.html#q20
55 : やっぱりキチガイは一人だけだったか。 奴が来ないとこんなに静か。
56 : 交差点で100円ひろおったーよー
57 : ちびまるこちゃんだな。
58 : なんでもかんでもみんな マスゲームを踊ってるよ ピョンヤンの丘にはボカッと 巨大な銅像献上 いつだって 忘れない 金日成偉い人 そんなの常識 パッパパラリラ ピーヒャラピーヒャラ おなかが減ったよー
59 : >今さらだけど>>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 : 私は三つとも上のほうが読みやすいと感じる。 数字の 0 よりも、フラグとか関数呼び出しのが「大事なこと」だと思う。 コミュニティ次第なんだろうね。 ただ私なら、 3 は for (;;) { c = fgetc(stdin); if ( c == EOF ) break; ... } みたいに書く。
61 : 出力(条件比較や返値)より入力(関数呼出や引数)が「大事なこと」だと思えば上のほう、 if ( hogeHoge( parameter_list ) 〜 入力(関数呼出や引数)より出力(条件比較や返値)が「大事なこと」だと思えば下のほう、 if ( 0 < hogeHoge( 〜 ってところではないかな。 定数と一時変数を使えば err = hogeHoge( parameter_list ); if ( err == SUCCESS ) 2 は 1 の問題に出来るな。 ただし 3 はイディオムなので、私でも>>60 のように分解はしないな。
62 : ん、制御とデータで分けた方が適切なのかな。 "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 : 定数左に置く人はfor文でもやっぱり左に置くの? for (i = 0; N > i; ++i) みたいな感じに
64 : >for (i = 0; N > i; ++i) みたいな感じに そりゃ不等号の向きによるんでね。if文でも同じやろ。 for( i = 0; i < N; ++i ) for( i = N; 0 < i; --i ) 定数右に書く人は"N より大きい"を if ( i > N ) って書くん? 気持ち悪くね?
65 : それもそうだ。
66 : >>64 不等号の向きが数直線だと思い込む方がどうかしている。 つまり0より大きいと0より小さいがならぶときに、 if (var > 0) ...; if (var < 0) ...; と書くか if (0 < var) ...; if (var < 0) ...; と書くかの違いなわけだが。 例えば、このvarが関数呼び出しになっても後者のように書くということなのだろ? それが気持ち悪いと思えないなら、私とは相容れない種類の人間だと言うことだ。
67 : >>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 : 私は基本的には定数右派だが、不等号については後者かな。 やはり var < 0 ってのは直感的ではないし見ていて気持ちが悪いって感じる。
69 : >>68 おお、これは新しい意見だ。 ついに、var < 0 が否定されたぞ。
70 : >>68 訂正 × var < 0 ○ var > 0
71 : 私は < だろうが > だろうが関数呼び出し相手なら if (0 <= func( if (0 == func( if (0 >= func( だなぁ。
72 : >>70 だろうな。 さすがに var < 0 を 0 > var って書く人はいないか。 いないよな?
73 : よし纏めよう。 ・定数右派 基本的に、常に定数が右。不等号の向きなんて関係ねぇ。 ・定数左派 基本的に、常に定数が左。不等号の向きなんて関係ねぇ。 ・不等号は数直線派 基本的に、不等号は常に左を小さく。定数の位置なんて関係ねぇ。 ダメだ、>71 も恐らく例外があるのだろうし分類しきれない……
74 : >>64-72 回答ありがとう なるほどねー 1. 数直線に合わせる派 2.1. 評価対象を常に左に置く派 2.2. 評価対象を常に右に置く派 がいるみたいだね …これ、どっかのMLの過去ログにもありそうだな
75 : 基本的に短い物が左。 そして変数同士の不等号は数直線派。 変数か定数かなんて関係ねぇ。 な俺は結果的に 即値 < 変数・定数 < 式 < 関数 な順番になるな。 定数左ってよりは即値左か? 画面が狭かった頃の規約の名残だな。
76 : こんなものは理屈じゃなくて、数学の記法では普通 0=x でなく x=0 と書くというのが一番大きい気がするけどな 不等号は3項関係なら数直線だが2項関係ならやはり変数を左辺に書くのが数学でも一般的だと思う
77 : その理屈だと関数が絡んだときにおかしくないか? 数学だとy=f(x)の方が一般的でないか?
78 : >数学だとy=f(x)の方が一般的でないか? その記法は定数相手には使わないような。 確かに y については y = f( x ) 的な書き方をするけど、f(x) については f(x) = a * x + y 的な書き方もするはず。 だからまあプログラミングの記号と数学の記号とでは微妙に意味が違うので全てを同じルールでは扱えないが、それでも変数と定数に限れば 0=x ではなく x=0 だろう。 これはもう理屈とか抜きに。
79 : >>78 数学に限って言えば、 >0=x ではなく x=0 だろう これは状況によりけりだな。まぁ、 >プログラミングの記号と数学の記号とでは微妙に意味が違うので全てを同じルールでは扱えないが、 は正しいと思うので、数学のルールは適用できないんだけどね。
80 : &&とか||が絡むなら不等号の向きをそろえるけど それ以外なら気にしないな。
81 : またこの話か。去年さんざん「祭り」したのに。 もう秋田。
82 : わざわざ来なくてもいいのに(笑)
83 : 基本的には数直線に合わせるけど、場合によっては変えるね。 言葉や数式で表現するとどうなるかを頭に置きながら 理解しやすい方を選択する。
84 : Cプログラマの為に、ポイントをまとめたドキュメントを販売しています。 プロのプログラマでもあまりにレベルが低い人が多すぎます。 そんな人に限って、自分のレベルの低さを自覚していない、、、 本人は構わないかもしれませんが、その下についた新人プログラマは たまったものではありません。(私が経験しました。) 今になって分かりました。 彼らもまた、理解できていなかったのです。 プログラミング言語の一番の習得の近道はきちんと理解している人にアドバイスをもらうこと。です。 私のC言語に取り組んだ7年間をすべてぶつけたつもりでテキストを作りました。 私の会社の後輩からは、どんなテキストよりもわかりやすかった!や、 今まで教えてくれていた先輩や、テキストたちが、ちゃんと理解できていないことがわかりました。 と、嬉しいコメントをたくさんもらいました。 そしてなにより、彼らの社内での評価がとても高いということが、私の誇りです。 興味がある方はどうか、下のサイトをみてみてください。 http://mori.eco.to/
85 : ウゼェ
86 : みるまでもなくネタだろ
87 : 最近、カプセル化は要らん子な気がしてきた。 真面目に適用したところで可読性や保守性は上がるどころか下がることの方が多いし、 getter/setterを書くより、コメントやドキュメントをしっかり書いた方が良い気がする。
88 : getter/setter が無いと、ついつい直接書き換えして 後の挙動が掴めなくなってしまう俺みたいな屑も居るので書いてくれて良い
89 : つーか、そもそも下駄雪駄がある時点で間違いだろ。ちゃんと意味を考えたI/Fにするべきだ。
90 : >>87 getter/setterがある時点でカプセル化に失敗してるよ
91 : getter/setterだけでも、代入と取得のみに操作を限定できる利点がある。 メンバのアドレスを取られる心配がないだけでも幾らか安心感があると思うよ。
92 : ブレークポインタもかけやすいしな。 だけとgetter/setterが多くなるとカプセル化の意義が薄れてしまうのも忘れてはならないね
93 : 設計から導き出されるのが、いい getter/setter 実装から導き出されるのが、悪い getter/setter 悪い getter/setter でも、将来の変更に備えて、無いよりマシ。
94 : 基本的な値はコンストラクタで受け取るだけで、その後はgetterのみ。 どうしても後から値を変更する必要があるとか、設定値の種類が多すぎる場合のみsetterを使うかな。
95 : 無限ループは while(true){ } って書くのが一番美しいと思うんです
96 : for ("ever") { }
97 : >>95 それは意図しているのかそれともミスなのかが判断できない。 for(;;) { } このほうが意図が明確
98 : 誘導されてきました int* a; int *a; どっちのほうが見やすいですか?
99 : int*型として考えるなら前者 変数自身がポインタと考えるなら後者
100read 1read 1read 100read
TOP カテ一覧 スレ一覧 削除依頼 ▲
・ 次のスレ
【SAP】ABAP【BASIS】 【独学】一人で勉強する奴らのスレ【自習】 こんなコンパイラは嫌だ!7行目 制御系なら俺に聞いてもいいぜ(10)