できるだけフラグを使用しないプログラミングテクニック/設計方法を勉強してみたいと考えています。

概念的・抽象的な指針ではなく、実践的・具体的な方法論を教えてください。

回答の条件
  • 1人2回まで
  • 登録:2009/10/21 09:07:14
  • 終了:2009/10/25 13:19:09

回答(1件)

id:hosu No.1

hosu回答回数26ベストアンサー獲得回数22009/10/21 20:01:55

ポイント60pt

フラグを使うプログラムは私見ですが、設計不足の場合に多いと思います。

つまり、最初Aという処理で良いと思っていたところ、A内でAA、ABと処理を分ける場合が見つかり、フラグを立てることでAA,ABの何れを実行するか分けるわけです。

対策としては十分に事前の設計・レビューを行なえば自然とフラグは必要なくなります。


例えば一つのモジュール内にON/OFFのフラグが10個あった場合、最大でも1024通りの状態が存在し、カバレッジを100%にするためには1024のテストケースが必要になるわけです。

実際にどれだけのパスが存在するかはMcCabeの複雑度を計測することで判ります。

McCabeの複雑度を計測してくれるフリーのツールもあります。

SourceMonitor

http://www.campwoodsw.com/sourcemonitor.html

常に複雑度を計測して多すぎる場合はリファクタリングを行なうと良いでしょう。

McCabeの複雑度に関しては以下のように言われています。

10 以下であればよい構造

30 を越える場合,構造に疑問

50 を越える場合,テストが不可能

75 を越える場合,いかなる変更も誤修正を生む原因を作る

id:my_redo_log

回答ありがとうございます。

ただ、対策として、「十分な事前の設計・レビュー」よりも、さらに実践的・具体的な方法論が伺いたいです。

もうすこしミクロな、コードレベルの観点で内容を頂戴した方がよいのかもしれません。

2009/10/22 08:33:07

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • 今日のメモたな卸し なぜ「飲みニケーション」重視の会社は儲からないか http://news.finance.yahoo.co.jp/detail/20091020-00000001-president-column ふむ。 2002/05/25 Ctrl-h≠¥010: screenの怪Debianの怪 http://www.fastw
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません