somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

TDD

【TDD】TDDBC Tokyo 2013-03に参加しました【勉強会】

TDD

TDD Boot Camp(Tokyo 2013-03)にphp(PHPUnit)で参加してきました。主催者・TA、会場の株式会社VOYAGE GROUP 8F 社内バー AJITOに感謝です。 勉強会 行きたい行きたいと1年くらい思ってからの勉強会でした。勉強会の温度はtwitterや発表資料などで感じでい…

【TDD】テスト駆動開発入門16章完了

TDD

これで最後になりました。合計式と単項式の加法を行えるようにします。 Expressionにplusを追加 Sumにplusメソッドを実装します。考えられるパターンは、+単項式と、+合計の2つです。Moneyのplusも+合計が考えられます。 まずは式にplusメソッドを定義し…

【TDD】テスト駆動開発入門15章完了

TDD

ようやく、複数種類の通貨の計算です。レートが2:1の場合、5ドル+10フラン=10ドルのテストを追加します。 5ドル+10フラン=10ドルのテスト /** * レートが2:1の場合、5ドル+10フラン=10ドルのテスト */ public function testMixedAddition() { $five_…

【TDD】テスト駆動開発入門14章完了

TDD

14章完了しました。2フランを1ドルに換金できるように実装しました。 責務を考える 銀行にフランからドルへの換金レートを追加し、実際に換金するというテストを追加しました。 見出しにもあるとおり、Money自体がレートについて知っているのはおかしく、銀…

【TDD】テスト駆動開発入門13章完了

TDD

時間がだいぶ立ちました・・・。ようやく13章が終了したのでメモしておきます。 前回仮実装した通貨を変換するメソッドreduceと、そのテストコードに重複があるのでリファクタリングすることから始まります。 // 仮実装 Money::dollar(10); // テストコード …

【TDD】テスト駆動開発入門12章完了

TDD

ついに、加法の実装をします。乗法と等価性長かった・・・ 加法の細分化 加法を示すToDo「レートが2:1の場合、$5 + 10 CHF = $10」を直接始めません。$5 + $5 = $10から始め、小さなテストから実装していきます。 行ったこと(加法) $5 + $5 = $10を確認する…

【TDD】テスト駆動開発入門11章完了【php】

TDD

前回できなかったtimesメソッドの一般化など、大掛かりなリファクタリングになりました。 行ったこと Money#ファクトリメソッド(Franc)をMoneyを返すように修正した Money#timesをnullでなくMoneyを返すように修正した Money#ファクトリメソッド(Dollar)をMo…

【TDD】テスト駆動開発入門10章完了【php】

TDD

ようやく2桁です。 今回行ったこと timesメソッドでのオブジェクト生成にファクトリメソッドを使用しないように戻した 実験として、FrancクラスではなくMoneyクラスを生成できるようにし、抽象クラスから元に戻した しかし、書籍(Java)と同じようにならなか…

【TDD】テスト駆動開発入門9章完了【php】

TDD

blogにソース載せようと思ったけど、今更なのでPart2または2週目からにします。 今回行ったこと 通貨の種類を示すcurrency(メソッド)を導入した 通貨の種類をオブジェクト生成時に決定し、最終的に親クラスで実装した 引数の追加は、以下の手順を踏むように…

【TDD】テスト駆動開発入門8章完了【php】

TDD

今回は、8章オブジェクトの生成に関するメモです。 timesメソッドの戻り値をMoneyクラスに変更。phpのため型を意識しないので、実装していません。 存在を正当化するだけの動作を削除する と書いてありますが、一回読んだだけではよくわからないです・・・。…

【TDD】テスト駆動開発入門7章完了

TDD

今回は、ドルとフランを比較するテストを実装しました。 テスト実装 5ドルと5フランを比較した場合、ドルとフランのレートは違うので等しくないことを確認します。 テストはDollarクラスのテストに実装しました。 Moneyクラスのテストが無いけど直接扱って…

【TDD】テスト駆動開発入門6章完了

TDD

6章が完了しました。 ドルとフランの両通貨に関する共通部分を抽出し、通貨クラス(Moneyクラス)として表現します。 これにより前章のコピペによる重複を削除(リファクタリング)していきます。 Dollarクラスのリファクタリング手順 ・Moneyクラスを作成する …

【TDD】テスト駆動開発入門5章完了

TDD

5章を完了しました。 今回は、ドルとフランのレート換算に必要なフランを表現するオブジェクトを作成しました。 フランにもドルがもつ「乗算、equals」機能を実装します。 しかもコピペで。これはびっくりしました。 コピペについて自分が思ったこと ・グリ…

【TDD】テスト駆動開発入門4章完了【PHPUnit】

TDD

今回はREADMEにも書いてある総計amountのプライベート化です。 ・テストコードにamountを直接使用しないように、3章までに作成したコードで置き換えていきました ・上記により、テストコードがすっきりし、一時変数が減りました ・つまり、テストコードがソ…

【TDD】テスト駆動開発入門2章と3章完了

TDD

設計と解決しなければいけないことに悩みつつも、無事に完了しました。 ・通貨オブジェクトをよく理解していなかったために、実装内容に対する疑問を解くために時間がかかりました ・上記とパターン絡みを通して、簡単な題材してほしいと思いました ・翻訳が…

【TDD】テスト駆動開発入門1章完了

TDD

無事に1章を完了しました。 「php + Eclipse + MakeGood」によるTDDの感想 ・ToDoリストにより、やるべきことを把握できる ・やるべきことが増えた場合にも追加することができる ・Eclipseにtextileのフォーマットがあって視覚的に判断できた ・RED⇒GREENに…

【TDD】やる夫で学ぶTDD

TDD

やる夫で学ぶシリーズは頭に入りやすく楽しいのでメモ。 元:http://twitter.com/#!/oota_ken togetter:http://togetter.com/t/%E3%82%84%E3%82%8B%E5%A4%AB%E3%81%A7%E5%AD%A6%E3%81%B6tdd AA化:http://changegetter1.blog63.fc2.com/blog-entry-1.html

【TDD】テスト駆動開発への一歩【Java】

TDD

TDDの一歩となるおすすめ 車窓からの TDD - オブジェクト倶楽部 内容は、Javaでスタックを作成し、これをJUnitを用いてTDDで開発していく。 感想 とてもためになる。 赤緑リファクタリングのリズムに慣れるのには、少し時間がかかった。 しかし、慣れてしま…