Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

2020-03-01から1ヶ月間の記事一覧

ケント・ベックの「テスト駆動開発」の写経をRustでやってみる(8)

7章に入る。 ドルとフランは比較できるのだろうかという疑問をテストに書いてみるところから始まる。 この本のコードでは、equalsメソッドはObjectを受けているので、ドルとフランは区別なく 扱われ、スイス経済に大打撃を与えている。 一方、私のRustの実装…

ケント・ベックの「テスト駆動開発」の写経をRustでやってみる(7)

5章「原則をあえて破るとき」に入る。 この章は、クソコードを作って終わり。 ただし、これをどうにかしないうちは家に帰らないことも誓う。 とりあえず、今まで作ったドルとは別にフランを作る。それも単なるコピペで作る。 フラン・・・そんな通貨単位はも…

ケント・ベックの「テスト駆動開発」の写経をRustでやってみる(6)

4章「意図を語るテスト」に入っていこう。 amountという内部構造がインターフェースとして外に出ているのは 見づらいし良くないよねということでリファクタリングしている。 もっともだ。 そもそも、こちらにはコンストラクタすらないので、このタイミングで…

ケント・ベックの「テスト駆動開発」の写経をRustでやってみる(5)

3章「三角測量」に入る。 DollarをValue Objectにしたいと言い出す。等値であることをチェックできるようにするのだと。 Value Objectというパターンに馴染みはないんだけど、 オブジェクトを値として扱うことにはいろいろな難しさがあることは知っている。 …

ケント・ベックの「テスト駆動開発」の写経をRustでやってみる(4)

2章「明白な実装」に入る。 仕様が変わった。timesメソッドはDollarを返す様になった。 あ、今、私のtypoも見つかった。DollarじゃなくてDollerになってる・・・。 ともあれ、仕様変更の結果、テストはこうなった。 #[test] fn test_multiplication() { let …

ケント・ベックの「テスト駆動開発」の写経をRustでやってみる(3)

いよいよ「テスト駆動開発」に入っていこう。 まずは、P4の最初のテストだ。おもむろに存在しないDollerクラスをnewして、 ありもしないtimesメソッドやamountフィールドを参照している。テストファーストなのだ。 ・・・Rustでデータ型を表現するのはどうす…

ケント・ベックの「テスト駆動開発」の写経をRustでやってみる(2)

最初にやるのはcargo newである。 > cargo new money Created binary (application) `money` package > cd money > ls -la total 16 drwxr-xr-x 6 tambara staff 192 3 20 17:48 . drwxr-xr-x 3 tambara staff 96 3 20 17:48 .. drwxr-xr-x 8 tambara staff …

ケント・ベックの「テスト駆動開発」の写経をRustでやってみる(1)

社内で、ケント・ベックの「テスト駆動開発」を写経する会を立ち上げて、アドバイザーみたいなことをやることになった。良いコードを書くにはまだ及ばないが、酷いテストコードを直す経験ならちょっとしたものである(笑)。 とりあえず、参加メンバーはあまり…