« [シンポジウム]JaSST 2008 東京 - 参加できないけど。 | トップページ | 私はこう書く - GOTO文 »

私はこう書く - IF文

レビューしやすくすれば品質は向上する、というシンプルな気持ちでコーディング規約を勉強。

==

僕個人のクセでもあるのだが、IF文には大きく分けて2種類あると思ってて、それによって組み方を変えてる。

  1. 正常系と異常系のIF文

  2. 例えば、ファイルアクセスなどのエラー処理をあらわす条件分岐など。

    ...
    ...
    if( 条件A ){
      /* 異常系処理(=エラー処理) */
      retire();
      hoge1();
      return(ERROR);
    }
    if( 条件B ){
      /* 異常系処理(=エラー処理) */
      retire();
      hoge2();
      return(ERROR);
    }
    if( 条件C ){
      /* 異常系処理(=エラー処理) */
      retire();
      hoge3();
      return(ERROR);
    }
    /* 正常系処理 */
    ...
    ...

    フローチャート図でいうと、本線がすべて正常形の処理を表し、異常系(エラー)処理が根っこのように外側に伸びる感じ。さらに言えばすべての根っこは後処理(クローズ処理や解放処理など)を共通化して実行させる。

    If1

  3. 正常系と正常系のIF文
  4. 例えば、右に行くか左に行くか、IEかFirefoxか、JISかSJISかEUCかUTF-8か、といった正常系の大きな条件分岐など。SWITCH文にも似ている。

    ...
    ...
    if( 条件A ){
      /* 条件Aが真である、正常系の処理 */
      funcA();
    }
    else{
      /* 条件Aが真でない、正常系の処理 */
      funcB();
    }
    /* unreachable */

    特徴として、比較的大きなブロックになったり、それぞれのブロック内で終了し、ブロック外は到達しないものとか。

    If2

このパターンで実装することで、可読性や保守性などが向上する。と思う。

|

« [シンポジウム]JaSST 2008 東京 - 参加できないけど。 | トップページ | 私はこう書く - GOTO文 »

コメント

http://www.hotdocument.net/faq/man.html
知り合いの会社で使っている規約です。
良かったら参考にしていただけないでしょうか。
ドキュメント自動生成ツール【A HotDocument】のルールみたいです。
http://www.hotdocument.net/

投稿: 仕様書担当です | 2008年11月24日 (月) 09:38

>仕様書担当ですさん

コメントありがとうございます。
http://www.hotdocument.net/
こちらは自動生成ツールのようですね。僕のチームでは
あまりこういうツールを使ったりという文化がないので、
とても新鮮ですー。ちょっとダウンロードしてみようかな。

投稿: softest | 2008年11月28日 (金) 15:36

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/155415/10057204

この記事へのトラックバック一覧です: 私はこう書く - IF文:

« [シンポジウム]JaSST 2008 東京 - 参加できないけど。 | トップページ | 私はこう書く - GOTO文 »