◯◯駆動開発

テスト駆動開発を学び、ドメイン駆動開発なるものがあるというのを知り、なんか駆動開発っていっぱいあるっぽいね?ってなったので調べてみたので、こんなものがあるんだなぁという記事です。

 

テスト駆動開発

それぞれの機能を作る際まずテストを先に書き(テストファースト)、そのテストが動作する実装を行う。さらに、テストコード自体も成熟させて行くことにより、開発者の確信を裏付けていく。

アジャイル開発に向く。

 

ビヘイビア駆動開発

テスト駆動開発からの進化系。テストファーストにてテストをただ書くというのではなく、求められる振る舞い(ビヘイビア)、つまり仕様(スペック)を定めることにより、より自然な形での開発を行う(スペックファースト)手法。

 

ドメイン駆動開発

ドメイン駆動設計というデザイン段階からの考え方の派生。ドメインの設計をモデルベースで行うべきだという考え方。

 

モデル駆動開発

ドメイン駆動設計で扱うモデルベースの考え方を元にした開発。

 

 

色々あるみたいだけど・・・結局のところ名前が大事なんじゃないなってことかなという結論に。

 

どの開発においても設計は大事だし、テストも大事だし・・・

 

ただ、ソフトウェアというものは、開発してリリースして終わりじゃないよっていうのが前提になるので、アジャイル開発手法のようなソフトウェアを育てるという思考回路が重要となり、その上でそれにフィットするオブジェクト思考というものがあり、どういうモデル設計を行い、どういう実装を行うのかという点にある気がします。

 

他にも色々ある◯◯駆動開発をみてみると、開発者の好みというか哲学のようなものが垣間みえてくるような、そんな◯◯駆動開発でした。