[表示 : 全て 最新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行文だろうがなんだろうが
最初から中括弧をつけるクセをつけろ

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
俺はよくそのスタイルで書く衝動にかられるけど、
引数リストの行末がカンマで統一できないのが
嫌でいつも思いとどまる。

201 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 08:01:41 ]
> 引数リストの行末がカンマで統一
そ、最後ね

arg_type1 arg1,
arg_type2 arg2,
arg_type3 arg3

最後のarg3だけカンマなしでないとエラー。よく引っかかる。
配列の初期化子は最後のカンマOKなのにね。

202 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 14:22:14 ]
>>187
C++ 使ってると C の頃の感覚が麻痺して
抵抗なく string 返したりもできるようになる筈w

203 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 15:09:03 ]
オーバーヘッドなんて高が知れてるし、参照もポインタも使わずに
構造体やクラスを平気で返しちゃうぜ

204 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 20:35:18 ]
C++クックブックって本は、コンテナクラスは 全部引数でやり取りしてた。

205 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 21:53:09 ]
何でスレ伸びてるの?

206 名前:デフォルトの名無しさん [2007/03/12(月) 23:23:25 ]
>>76
それおまえさんが強要して出させたんじゃないか?

207 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:04:04 ]
>>206
スレタイの数字の話じゃねえの?

208 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 01:41:45 ]
ぶら下がりelseに起因するbug発生回数は一回
その他の中括弧の省略に起因するbug発生回数は零回

209 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 02:09:20 ]
どんな書き方をしてもバグを生み出さないソースを書けばいいだけ
どんなにファクターがありそうでも最終的にそこに原因を求めるのは結局責任転嫁だ



210 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 02:10:42 ]
読みやすい書き方はそれだけでバグの抑制になる

211 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 05:57:35 ]
インクリメントとかシンプルな処理なら{}なんて使わなくても
使うのは数行に渡る見込みがあるか後々まで残す部分くらいだな

212 名前:デフォルトの名無しさん [2007/03/13(火) 08:01:55 ]
やはりbegin〜endの勝利だな

213 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 09:26:05 ]
Python最強ということで

214 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 09:35:13 ]
schemeもええで

215 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 09:48:34 ]
ソレより、 && || をif文中で使ってる場合の方が多いように思うけどな

特に俺が書いた時に無かったのに後から何気なく追加されたような場合、たいてい間違ってるゾ!

216 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:02:09 ]
70%はそっちの方だね。

217 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:08:56 ]
まだ && ||を2行に別けて書く人はミスが少ない気がする

if( ( hoge == hage )
&& ( hige ) ){
}
みたいに

218 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:12:50 ]
こういうのは程度の問題で、複雑な式は分けて書いた方が理解しすいだろうが、
シンプルな式まで徹底して分ける事に決めちゃったりしたら、かえってコードの意図がわかりにくくなると思う。
{}の省略についても同様。

219 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:39:36 ]
if修飾子が使える言語(PerlやRuby)だと、やることが1つなら修飾子にして
おいて、増えたら複文支配のifに書き換える、という使い分けが出来るな。




220 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 13:07:20 ]
むしろ後置ifが使えるなら、
前置ifでの単文修飾は不可能にすべきじゃなかろうか。

221 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 13:16:18 ]
perlはそうだね。

222 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 14:06:40 ]
俺はPBP6.2の通りに後置ifはnext, last, redo, return, goto, die, croak, throwでのみ使うようにしてる。
メンテ不要な書き捨てプログラムはこの限りでないがw

223 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 22:45:43 ]
if文より型の変換とか値入れてない変数とかの方がやばい気がする。

224 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 22:46:14 ]
全ての分岐をgoto文で書いてやる

225 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 23:02:08 ]
gotoが必要なのは多重ループを抜けるときだけだよな。

226 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 23:14:43 ]
ttp://gedo-style.net/g/?v=361721&d=d.jpg

227 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 00:27:29 ]
多重ループは関数化で対処

228 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 04:07:30 ]
gotoはエラー処理と字句解析のハードコード。

229 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 04:48:53 ]
if()
{
;
}

↑これは異端か?



230 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 05:29:00 ]
異端もクソも、なぜ if() の中を ! で否定しないよ

231 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 06:53:59 ]
頭ごなしに否定するのはよくない






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

前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