プログラマメモ2 - programmer no memo2

ある文脈時に、変数がとりうる値から状態を決めたいわけです 2009/01/29
2009/01/30

ある状態のときにある動作をするプログラムを書くときに、
実装者に条件判定(if)を書かせないようにしたい。

とくにif文がネストするようなコードを書かせたくない(書きたくない)。

if(){
if(){
if(){

}
}
} else {
if(){


} else {

}
}


こういったコードになりがちなのはアプリケーションのもつ状態を把握していないときにおこると思います。
状態を把握していない場合、実装者が自分に都合のよいフラグを安易に(やむにやまれず)導入したりします。

アプリケーションは、《ある条件のときにある処理を実行してよい》、の積み重ねと考えると、ある条件を、
抽出する方法を簡単に(一目で把握)できないかなと。

アプリケーションのもつ状態をアプリケーションがもつ変数のその瞬間時の組み合わせとするなら、
状態を表にできるかなと考えたわけです。

これは僕の以前からずーともっているテーマなのですが、これをうまく表現するための方法がないかな。

ある文脈時に、変数がとりうる値から状態を決めたいわけです。

アイデアレベル
/* 文脈 abcWindow */
CONTEXT:abcWindow

/* 変数から状態を決定 */
STATE(name:ST_1): a:true, b:false, c:3, d:visible
STATE(name:ST_2):STS_1, e:false
STATE(name:ST_3):STS_2, e:true
STATE(name:ST_4):a:true, b:false, c:3, d:not visible, e:true

/* 変数の取得方法 */
VALUE(name=a):{

}
VALUE(name=b):{

}
VALUE(name=c):{

}
VALUE(name=d):{

}
VALUE(name=e):{

}

: