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

74 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:28:24 ]
>>70
規約がある場面ならそれに従うのが前提だろ。

75 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:29:20 ]
俺は縦方向にあまり引き伸ばしちゃうと、意味が俯瞰しにくい気がするんだな。

76 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:32:19 ]
自信のない論拠を補強するために妄想で実体のない数字を提示する奴って、
すぐ言い訳や嘘をつくから一緒に仕事をしたくない。

77 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:34:12 ]
うちは皆さんとは逆にif文にブロック禁止。
if(条件) 関数1(); else 関数2();
で書く。

78 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:35:09 ]
コーディングレベルの低い奴に限ってコーディングルールの話をやたらとするんだよなw
そんな暇があったらコード書けよwww

79 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:36:11 ]
>>77
(条件) ? 関数1() : 関数2();

80 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:37:32 ]
>>77
俺の場合、どうしても1行に納めたい場合は if 文使わずに
(条件 && (関数1(), true)) || (関数2(), true);
とかってする。

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

82 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:40:37 ]
チーム平均レベルが低い問題の100%は>>1が原因



83 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:44:26 ]
>>80
詰め込みすぎだw

84 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:45:10 ]
ていうか手段と目的が入れ替わってる

85 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:46:09 ]
>>78 みたいなヤツが、小汚くてメンテナンス性ゼロなコードをまき散らしてんだろうな。

86 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:47:05 ]
そんなに1行にしたいなら改行しなきゃいいだけじゃん。

87 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:48:04 ]
みんな好きだねこういうスレ。
レスの伸びること伸びること。

88 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:49:25 ]
>>85
お前はコードレビューの時につまんない俺流コーディング規則を得意げに解説したりするんだろw
聞いてる人うんざりだろうなwww

89 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:50:02 ]
>>87
知識が無くても話せるからねw

90 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:50:24 ]
コーディング云々よりも、嘘つきの方が遙かに厄介。

91 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:52:52 ]
>>88
お前にいいものやるよ。

 つ [鏡]

お前の書き込み見てる人うんざりだから。

92 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:58:18 ]
>>1のように自分のミスを他人のコードのせいにして、非を認めずに言い訳し続けたり、
何の根拠もない数字を持ってきて嘘をついたりする人間がプロジェクトに混ざっていると、
非常に迷惑極まりない状態になる。



93 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:03:59 ]
有名ソフトや書籍でも、一行の場合は{}は省略してるのは多いな。
まあ、コーディングルールでも、どうでもいい部分だろな。
これは。

94 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:10:14 ]
>>77
えええええええ

そんなあほらしい規約があるのか。。
驚愕

95 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:14:03 ]
>>94
多少、あほな規約でもちゃんと一貫して守られてさえいればおk。
まぁ、厳しく管理してない限り、たいていなし崩しになっちゃうんだけどな。

96 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:17:27 ]
>>95
> あほな規約でもちゃんと一貫して守られてさえいればおk。

そんなことねーよ。

97 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:19:23 ]
linuxカーネルは、1行の場合は省略だね。
そうじゃないと、コミッタに罵倒されてパッチを受け付けてくれなかったり。
まぁlinuxの場合、インデントは8でタブで無いといけないという決まりもあるので、
読み間違えることは、まず無いのだが。
自分はドライバ書いてるが、そういう文化があるから、Cの場合は省略することが多いね。

でもJavaでは絶対省略しない。ていうか許している仕様が理解できない。
あと、elif とかをなんで用意しなかったのか、謎でしょうがない。
三項演算子もJavaの場合は使わないな。

98 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:30:23 ]
既にある規約を、そのやり方ではミスが増えるとか主張して、
自分流のやり方を押し通そうとする奴がいるが、
いままでそんな問題はなかったからとみんなになだめられても、
絶対に考えを曲げずに最後にはふてくされる。
はっきりいってこういう奴は使えない。

99 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:39:40 ]
>>98
>いままでそんな問題はなかったからと

ヘボいところは、自分らがいかにヘボいか理解できないからなぁ。

まあ、そういう所でやり方を変えようなんて怖くていえないけどな。
当たり前のことができずにトラブって「なんでやり方かえた→言い出したヤツはだれだ」
って展開になりがち。

100 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:39:50 ]
現場の状況に合わせて柔軟に対処できない奴はあらゆるトラブルの原因になる。

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 ]
正規表現なら別に改行でなくてもいいんでは。






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

前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