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

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

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

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 を {} に入れてるかどうかで当然後の整形結果も違ってくるんだろ
0064582007/03/10(土) 00:01:39
else if は俺の場合こうだ。

if (...)
{
  ...
}
else
if (...)
{
  ...
}
else
if (...)
{
  ...
}
0065デフォルトの名無しさん2007/03/10(土) 00:03:09
昔こうやってた時期がある。
あほか、とw

/**/ if (...) {
}
else if (...) {
}
else {
}
0066デフォルトの名無しさん2007/03/10(土) 00:07:12
{}をつけないのは副作用のあるループで本体が空の場合だけかな

while (i--)
 ;

こんなの。
0067デフォルトの名無しさん2007/03/10(土) 00:09:18
>>66
それはこうやるな

while (i--) {}
0068デフォルトの名無しさん2007/03/10(土) 00:21:32
【ネガティブ派遣根性チェック】

3つ以上、思い当たる点があればアナタの性格はひん曲がっており、ネガティブ負け組人生を歩んでいます。

□派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする
□派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われて嬉しい
□自社で仕事なんてできるわけがない
□派遣労働の問題点の話題が出ると感情剥き出しにして反論する
□派遣労働の問題を指摘する人は嫌いだ
□派遣先には仕事だけでなく自分のプライベートについても指示して欲しい
□奢ってくれる派遣先正社員は尊敬する
□自分の月額金額を知らないのは当然だ
□派遣先正社員より自分の生涯収入が低いのは当然だ
□派遣先に尻尾を振り、いつまでも派遣を続けることが大切だ
0069582007/03/10(土) 00:21:55
>>66
それでも、俺の場合はこうだ。

while(i--)
{
}

俺も青かったころは

while(i--);

とかやってたけどね。
0070デフォルトの名無しさん2007/03/10(土) 00:25:32
典型的なレベルの低いスレだな。

こんなのは、「俺の場合」とかじゃなくて、決められたコーディング規則で書け。
0071デフォルトの名無しさん2007/03/10(土) 00:27:37
これは恥ずかしいレスだな
0072デフォルトの名無しさん2007/03/10(土) 00:27:40
>>70
趣味でやってる場合はコーディング規則なんてないし、
仕事でやってる場合でもそのコーディング規則とやらはたいてい誰かの「俺の場合」なんだが。
0073デフォルトの名無しさん2007/03/10(土) 00:28:07
プログラミングは研究で使うだけで規則は決められてない
0074デフォルトの名無しさん2007/03/10(土) 00:28:24
>>70
規約がある場面ならそれに従うのが前提だろ。
0075デフォルトの名無しさん2007/03/10(土) 00:29:20
俺は縦方向にあまり引き伸ばしちゃうと、意味が俯瞰しにくい気がするんだな。
0076デフォルトの名無しさん2007/03/10(土) 00:32:19
自信のない論拠を補強するために妄想で実体のない数字を提示する奴って、
すぐ言い訳や嘘をつくから一緒に仕事をしたくない。
0077デフォルトの名無しさん2007/03/10(土) 00:34:12
うちは皆さんとは逆にif文にブロック禁止。
if(条件) 関数1(); else 関数2();
で書く。
0078デフォルトの名無しさん2007/03/10(土) 00:35:09
コーディングレベルの低い奴に限ってコーディングルールの話をやたらとするんだよなw
そんな暇があったらコード書けよwww
0079デフォルトの名無しさん2007/03/10(土) 00:36:11
>>77
(条件) ? 関数1() : 関数2();
0080デフォルトの名無しさん2007/03/10(土) 00:37:32
>>77
俺の場合、どうしても1行に納めたい場合は if 文使わずに
(条件 && (関数1(), true)) || (関数2(), true);
とかってする。
0081デフォルトの名無しさん2007/03/10(土) 00:40:16
コードフォーマッタで括弧も自動で付けてくれる奴ってある?
0082デフォルトの名無しさん2007/03/10(土) 00:40:37
チーム平均レベルが低い問題の100%は>>1が原因
0083デフォルトの名無しさん2007/03/10(土) 00:44:26
>>80
詰め込みすぎだw
0084デフォルトの名無しさん2007/03/10(土) 00:45:10
ていうか手段と目的が入れ替わってる
0085デフォルトの名無しさん2007/03/10(土) 00:46:09
>>78 みたいなヤツが、小汚くてメンテナンス性ゼロなコードをまき散らしてんだろうな。
0086デフォルトの名無しさん2007/03/10(土) 00:47:05
そんなに1行にしたいなら改行しなきゃいいだけじゃん。
0087デフォルトの名無しさん2007/03/10(土) 00:48:04
みんな好きだねこういうスレ。
レスの伸びること伸びること。
0088デフォルトの名無しさん2007/03/10(土) 00:49:25
>>85
お前はコードレビューの時につまんない俺流コーディング規則を得意げに解説したりするんだろw
聞いてる人うんざりだろうなwww
0089デフォルトの名無しさん2007/03/10(土) 00:50:02
>>87
知識が無くても話せるからねw
0090デフォルトの名無しさん2007/03/10(土) 00:50:24
コーディング云々よりも、嘘つきの方が遙かに厄介。
0091デフォルトの名無しさん2007/03/10(土) 00:52:52
>>88
お前にいいものやるよ。

 つ [鏡]

お前の書き込み見てる人うんざりだから。
0092デフォルトの名無しさん2007/03/10(土) 00:58:18
>>1のように自分のミスを他人のコードのせいにして、非を認めずに言い訳し続けたり、
何の根拠もない数字を持ってきて嘘をついたりする人間がプロジェクトに混ざっていると、
非常に迷惑極まりない状態になる。
0093デフォルトの名無しさん2007/03/10(土) 01:03:59
有名ソフトや書籍でも、一行の場合は{}は省略してるのは多いな。
まあ、コーディングルールでも、どうでもいい部分だろな。
これは。
0094デフォルトの名無しさん2007/03/10(土) 01:10:14
>>77
えええええええ

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

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

でもJavaでは絶対省略しない。ていうか許している仕様が理解できない。
あと、elif とかをなんで用意しなかったのか、謎でしょうがない。
三項演算子もJavaの場合は使わないな。
0098デフォルトの名無しさん2007/03/10(土) 01:30:23
既にある規約を、そのやり方ではミスが増えるとか主張して、
自分流のやり方を押し通そうとする奴がいるが、
いままでそんな問題はなかったからとみんなになだめられても、
絶対に考えを曲げずに最後にはふてくされる。
はっきりいってこういう奴は使えない。
0099デフォルトの名無しさん2007/03/10(土) 01:39:40
>>98
>いままでそんな問題はなかったからと

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

まあ、そういう所でやり方を変えようなんて怖くていえないけどな。
当たり前のことができずにトラブって「なんでやり方かえた→言い出したヤツはだれだ」
って展開になりがち。
0100デフォルトの名無しさん2007/03/10(土) 01:39:50
現場の状況に合わせて柔軟に対処できない奴はあらゆるトラブルの原因になる。
0101デフォルトの名無しさん2007/03/10(土) 01:42:43
Perlの
〜if ...;
って何気に最強だな。
0102デフォルトの名無しさん2007/03/10(土) 01:45:51
>>99
規約を変えたければ管理する側に回ってからにしないと統率がとれなくなるだろ。
主張が通らない時点で、その権限が無いことが理解出来ないのが問題なんだよ。
自分の言っていることが正しいと思いこんで、自分勝手な行動をしているという認識がない。
■ このスレッドは過去ログ倉庫に格納されています