サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
www.fieldnotes.jp
実行時に、依存オブジェクトを入れ替えられるようにするには、SUTをどう設計したらよいだろうか? 依存するオブジェクトを、他のオブジェクトから受け取って、使うようにしたらいいよ。 Also known as Service Locator, Object Factory, Component Broker, Component Registry コードは、クラス、オブジェクト、モジュール、プロシージャなど、たいていは何かに依存しているものですが、あるコードの断片に対してユニットテストしようとした場合、依存関係から分離独立した状態でテストをしたくなるものです。しかし、そういった分離は、クラス名がそのままハードコードされていたりすると、難しい問題です。 Dependency Lookup は、自動化テストの間だけ、SUTとその依存関係にあるものの結合を分離する方法のひとつです。 How It
Test Double は実際のコンポーネントと置き換えてテストに使われるオブジェクト/コンポーネントだ。どのような理由で使うにしろ、Test Double は次の 4 タイプに分類できる。 Dummy Object は、単なる帳尻合わせとして SUT に引数(や引数の属性)として渡される、実際には使われないオブジェクトだ。 Test Stub は SUT が依存している現物オブジェクトを置き換えてテストから SUT への間接的入力を制御可能にするオブジェクトだ。テストから SUT に対して普段経験しないような動きを強制させることもできる。 Test Spy は Test Stub の進化系で、 SUT からの間接的出力を覚えておき、SUT を叩いた後でテストが SUT からの間接的出力を検証するために使う。 Mock Object は SUT が依存している現物オブジェクトを置き換えてテ
良い名前の重要性 名前が重要なのは、それがコミュニケーションの主要な部分となるからだ。名前とは、何らかの概念に対してつけたラベルである。良い名前をつければ、その概念についてのコミュニケーションがしやすくなる。すでにその概念を知っている人どうしのやりとりではもちろん、その概念を知らない人とのやりとりでも特にそうだ。こんな例を考えてみよう。 パターンを書き始めたばかりの頃、私は第一回のPattern Languages of Programs (PLoP) カンファレンスに参加した。そのカンファレンスで、かの有名なJim Coplien (親しい人たちからは “Cope” と呼ばれている) がorganizational patternのパタンランゲージに関するワークショップを行った。そのときのパターンの一つに“Buffalo Mountain”というものがあった。そのほかには“Archite
みなさんは、自分が始めた書いたプログラムのことを覚えていますか? 私はよく覚えています。初期の PC でちょっとしたグラフィックスのプログラムを書いたんです。私がプログラミングを始めたのは友人たちよりも後になってからのことでした。もちろん、子供のころからコンピュータは目にしていましたとも。はじめてミニコンピュータを見たときは本当に衝撃を受けたのを覚えています。でもそれから何年もの間、私はコンピュータの前に座るチャンスさえありませんでした。ティーンエイジャーになったころ、友人の中に TRS-80 を買う人たちもでてきました。私も興味をひかれたのですが、それと同時にちょっとした恐れも感じていました。ちょっとでもコンピュータを触ってしまったら、きっとそれにハマッてしまうことは確実だったからです。それはもうとてつもなくクールに見えたのです。なぜそこまで冷静になれたのかは覚えていないのですが、とにか
第1回2009/3/28(Sat) 第2回2009/5/9(Sat) 第3回2009/6/27(Sat) 第4回2009/8/1(Sat) 第5回2009/8/29(Sat)2009/9/6(日) 第6回2009/9/26(Sat)(予定)2009/10/4(Sun) 第7回2009/10/24(Sat)(予定)2009/11/14(土) 第8回2009/12/20(Sun) 第9回2010/2/13(Sat) スパム対策のため、ページ編集やコメント投稿時に認証が求められます。 認証ダイアログに表示されるユーザ名とパスワードを入力してください。
第1回2009/3/28(Sat) スパム対策のため、ページ編集やコメント投稿時に認証が求められます。 認証ダイアログに表示されるユーザ名とパスワードを入力してください。
@@ -144,7 +144,7 @@ ||[[Extract and Override Getter|担当割当表/Extract and Override Getter]]||川西|| ||[[Extract Implementer|担当割当表/Extract Implementer]]||川西|| ||[[Extract Interface|担当割当表/Extract Interface]]||川西|| -||[[Introduce Instance Delegator|担当割当表/Introduce Instance Delegator]]|||| +||[[Introduce Instance Delegator|担当割当表/Introduce Instance Delegator]]||t-wada|| ||[[Introduce Static Setter|担当割当
Michael C. Feathers Working Effectivelry With Legacy Codeの読書会を企画しています。 Working Effectively With Legacy Code(Michael C. Feathers)
第1回2008/5/31(Sat) Preface 〜 Chapter 5 第2回2008/7/5(Sat) Chapter 6 〜 Chapter 8 第3回2008/8/2(Sat) Chapter 9 〜 Chapter 12(途中) 第4回2008/9/14(Sun) Chapter 12, 14 〜 19 第5回2008/10/11(Sat) スパム対策のため、ページ編集やコメント投稿時に認証が求められます。 認証ダイアログに表示されるユーザ名とパスワードを入力してください。
このページを最初にブックマークしてみませんか?
『www.fieldnotes.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く