アカウント名:
パスワード:
処理が1行だからといって、if文で格好つけるのはやめましょう。
括弧の有無でパーサが限界に達したりするから簡単な問題じゃないんだよif(~!=0);else if(~!=0)~if(~!=0);else{/*SUCCESS*/}/*FAILURE*/;return err;みたいなの
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail;
を
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) { goto fail; }
にしちゃいけない理由なのか?
条件式の後に単文を実行する場合はブレースを付けないコーディング規約なのかも知れません。
私はかつて、最初にプログラマとして勤めた職場が「ブレース省略禁止」で叩き込まれたこともあり、ブレース省略の利点がさっぱりわからない(こういうバグを生む)のですが、なぜか「単文ではブレース省略」とする規約は見たことがあります。
不要なコードは書くな主義かな。ソースコードのサイズを制限したいとか#そういう時代もあったんです
あるいはK&Rスタイルに沿っているつもりとか。
単文にはそもそも中括弧は不要だからでしょう。つまり「省略」じゃない。Syntax Sugarの一種で水増しだといわれても仕方がない面があるから。
IFの実行部は必ずブロックにしろ、単文は使うなってのは30年以上前から言われてますけどね。
一般論としては、言語のある機能を使わずすますために、冗長な記述を毎回繰り返すことは、ダメプログラマーの典型的な行動なので、ブレースは省略すべきということになる。
ただし、ブレースの省略に関していえば、ミスが発生しやすいことが過去の多くの例で立証され続けているので、そろそろ例外と断定してもいいだろう。
他に例外になりそうなものを挙げるとすれば三項演算子や再帰などがあるが、これについては賛否両論の段階だろう。
自動整形機能を使っていればほとんど問題にならないんだよね。emacsを使って書かれたコードとかは括弧を省略しているのが多かった。今でもVisual Studioならば文法上正しいインデントにされますね。
そういう機能を持たないエディタで書かれたコードのインデントがおかしいなと思ったときは全体を一括整形してチェックしたりもします。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
格好つけずに括弧つけろよ (スコア:5, おもしろおかしい)
処理が1行だからといって、if文で格好つけるのはやめましょう。
Re: (スコア:0)
括弧の有無でパーサが限界に達したりするから簡単な問題じゃないんだよ
if(~!=0);else if(~!=0)~if(~!=0);else{/*SUCCESS*/}/*FAILURE*/;return err;
みたいなの
Re: (スコア:0)
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
goto fail;
を
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
{
goto fail;
}
にしちゃいけない理由なのか?
Re:格好つけずに括弧つけろよ (スコア:1)
条件式の後に単文を実行する場合はブレースを付けないコーディング規約なのかも知れません。
私はかつて、最初にプログラマとして勤めた職場が「ブレース省略禁止」で叩き込まれたこともあり、ブレース省略の利点がさっぱりわからない(こういうバグを生む)のですが、なぜか「単文ではブレース省略」とする規約は見たことがあります。
Re:格好つけずに括弧つけろよ (スコア:2)
不要なコードは書くな主義かな。
ソースコードのサイズを制限したいとか
#そういう時代もあったんです
あるいはK&Rスタイルに沿っているつもりとか。
単文にはそもそも中括弧は不要だからでしょう。
つまり「省略」じゃない。
Syntax Sugarの一種で水増しだといわれても仕方がない面があるから。
IFの実行部は必ずブロックにしろ、単文は使うなってのは30年以上前から言われてますけどね。
Re: (スコア:0)
一般論としては、言語のある機能を使わずすますために、
冗長な記述を毎回繰り返すことは、
ダメプログラマーの典型的な行動なので、
ブレースは省略すべきということになる。
ただし、ブレースの省略に関していえば、
ミスが発生しやすいことが過去の多くの例で立証され続けているので、
そろそろ例外と断定してもいいだろう。
他に例外になりそうなものを挙げるとすれば三項演算子や再帰などがあるが、
これについては賛否両論の段階だろう。
Re: (スコア:0)
自動整形機能を使っていればほとんど問題にならないんだよね。
emacsを使って書かれたコードとかは括弧を省略しているのが多かった。
今でもVisual Studioならば文法上正しいインデントにされますね。
そういう機能を持たないエディタで書かれたコードのインデントがおかしいな
と思ったときは全体を一括整形してチェックしたりもします。