Hatena::ブログ(Diary)

四角い車輪の再発明 このページをアンテナに追加 RSSフィード

2006-10-27

[]ビヘイビア駆動開発を試す

前回の勉強会で、他の参加したいのと重なってしまい聞けなかったRSpecを試した。

かくたにさん訳のチュートリアルがあるので参考にした。

http://kakutani.com/trans/rspec/TUTORIAL_ja.html

あとビヘイビア駆動開発の基本的な考え方の訳はこちらにあった。

(元の記事はRSpecの作者により書かれたもののようだ)

http://giantech.jp/wiki/BDDIntro

ちなみにビヘイビア駆動開発とは、従来のテスト駆動開発がテスト手法だという誤解が多い(本来はプログラム手法の一つです)ことから、まず開発手法の名前を「テスト」から離れた名前にしたかった事が発想の起源らしい。

なので、ビヘイビア駆動開発と言っても、メソッド名や継承元となるクラスが異なる以外は、やろうとしている事はテスト駆動開発とほぼ同じだ。

【テスト駆動開発】

テストコード作成(実装を"検証"する為のコードを書く)

実装コード作成(本来作りたいコードを書く)

【ビヘイビア駆動開発】

スペックコード作成(実装のスペック(仕様)を定義するコードを書く)

実装コード作成(本来作りたいコードを書く)

でもこれ、実装の仕様を先に決めるって要は設計するって事だよね。

だったら"設計"駆動開発のほうが名前としてよくない?

【設計駆動開発】

 設計コード作成

 ↓

 実装コード作成

設計→実装・・・・

これじゃ従来と同じだよorz

kakutanikakutani 2006/10/27 18:00 では「設計」とは何なのでしょうか?
http://www.biwa.ne.jp/~mmura/SoftwareDevelopment/WhatIsSoftwareDesignJ.html

OTTiiOTTii 2006/10/27 20:54 コメントありがとうございます。
「設計とはなにか」
難しい問題ですね。リンク先の内容は以前から知ってました。言ってる事はだいたい同意できると思います。

トムデマルコ氏の本で「デッドライン」というのがあって、その中の登場人物の一人が次のような事を言います。(完全な引用ではなく概略です)
『ほとんどのやつが本当のところの設計をやっとらん。フォーマットをそれらしくしてマネージャーがうんというまで適当な事を書いとるだけだ。
コードと1対1となるような詳細設計を書け。開発期間の80%に達するまでコーディングをしちゃならん』

普通に考えると、こんな事言われたら蹴っ飛ばしたくなりますが、
この究極に詳細な設計とやらが、BDDのスペックコードだと考えると面白いなと思ったわけです。
コードでコードを設計するという事ですかね。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/OTTii/20061027/1161922419