Featured image of post コードカーペンター【Parameterize Constructor】「柱ごと、外から渡すんですか」〜中で作っていた相手を、渡しても渡さなくても建つ形にする〜

コードカーペンター【Parameterize Constructor】「柱ごと、外から渡すんですか」〜中で作っていた相手を、渡しても渡さなくても建つ形にする〜

二階の勘定場の記帳を検めたいのに、組み立てた途端に本物の大福帳が開いてしまう。中で作られた相手には名前が無く、local も届かない――コンストラクタのパラメータ化(Parameterize Constructor)で、渡しても渡さなくても建つ形にします。

Featured image of post コードカーペンター【Extract and Override Call】「検めのときは、桶をつけずに縄を引くんですか」〜同じ動きのまま、下ろす先の中身だけを差し替える〜

コードカーペンター【Extract and Override Call】「検めのときは、桶をつけずに縄を引くんですか」〜同じ動きのまま、下ろす先の中身だけを差し替える〜

配達伝票の郵便番号引き当てが検めのたびに外部へ問い合わせてしまう。local は取り込んだ先には届かない――呼び出しの抽出とオーバーライド(Extract and Override Call)で検め用のサブクラスへ差し替えます。

Featured image of post コードカーペンター【Sprout Class】「今の蔵には、置けないんですね」〜既存に入らないなら、新しい部材を別に起こす〜

コードカーペンター【Sprout Class】「今の蔵には、置けないんですね」〜既存に入らないなら、新しい部材を別に起こす〜

蔵に新区分「混載」を設けたい依頼が来る回。既存の在庫クラスは帳簿ファイルを開くコンストラクタを持ち、テストの中で組み立てられません。芽生やしクラス(Sprout Class)で判定ロジックを別クラスに起こし、既存へは委譲だけを足します。

Featured image of post コードカーペンター【Seam】「もう、外せる所だったんですか」〜書き換えずに手を入れられる継ぎ目を探す〜

コードカーペンター【Seam】「もう、外せる所だったんですか」〜書き換えずに手を入れられる継ぎ目を探す〜

店の間の建具を直すついでに、値札の税率計算を確かめたいという依頼が来る回。差し替える場所が無いように見えるが、実はパッケージ境界そのものが継ぎ目(Seam)になっていて、Perlのシンボルテーブルをlocalでテストの間だけ差し替えます。