今日のつぶやき

Twilog

OOの三本柱は静的構造、状態機械、協調。静的構造と状態機械は演繹的に記述できる。協調は帰納的にしか記述できないのが弱点。 @myen #

協調そのものは帰納的にしか記述できないが、協調を構成する部品は演繹的に記述することができる。その部品としてサービスがあると捉えると、OOの中でのサービスの位置付けが定まる。 @myen #

サービスの記述は、揮発性の情報変換の記述と不揮発性のエンティティの状態遷移とアクターへの情報送信に分けることができる。揮発性の情報変換は関数で記述することができる。不揮発性のエンティティの状態遷移によって、静的構造/状態機械とサービスを結びつける。 @myen #

トグル(xキー押下とか)で一行表示と全文表示の切り替えができないかなー #sorausagi #

←↑↓→をC-b, C-p, C-n, C-fとかhjklに割り当ててあるとすごくうれしい。C-mでTwitter post、C-jでfriend feed postが出てくるとなおうれしい。 #sorausagi #

C-m C-rでtwitter reply, C-m C-tでtwitter reTweet, C-m C-dでtwitter direct messageができるといいなぁ。ぼそぼそ。 #sorausagi #

システム外部リソースはアクターとしてモデル化する。状態遷移のお願いはできるけれど、本当に状態遷移するのかは相手次第で、別の口から観測することしかできない。 @myen #

基本的なEmacsキーバインディングがあるとよいなー。C-p, C-n, C-f, C-bとC-a, C-eだけでいいので。 #sorausagi #

エンティティの状態遷移とアクターへの依頼・観測がモナド化できると、サービスを関数・宣言で記述できる。つまりサービスを演繹的に記述できる。 @myen #

アクターへの依頼と観測の分離はeventual consistencyのポイントをモデル上で明確化する効果がある。 @myen #

サービスを演繹的に記述できれば、協調の中で帰納的に記述せざるを得ない部分を大幅に減らすことができる。 @myen #

サービスと同様の技法で業務フローも演繹的に記述できるようになるはず。業務フローは業務システムの実装手段として考えるとよい。つまり、業務ユースケースによる帰納な記述が(関数化された)業務フローによる演繹的な記述の制約になるという関係になる。 @myen #

協調を要求仕様の側面で抽象化すると使用事例(use case)になる。使用事例は帰納的記述。使用事例はサービスの制約として考える。使用事例をPSMに翻訳するとテスト・ケースになり、実装に翻訳するとテスト・プログラムになる。 @myen #

使用事例がサービスを使う場合には、多くの変数がバインドされた後のcurry化されたclosureを、使用事例とサービスを結びつけるモデルとして考えるとよい。 #simplemodeling ではtaskと呼んでいる。(realtime系のtaskとは別) @myen #

UXをITシステムに落とし込むにはUC(Use case)がよい中間モデルになるはず。ただし、現状のUCのUIフロー的なニュアンスはUXとかぶってしまうので、よりシステム側の方向に立ち位置をシフトさせるのがよい。 @myen #

現在広く使われているUCの利用方法の問題点は、利用者とシステム間の相互作用(特にUIフロー)の記述に矮小化されていること。業務ドメインの状態機械と連携しないとOO的には価値が出ない。また、UXとOOの連携に利用することもできない。 @myen #

この切り口で考えるとよさそう。『カンバン vs Scrum - kawaguti の日記 (id:wayaguchi)』 ff.im/b7mKP #

WIPというのはWork in... re: ff.im/b7mKP #

Scrum→ACID→単一システム、Kanban→BASE→分散システム(クラウド)、といった相関関係も想起されるね。単一システムのフェデレーションが分散システムという方向で連携させる。 @myen #

Scala 2.7.7とScala Test 1.0が出てるやん。 #

APIからDSLへ。そういう意味でもDSL駆動開発。 #scala @myen #

どういう文法にするかな。 #

ドメイン・モデルが一段落したら、サービス・モデルに取り掛かりたい。TaskQueueとXMPP、Mail、Twitterとかを組合せて面白いことができそうな予感。 #simplemodeler #

Scalaでないとできないことが色々あるなぁ。まずScala readyにすることが先決。その後、色々な応用が見えてくる。 #

#scala 2.8で名前付きパラメタが追加されると、DSLの記述能力がさらに上がる。 #

バーグ
f.hatena.ne.jp/twitter2/20091108141309 #

みたい〜 RT @noritsuna: 鉄人なう twitpic.com/oq370 #

Automatically shipped by LoudTwitter