makotan _at_ gmail dot com

DDDとかOOAとかDCIとかDOAとかBuriとか・・・

昨日の夜ぼけーっと考えてたことのまとめ
年末位にDCIのサンプルコードがDisられてたのがきっかけ


個人的な考えとして
そこそこ普通の人がある程度の期間練習すれば確実に合格点とれる技術Aと、そこそこ普通の人がある程度の期間練習しても合格点に行かない技術Bの二つがあると仮定したとき、最高の技術はBだとしても個人的に選択するのはAを磨き上げること。
理由は最低のレベルがAの方が高いから。練習すらしない人は過去のやり方を延々繰り返すだけだからそもそも無視w


DOAで思ったこと
基本的には手法っぽくなってるけど、実装技術がここまで進歩してるのにこのまま使うのは無理かな〜
ただ、コンセプトは良いしある程度だれでも出来る手順にはなってると思う


OOAとDDDで思ったこと
両方ともちゃんとやれる人が設計すればきっとDOAなんて相手にならないくらい良いものが出来るんだろうなぁ〜
ただ、手法として確立してるという感じは全くしないし、設計すると色々悩む人が出てきそうな気がした


DCIで思ったこと
OOAとDDDにある弱点部分を理解した上でそこをカバーしつつ、アーキテクチャとしてまとめてるあたりがおもしろい
「設計の結果こうなる」って考えるとすごくすっきりする気がした


Buriを作ったときに思ってたこと
いろんな手法を勉強して、いろんな開発をしてきた結果判ったことがいくつか

  • システムは「データ」「処理」「ユーザ」「ルール」の4つの成分から成り立つ
  • どの成分も軽視して良いものは無いし、独立して存在することも無い
  • 大事なのは成分の関連を見つけ出して分割統治する事

データと処理に注目すると、普通に流れが存在してるので「データが絡む処理」をまとめて「流れ」にしてついでに管理もする
ユーザは頻繁に関与するので「処理毎に扱えるユーザ」を特定する
自動で出来る判断は常に自動で処理するために「データを扱うルール」を定義する
これらを可能な限り簡単に実装できる様にするっていう目的の為に作ったのがBuri
で、問題はこの考え方がDOAでもなく、OOAでもDDDでもないので分類と説明に困った事
DOAに分類されがちだけど、実際には違うしなぁ〜ってw
実は限りなくOOAとかDDDに近いんだけどこっちは「流れ」を考えてないし・・・
BPMな人たちとも仲良くなったけど、実際はプログラミングの為に作ったからBPMでもないしなぁ〜
なんて事を考えてたらDCIが出てきてちょっと嬉しかった