第3章 ポートフォリオ ポートフォリオ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
小銭は賢く、ドルは愚かだ。1
疲れたことわざ
私たちは1つの通貨の金額を数字で掛けたり割ったりすることができる。今度は複数の通貨の金額を足す必要がある。
5 USD x 2 = 10 USD |
10ユーロ×2=20ユーロ |
4002 krw / 4 = 1000.5 krw |
5米ドル+10ユーロ=17米ドル |
1 USD + 1100 KRW = 2200 KRW |
|
この章では、通貨の混合モードでの追加を扱う。
次のテストを設計する
次の機能(5米ドル+10ユーロ=17米ドル)をテストドライブするためには、まずプログラミングがどのように進化していくかをスケッチすることが有益だ。TDDは、一般的な神話に反して、ソフトウェア設計とうまく調和する!
機能リストにあるように、1ユーロの両替で1.2ドルもらえるとして、5ドルと10ユーロの合計は17ドルになるはずだ。
しかし、それは同じことだ:
1 EUR + 1 EUR = 2.4 USD
いや、むしろ明らかだ:
1 EUR + 1 EUR = 2 EUR
啓示である!2つ(またはそれ以上)のMoney エンティティを加算する場合、関係するすべての通貨間の為替レート(つまり、それぞれのMoney の通貨から、結果を表現したい通貨へ)さえわかっていれば、結果はどの通貨式でも表現できる。これは、関係するすべての通貨が同じであっても同じである。
チップ
テスト駆動開発では、RGRサイクルが終わるたびに一時停止し、意図的にコードを設計する機会を与えてくれる。
ドルにドルを足すとドルになる」というのは単純化しすぎである。 一般的な原則は、異なる通貨でMoney を足すと、Portfolio となり、(通貨間の必要な為替レートがあれば)いずれかの通貨で表すことができる、というものである。
Portfolio ?その通りだ!コードにドメインの現実を反映させることが重要なのだ。私たちは、保有株のコレクションを表すコードを書いている。2
2つ以上のMoney エンティティを追加すると、Portfolio が得られるはずである。このドメインモデルを拡張して、evaluate Portfolio を任意の特定のcurrency で実行できるようにすることもできる。これらの名詞と動詞は、コード内の新しい抽象化についてのアイデアを与えてくれる。
チップ
問題領域の分析は、新しいエンティティ、関係、関数、メソッドを発見する効果的な方法である。
この新事実を踏まえて、まず同じ通貨で2つのMoney ・エンティティを追加するという単純なケースを追加し、複数通貨のケースは後回しにしよう:
5 USD x 2 = 10 USD |
10ユーロ×2=20ユーロ |
4002 krw / 4 = 1000.5 krw |
5米ドル+10米ドル=15米ドル |
5米ドル+10ユーロ=17米ドル |
1 USD + 1100 KRW = 2200 KRW |
|
この機能を構築しよう:Money エンティティを一緒に追加する。まずは、Portfolio を新しいエンティティとして使って、同じ通貨で2つのMoney エンティティを追加するテストから始めよう。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access