2020-03-01から1ヶ月間の記事一覧
7章に入る。 ドルとフランは比較できるのだろうかという疑問をテストに書いてみるところから始まる。 この本のコードでは、equalsメソッドはObjectを受けているので、ドルとフランは区別なく 扱われ、スイス経済に大打撃を与えている。 一方、私のRustの実装…
5章「原則をあえて破るとき」に入る。 この章は、クソコードを作って終わり。 ただし、これをどうにかしないうちは家に帰らないことも誓う。 とりあえず、今まで作ったドルとは別にフランを作る。それも単なるコピペで作る。 フラン・・・そんな通貨単位はも…
4章「意図を語るテスト」に入っていこう。 amountという内部構造がインターフェースとして外に出ているのは 見づらいし良くないよねということでリファクタリングしている。 もっともだ。 そもそも、こちらにはコンストラクタすらないので、このタイミングで…
3章「三角測量」に入る。 DollarをValue Objectにしたいと言い出す。等値であることをチェックできるようにするのだと。 Value Objectというパターンに馴染みはないんだけど、 オブジェクトを値として扱うことにはいろいろな難しさがあることは知っている。 …
2章「明白な実装」に入る。 仕様が変わった。timesメソッドはDollarを返す様になった。 あ、今、私のtypoも見つかった。DollarじゃなくてDollerになってる・・・。 ともあれ、仕様変更の結果、テストはこうなった。 #[test] fn test_multiplication() { let …
いよいよ「テスト駆動開発」に入っていこう。 まずは、P4の最初のテストだ。おもむろに存在しないDollerクラスをnewして、 ありもしないtimesメソッドやamountフィールドを参照している。テストファーストなのだ。 ・・・Rustでデータ型を表現するのはどうす…
最初にやるのは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 …
社内で、ケント・ベックの「テスト駆動開発」を写経する会を立ち上げて、アドバイザーみたいなことをやることになった。良いコードを書くにはまだ及ばないが、酷いテストコードを直す経験ならちょっとしたものである(笑)。 とりあえず、参加メンバーはあまり…