トップページ⇒tech
408コメント99KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/03/09(金) 14:02:01
自分は1行しか書かないつもりでも
あとでコードを足さなければならない事態なんていくらでもやってくる。
他人がきちんと中括弧補ってくれるかどうかはわからない。

1行文だろうがなんだろうが
最初から中括弧をつけるクセをつけろ
0002デフォルトの名無しさん2007/03/09(金) 14:09:42
>>1
禿同!!
0003デフォルトの名無しさん2007/03/09(金) 14:15:37
>>2
自演乙!!
0004デフォルトの名無しさん2007/03/09(金) 14:25:56
アンケートとったんですか?
アンケートに答える暇がある人にのみ聞いたんですか?
0005デフォルトの名無しさん2007/03/09(金) 14:35:17
>>4はVB使い
0006デフォルトの名無しさん2007/03/09(金) 14:47:19
自分ひとりで書くときはつけないが、人と組むときはつけることにしてるな。
0007デフォルトの名無しさん2007/03/09(金) 14:53:32
同じく。
でも自分が信用できないので最近は1行でも書くようにしてる。
今のところ(自分一人で使う範囲でも)
このおかげでバグが出たことはないけど。
0008デフォルトの名無しさん2007/03/09(金) 15:14:17
>>6
スクリプトでポイポイ使い捨てのつもりで書いた物とかならともかく。
自分一人の時でもコーディング規約を適用するとそれほど縛りを感じないけどな。
むしろコーディング規約ナシで書いて半年後に眺めた日には泣ける。

規約があると、その規約を適用していた時のコードを振り返るときも楽だし。
0009デフォルトの名無しさん2007/03/09(金) 15:35:12
そんなん明らかに実行結果違うでしょ。
コーディング後テスト出来ずに、すぐにリリースしなくてはならない環境だったり
中括弧の後の追加文が検証しにくい環境であることの方が問題。
0010デフォルトの名無しさん2007/03/09(金) 16:26:38
 __     __  _____  _____     ___ ___    ___
 |   |    /  /  /       | /__  __/ [][] _| |_| |__ _| |_
 |   |.   /  /   /   / ̄ ̄|. l    / /     |    _  | |_  レ'~ ̄|
 |   |  /  /   /   /.  / /    |  |___      ̄|  | / / /   /| |
 |   |  /  /   /    ̄ ̄ /     \__|     |  |  ̄ /_  /  | |_
 |   |. /  /   /   / ̄ ̄| \               |_|     |__|   \/
 |   |/  /   /   /    |  |
 |.     /    /   /   /  /              Powered By Visual Basic 6.0
 |    /.   ./     ̄ ̄  / http://pc8.2ch.net/test/read.cgi/prog/1155017860/
  ̄ ̄ ̄     ̄ ̄ ̄ ̄ ̄ ̄
0011デフォルトの名無しさん2007/03/09(金) 16:37:41
そもそも、そんなに入力めんどくさいモンじゃないじゃん
省略しないほうがメリット大なのに省略するやつって
インデントもグチャグチャなことが多い。

条件式も代入も全部インデントなしの位置で記述してたり
0012デフォルトの名無しさん2007/03/09(金) 16:53:06
いつも省略しないで書くから、{}省略しているコードが非常に読みづらい
省略している奴らはなんか美意識とかあんのかなぁ
0013デフォルトの名無しさん2007/03/09(金) 16:58:19
省略するだろ普通。
それだけ縦方向に圧縮できて情報量がふえる

インデントで対応するPythonやendをつけるRubyなんかはたしかにこの手の問題を意識してるのかな
0014デフォルトの名無しさん2007/03/09(金) 17:19:38
if文1つにつき1行そこらで情報量が増えるとか言われてもねえ
0015デフォルトの名無しさん2007/03/09(金) 17:48:07
>>1
俺も省略するが、それでトラブるのは莫迦だからじゃね?

>>13-14
そんな大層なもんじゃねえだろ。
0016デフォルトの名無しさん2007/03/09(金) 18:10:40
馬鹿な奴ほど、なんでも省略したがる傾向にあるんだよな。
頭のいい奴は省略なんてしねーよ。重要なのは省略じゃなく最適化だろうが。
中括弧の省略は可読性を低下させるだけの悪習だろ。
そんなにソースの情報量にこだわるのなら、空白文字類をすべて省けよ。
ま、中括弧をつけないことに美を感じるとか趣味だとかそういう理由なら何も言わんが。
好きにすればって感じ。
つうか、中括弧ごときで騒ぐ奴のほうがおかしいんじゃねーのとか思っちゃうけどね。
0017デフォルトの名無しさん2007/03/09(金) 19:21:37
開発ソフトでソース書けば全解決ではないのですか?
よくシリマセンガ!
0018デフォルトの名無しさん2007/03/09(金) 19:21:54
省略できてしまう文法が悪い。
宗教戦争起こるのは当然。
0019デフォルトの名無しさん2007/03/09(金) 19:22:38
ぜひともトラブルの70%とかいうソースを出してもらいたい。
調査したの?
0020デフォルトの名無しさん2007/03/09(金) 19:36:53
これは大いに賛成
省略して何がうれしいのかと思う

自分はミスしない、と言うやつは一人で
コーディングして、一切ソースを人に見せない人なんだろう
0021デフォルトの名無しさん2007/03/09(金) 19:41:56
人間って、10段階評価って出来ないですよね
0022デフォルトの名無しさん2007/03/09(金) 19:44:05
評価されたら1か2ばかりつけられちゃうじゃまいか
いやん
0023デフォルトの名無しさん2007/03/09(金) 19:44:11
まぁ、情報量増やしたい奴らは、改行しないでエディタの右端で折り返しとかすれば一度にみれる情報量一気にふえるじゃん

情報量というか、可読性とかをあげた方が最終的にはバグとか減って生産性も上がると思うんだがな。
0024デフォルトの名無しさん2007/03/09(金) 19:46:57
数値で評価といっても、結果的に、あるものとの比較による評価だよね。
0025デフォルトの名無しさん2007/03/09(金) 19:53:34
{}省略してる奴が
コメントアウトで//ああお腹すいた
とか書いてたりすると殺意を覚える
0026デフォルトの名無しさん2007/03/09(金) 20:03:41
このスレには少々驚いたな。一行の方が基本かと思ってた。
省略してると解釈するものか・・・。
0027デフォルトの名無しさん2007/03/09(金) 20:05:24
java言語すら存在しない時代のCの教育書には
>>1と同じことが書いてある
0028デフォルトの名無しさん2007/03/09(金) 20:11:28
これが原因でトラブルを起こすような奴がコードを書いてることが問題
0029デフォルトの名無しさん2007/03/09(金) 20:13:45
>>28
人間のミスのほとんどは、ケアレスミスだよ。
言い方を換えれば、ケアレスミスをしないですむ状況をつくればミスは減る。
0030デフォルトの名無しさん2007/03/09(金) 20:13:50
マ板でやれ。
0031デフォルトの名無しさん2007/03/09(金) 20:23:55
ケアレスミスを減らすために決まりを沢山作るよりも、
問題がすぐに発見/修正されるような仕組みを作ることが重要。
0032デフォルトの名無しさん2007/03/09(金) 21:33:23
取り敢えず一切省略しない。
エディタがifを入れたところでブレースを含めて展開してくれるから、面倒もない。
0033デフォルトの名無しさん2007/03/09(金) 21:34:48
俺は基本的に1行でも{}はつけるけどたまにつけない事もある。
つけない事が原因でバグが入った事は無い。
0034デフォルトの名無しさん2007/03/09(金) 21:38:20
{}無くてもインデント付けてりゃまず見逃さないだろ
0035デフォルトの名無しさん2007/03/09(金) 21:42:25
>>31
少なくとも省略して可読性を悪くする人間は失格dな
0036デフォルトの名無しさん2007/03/09(金) 21:45:05
省略を許してしまうような言語が悪い

俺は悪くない
0037デフォルトの名無しさん2007/03/09(金) 21:47:36
>>35
あんたにとって可読性が良いコードが万人にとって可読性が良いわけじゃないでしょ。
0038デフォルトの名無しさん2007/03/09(金) 21:54:09
>>37
{}を使った方が可読性が良いって流れなんだけどな
0039デフォルトの名無しさん2007/03/09(金) 21:55:34
だからそれは万人にとってじゃないでしょ。
間延びして読みにくいと感じる人もいるわけで。
0040デフォルトの名無しさん2007/03/09(金) 22:03:16
{}付ける派だが、俺は

if()
{
    // ...
}

って開きを綴じと同じレベルに置きたいから無駄になるのが1行じゃなくて2行なんだよな。
0041デフォルトの名無しさん2007/03/09(金) 22:06:59
{{{{{{if(1)printf("Hello, world");}}}}}}
0042デフォルトの名無しさん2007/03/09(金) 22:07:51
俺は状況によって色々

if (...) {
  aaaaaa;
  bbbbbb;
}

if (...)
{
  int n = 0;

  aaaaaa;
  bbbbbb;
}
0043デフォルトの名無しさん2007/03/09(金) 22:13:27
>>42
そういう決まりが無いのがトラブルを起こしやすいんじゃない?
0044デフォルトの名無しさん2007/03/09(金) 22:13:33
そもそも省略不可な場合(複数行)が多くて、つけるのが癖になってる。
仮にものすごく低い確率でつけ忘れたってトラブルになる程でもない。
ちょっと実行してみて、あれおかしいな、ああここか修正修正って感じ。
この程度じゃトラブルになりようがない。
ワープロの文書コピー作業じゃないんだから。
0045デフォルトの名無しさん2007/03/09(金) 22:16:34
>>43
決まりはあるけど?
0046デフォルトの名無しさん2007/03/09(金) 22:21:06
関数の最初の方で早抜けするときはこうも書くな

if (...) return;
0047デフォルトの名無しさん2007/03/09(金) 22:40:44
if (...)
  if (...)
    aho();
else
  baka();
0048デフォルトの名無しさん2007/03/09(金) 22:42:30
つまり Python を使えばコーディングトラブルの約70%を省略できると(w
0049デフォルトの名無しさん2007/03/09(金) 22:50:01
if(...)
  nurupo();
else
0050デフォルトの名無しさん2007/03/09(金) 23:03:09
if(...)
  b = a>>49;
else
  gaxtu();
0051デフォルトの名無しさん2007/03/09(金) 23:32:32
完全記述

if(...) {
} else {
 if(...) {
 }
}
0052デフォルトの名無しさん2007/03/09(金) 23:34:33
こうだろ?w

if (...)
{
}
else
{
  if (...)
  {
  }
}
0053デフォルトの名無しさん2007/03/09(金) 23:41:53
以前は>>51のスタイルだったけど
VisualC#を使い始めてから>>52になった。
0054デフォルトの名無しさん2007/03/09(金) 23:42:50
甘い。正解はこれ。

if (...)
{
}
else
{
  if (...)
  {
  }
  else
{
//do nothing
}
}
0055デフォルトの名無しさん2007/03/09(金) 23:43:10
JavaでもC++でも>>52みたいに書いてる学生だけど
今のうちに修正した方がいいんだろーかと悩むお年頃
0056デフォルトの名無しさん2007/03/09(金) 23:45:04
インデントがプログラムの意味とずれてさえいなければ、どれでも問題なっしんぐ。
あと、人のコードをいじるときは周囲に合わせる控えめな心が大事w
0057デフォルトの名無しさん2007/03/09(金) 23:47:16
心に刻んでおきます
0058デフォルトの名無しさん2007/03/09(金) 23:47:18
プログラミング歴20余年の俺は紆余曲折を経て最終的に>>52のスタイルに至ったんだが。
0059デフォルトの名無しさん2007/03/09(金) 23:48:42
else if
だけはぶら下げちまえ。
ぶら下げ使ってくれ。
頼むから。

あと、俺は
if(..) {
}
派なんだけど、
if(...)
{
}
派が理解できない。
一行無駄だろ。
0060デフォルトの名無しさん2007/03/09(金) 23:51:23
eclipse(デフォ)は>51なんだが、君たちの開発ソフトはどんな記述だ?
0061デフォルトの名無しさん2007/03/09(金) 23:54:17
>>59
ブロックの中でローカルな変数使うときだけは

if (...)
{
  変数宣言

  あれこれあれこれ
  ずびずばぱやぱや
}

ってやりたくなる。 
0062デフォルトの名無しさん2007/03/09(金) 23:54:37
>>60
if (..) {
} else if (...) {
} else {
}

俺もeclipseだけど。
0063デフォルトの名無しさん2007/03/09(金) 23:57:10
>>60 >>62
else の後の if を {} に入れてるかどうかで当然後の整形結果も違ってくるんだろ
■ このスレッドは過去ログ倉庫に格納されています