[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 09/18 12:25 / Filesize : 67 KB / Number-of Response : 360
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

コーディングトラブルの約70%はif文などでの{}省略



1 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 14:02:01 ]
自分は1行しか書かないつもりでも
あとでコードを足さなければならない事態なんていくらでもやってくる。
他人がきちんと中括弧補ってくれるかどうかはわからない。

1行文だろうがなんだろうが
最初から中括弧をつけるクセをつけろ

101 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:42:43 ]
Perlの
〜if ...;
って何気に最強だな。

102 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:45:51 ]
>>99
規約を変えたければ管理する側に回ってからにしないと統率がとれなくなるだろ。
主張が通らない時点で、その権限が無いことが理解出来ないのが問題なんだよ。
自分の言っていることが正しいと思いこんで、自分勝手な行動をしているという認識がない。

103 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:53:47 ]
>>102
いや、そこんとこは誰も問題にしてないから。

104 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 02:49:26 ]
クラスの使い方覚えてホイホイ作りまくってたら
「解かりにくいわ!」って殴られた。・゚・(PД`q。)・゚・

105 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 03:34:25 ]
>101
Rubyにもあるな。俺は and 派だが。

106 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 03:44:40 ]
アホなルールもあるこたあるからね。
1ファイルにつき1関数とか、
関数に分けてはいけない(mainだけにしろ)とか、
関数名・変数名は紙ベースの台帳管理で関数はfxxxx変数はvxxxx(xxxxは数字)とか、
こういう規則はどうなんだろう。理にかなっているのかなあ。

こういうのはやめてもらいたいと思わない?

こういう底辺な現場からおさらばして10年以上になるけど、
まだこういう現場は残っているのだろうか。

まあif以下の文で複文でない場合も{}で囲むことなんてルールは、
あってもなくてもさほど害がないルールではあると思うけどもね。
境界はどの辺にあるんだろうね。


107 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 03:52:37 ]
>関数名・変数名は紙ベースの台帳管理で関数はfxxxx変数はvxxxx(xxxxは数字)とか、

これは実際に見るまでなかなか信じがたかったが、ホントにやってるとこあるのな。
漏れが見たのはJavaでの開発だった。

108 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 03:59:39 ]
>>77
QB登場以前のBASICかよ。

109 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:05:35 ]
C++/Java/C#使いのみんなに聞きたい。
自動変数のスコープを限定するためだけの{}使うよな。な。
仕事で使ったら、「この意味不明な{}は何なのか説明しる」って同僚に詰め寄られたんだが……。



110 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:38:07 ]
>109
俺も使うことはある。特にC言語や、1つのメソッドが大きくなる時は。
ただ、Javaであまり必要に感じたことは無い。
privateメソッド複数作って、処理分けちゃうことが多いかな。

111 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:39:32 ]
>>109
漏れはけっこう使う。

int n;
{
 // 一時的な変数なんかも使って n を初期化するコード
}

// n を使うコード

とか。
書いてみて思ったより長かったらそのまま別の関数にするけど。

112 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:56:00 ]
>>107
そういう職場ってそのうち慣れますか?
それともとっとと逃げ出すのが正解ですか?

113 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 05:00:10 ]
>>112
そこに骨を埋めるつもりならがんばって慣れないと。
いずれ他所へ行くつもりなら慣れちゃったら後が大変そう。

114 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 05:08:38 ]
……後者を選ぶことにします

115 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 05:55:22 ]
>>110
そうしたくなったときというのは、
そこで関数を分けるべき時だと思っているので、
ほとんどの場合は括りだして別の関数に仕立て上げちゃう。

もちろんほんのちょっとスコープを限定したいというときは、
その限りでないけど。

116 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 05:58:01 ]
>>107
それをやっているところはコボラーが仕切っていると考えてほぼ間違いないです。

あいつらオブジェクトがどうのとかいう以前に関数をわける利点とか、
もっと以前にわかりやすい名前をつけるとかスコープとかいうことを知らん。

117 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 06:34:15 ]
このスレおもすれえ

118 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 06:36:52 ]
>116
しょうがないじゃん、COBOLの仕様にはグローバル変数と
引数の無いサブルーチンしか無いんだから…

119 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 07:01:39 ]
うざい上司にはインデントで訴えかけるに限る

hoge.each do |foo, bar|
          fuga
      piyo
    hogera
   end

      piyo
hoge.to_a.each do |foo,bar|
       foo
 poi;   bar;   poi
qwe;           end



120 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 08:11:08 ]
>>94 >>108 30年以上前かららしいから、そんなところでしょう。
COBOLで IF CC EQUAL DD PERFORM YY ELSE PERFORM ZZ. の名残だと思う。
テスト、デバックがこの方がやりやすいからというのが積極的な理由。
ただしbreakする時が大変。

121 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 10:11:27 ]
www.mono-project.com/Coding_Guidelines#Where_to_put_braces

2つ目のgoodがbadだぜ

122 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:04:17 ]
Coding Guideline であって Coding Convention じゃないんだな。
それくらい大きなオープンソースプロジェクトともなると、規約にしたところで従わない奴が続出するんだろうな。

123 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:09:05 ]
厳密にやろうとするなら、コミット前にチェックして(subversionなら
pre-commitフック、CVSだとcommitinfoか?)、従ってなければコミット
させないなんてトコもありそう。



124 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:18:09 ]
そこまでして関数名はf+数字を強制とかイヤすぎるなw

125 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:31:50 ]
JavaやC++で省略する奴とは仕事しない

126 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:36:39 ]
C++は省略しても普通だよね。

127 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:38:07 ]
if(flag) break;

128 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:40:31 ]
if(x)
    /* 何らかの処理 */;

って書くとうっかりしやすいけど、

if(x) /* 何らかの処理 */;

って必ず一行に収める習慣にすれば大丈夫な気がする。

129 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:47:07 ]
if(x) 何らかの処理1; 何らかの処理2;
と書く人がでてきちゃう。



130 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:48:34 ]
そもそもブロックなしのifに一行追加して、ブロック付け忘れてハマったなんて経験がない。

131 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:51:29 ]
御意

132 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:58:06 ]
>>129
「;」で区切って一行にいくつも文を書く人にはお勧めできない。

133 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:28:01 ]
if(cond) i = f(), j = g();

自分一人の開発ならこういうこともする。
読み間違えるとかありえない。

134 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:29:32 ]
無能コーダーにぐだぐだコーディング規則を語られるのウザいから
ソースはIDEが自動整形してくれ。

135 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:45:22 ]
括弧も自動で付けてくれるコードフォーマッタある?

136 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:45:33 ]
>>130

if(cond) {
hoge();
fuga();
}

if(cond)
hoge();
にしようとした形跡のあるコードで
if(cond)
hoge();
fugafuga();
と、インデントそのままでブレースだけとられたコードではめられた事がある。
じっさいにはもうちょっと長いんだけど。


137 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:47:01 ]
if(cond) {
  hoge();
  fuga();
}

if(cond)
  hoge();
fugafuga();
にしようとしたコードで
if(cond)
  hoge();
  fugafuga();
とね(ちくせう空白つめんな)


138 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:49:17 ]
>>135
ない

139 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:52:23 ]
お前ら省略って言うけど、Cの場合本来ifの文法は
if( 条件 ) 文;
だよな?
でもこれだけじゃ機能不足で、複数の文を置きたいから{ }でブロックにするんだよな?

由来とかはどうでもいいし俺も{ }は必ずつける派だけどな?



140 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:22:20 ]
>>139
確かに。
でもなんて表現したらいいんだろ?

141 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:29:26 ]
実績ある有名なソフトでも、普通に省略してあるんで、品質には関係ない部分だとは思うけどな。


142 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:44:58 ]
>>139
惜しい

if (式) 文

だ。最後にセミコロンはいらない。



143 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:58:45 ]
>>141
そもそも品質はテストによって担保するものでコーディングスタイルに依存するものではない。
ただ、よいコーディングスタイルであればミスを未然に防ぎやすいというだけのこと。

144 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:03:38 ]
そもそもスレタイの70%の根拠は何だ!

145 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:12:06 ]
>>144
そんなんどうせ >>1 の経験からのなんとなくだろ。
そんなのいちいち気にしてたら負けだ。

146 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:18:05 ]
だけど、
if(condition)
f1();
f2();
というコードに
if(condition)
f1();
f3();
f2();
なんて付け加えるプログラマっているか?

147 名前:146 mailto:sage [2007/03/10(土) 15:20:34 ]
タブでなくスペースで送ってしまった。
>>146 は無かったことに。

148 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:20:36 ]
>>146
なにがいいたいのかよくわからん。必要応じて   を使ってくれんか?

149 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:27:40 ]
>>143
だから、{}を省略してもミスとは関係ないって判断してるんだろ?
有名ソフトで{}を省略するスタイルの人たちは。



150 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:33:07 ]
一人の天才で組んでるならともかく馬鹿と仕事するときは
馬鹿のレベルに合わせなきゃいけないんだよ

151 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:34:10 ]
>>149
有名ソフトでそうしているからっていう判断はあんまり感心せんな。

152 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:36:50 ]
>>150
短期的にはそれは認めるけど、今のこの業界は馬鹿を馬鹿のまま放置しすぎ。

153 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 16:05:16 ]
向上心が無いからバカ

154 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 16:23:46 ]
>>151
自分の経験も加えて。
2chのななしよりの意見より、実際に成果を出してるやつのスタイルのほうが参考になる。

155 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 16:27:33 ]
有名ソフトや書籍でも、省略する派としない派がある。
ようは、たいして重要じゃないってことだろ。

156 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 17:48:19 ]
う〜ん、おそらくループ変数なんかのためでしょうし、
そのほうが安全そうですが、そういうソースは見たことないです。

157 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 19:51:17 ]
>>1が70%の確率で{}省略でトラブルという告白スレ

158 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:43:29 ]
>>155
逆だろ
派閥が分かれるってことは懸案事項だってこと

159 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:48:25 ]
結論

コーディング規則を語るのは最下層の乞食コーダだけ。



160 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 00:08:58 ]
奴隷につなぐ鎖の強度を語るのはいずれ管理へ回る前途ある者
それを理解できない159は、奴隷以下の乞食か動物


161 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 00:15:19 ]
奴隷をつなぐ鎖なんて強度が十分であれば何を持ってきてもいい。
管理者はカタログから選んで持ってくればいいだけのこと。

鎖を再生産する管理者はバカ。
つながれてる鎖を自慢をする奴隷はマヌケ。

162 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 01:16:33 ]
何の比喩なのか、わかったようでわからないレスだな。

163 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 01:18:14 ]
わからないならレスしなくていいよ。

164 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 01:20:33 ]
逆切れするくらいなら比喩なんか書くなよ

165 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 01:46:15 ]
だそうだ。気をつけろよ>>160

166 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 02:01:40 ]
>>165>>160か。そんなにくやしかったのか?

167 名前:160 mailto:sage [2007/03/11(日) 02:06:05 ]
悔しくなんてねーよ、バーカ

168 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 02:16:36 ]
本物の160だけど、160以外のレスはつけてないけどね。
逆切れしたのはどいつだか知りたい。
あと、>>160の理由もね


169 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 02:17:55 ]
>あと、>>160の理由もね
まちがえた、
あと、>>165-166の理由もね



170 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 02:27:14 ]
160必死だなwwww

171 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 03:58:07 ]
だから{}でくくっておけばよかったんだ

172 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 05:47:17 ]
int
hoge ( void ){
}

みたいなのもやめてほしいな。

173 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 05:52:03 ]
括弧はともかく int と hoge の間の改行は正規表現で定義と使用が区別できるので vi 使いには便利。

174 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 08:34:51 ]
正規表現なら別に改行でなくてもいいんでは。

175 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 08:48:19 ]
>>174
vi使ってるときに、

/hoge で普通に検索
/^hoge で定義を検索

ていうことね。

176 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 11:34:46 ]
IDE使えよ乞食

177 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:13:56 ]
現実には戻りの型の方が関数名より長い事も多々あるからな。
intみたいな極端に短い物以外は改行で統一した方が見やすい。

178 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:21:09 ]
いやそんなにないだろ

179 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:27:25 ]
constもポインタも構造体もクラスもテンプレートも出てこないんですか。
APIやらライブラリ使ってりゃ長い名前の構造体なんていくらでもあるだろうに。



180 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:24:51 ]
構造体なんか返すなよ

181 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:46:03 ]
いくら長くても改行するほどじゃないな
というか、返す型情報まで含めてワンセットだから改行したくないなあ

182 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 17:49:24 ]
BSD系のカーネルのソースなんかは改行する事になってるね。
style(9)あたりに書いてある。

183 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:19:02 ]
>>180
32ビット値2つとか3つの組は結構返すよ


184 名前:デフォルトの名無しさん [2007/03/11(日) 18:50:28 ]
>>158
どっちか片方に収束しないってことは、どっちでも大差ないんだよ。
どっちかが明らかによかったら、片方のスタイルは廃れてるだろ。

185 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:54:17 ]
>>180はC使い

186 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:56:33 ]
構造体自体を返さなくても、それを指すポインタ返せば記述は長くなりますやん。

187 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 18:59:02 ]
>>185
C++でも同じだろ。
(スマートポインタで返すって手も使えるけど)

188 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 19:01:56 ]
>>175
そんなん普通にコメントアウトでラベルつけときゃいいだけやん

189 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 19:03:41 ]
>>188
意味わからん



190 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 19:30:28 ]
>>189
int aho() /* teigi */
とかかな。
aho(); /* shiyou */

全部に書く気なんじゃない?

191 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:13:31 ]
lint用のコメントみたいだなw

192 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:30:30 ]
>>1
プログラマは信号は守るべきだが
小石を取り除くかどうかはプログラマしだいだ
尊敬するプログラマのソースを読め

193 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:35:44 ]
>>192
尊敬するプログラマはみんな省略してませんでした

194 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:41:49 ]
漏れその昔、ビル・アトキンソンをめちゃくちゃ尊敬してたが、
C系のコードは書いてたのかどうか知らん。

195 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:10:46 ]
defineで閉じてるのは軽くいらっとさせるね
if () {
...
#if 1
} else
#endif
...

}
GNU関連は関数なんかもこれで閉じてくるよね




196 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 23:22:54 ]
>>195
仕事でそんなコード書いてるヤツ見たら、思わずはり倒しちゃいそう。

197 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 00:32:13 ]
return_type
func_name(
 arg_type arg
)
{
}
はダメダメってことですね。

198 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 01:23:06 ]
>>197
なんで?

199 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 01:47:52 ]
>>172 >>177



200 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 02:07:20 ]
>>197
俺はよくそのスタイルで書く衝動にかられるけど、
引数リストの行末がカンマで統一できないのが
嫌でいつも思いとどまる。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<67KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef