【他の人】と気持よくプログラムをしよう【{}なしのコードを書かない】


2.{}なしのコードを書かない

こちらのシリーズは全編を通して、別に気をつければ問題ない。
けどそういうところから不具合起きやすい!
急いでる時にソースを読んでいて誤解をされる心配がない!
そういった部分に焦点を合わしております。
なので、注意していれば問題ないというのは無しでお話勧めます。

こちらに関しては、先に一言言っておくと、後で増やすことがあるなら先にやっとけ!
これにつきます

下の例文を見てください。

今回の項目はこのif文の後の括弧なしの行のことです。
たまに見かけるif文が1行だったら{}を書かなくても大丈夫ってやつですね。
これ、結構見かけるんですけど、個人的にはわかりにくくなるし、怖いのでやりません。

どういったところで問題が起こるのかというと。

1.if文の中の行数が増えた時
2.中身が不要になった時

なんかの時に牙を剥きます。

まず「1.if文の中の行数が増えた時」ですが、こちらは処理を行っているパスチェック時などに
ログを追加、別の処理を追加などした時に、ひょろっと処理がおかしくなってしまいます。
追加するときにかっこをつけて、やっぱ要らなくなったらかっこも消す。なら最初から書いておいたほうがいいですね。

2.中身が不要になった時
こちらは、たまーにあるのが、とある処理を一括置換で削除もしくはコメントアウトした時、エラーは起きないけど、
処理がおかしくなるという事が起こります。
例えば、デバッグログを全部コメントアウトをつけてください、みたいな感じで置換した場合、

こんな感じでエラーにはならないけど、全く違うコードになってしまいます。
こういうのは、プロジェクトの一括置換とかをやったことがないとあまり面しないですし、
人によっては「一括置換は邪道」的な感じで目視してやるかもしれませんが、
いずれにせよ気にしないでもいい方法とするなら、最初っからかっこをつけておくことをお勧め致します。

なお、スクリプト言語ではエラーも吐かずにサービス開始されてから不具合が起きるとかありえますぞ

今回のもやはり修正・対応時に気をつけてればいいなじゃない?というものですが、正直かっこで囲むぐらいやっておいた方がいいよ!
っていうレベルの問題ですね。

このあたり、おそらく昔のプログラム納品が背景にあると思います。
昔はプログラムというのが、行数で単価がついていたことが合ったそうです。
そういう時に、1行カットできるのが上記の方法になります。
なので、1行のif文ではかっこを付けないようにお願いされていたのじゃないかな、と勝手に想像。
今思うと行単位で単価がつくとか、プログラムのこと全然わかってない時期なんだなぁと時代を感じますね。

次回につづく


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">