タグ

2011年6月24日のブックマーク (3件)

  • なぜDIコンテナを使うのか

    DIコンテナのメリット、そして課題 ■DIによる単体テストの促進 筆者はさまざまな開発現場で仕事をしていますが、テスティングフレームワークを活用しているプロジェクトは少ないように感じます。理由はさまざまですが、テストコード自体が書きづらいということも理由として挙げられるようです。この記事でお伝えしている筆者の現在のプロジェクトでは、DIを使うことでテストコードが書きやすくなったため、単体テストを実施しやすくなり開発効率を向上することができました。 テストコードが書きづらい理由の1つに、“依存性の問題”があります。つまり、1つのテストコードを記述するには、依存するクラスまで含めて検証しなければならないのです。 このため依存するクラスにバグや未完成な部分があるとテストができませんし、依存するクラスの変更があった場合はテストコードを作り直さなくてはならなくなります。リスト6のJuchuImplク

    なぜDIコンテナを使うのか
    rintetra
    rintetra 2011/06/24
  • 矢沢久雄の早わかりGoFデザインパターン(1) | 日経 xTECH(クロステック)

    今回は、パターンを1つだけ紹介します。「Mediatorパターン」です。GoFでは、それぞれのパターンの「目的]「背景」「効果」などが明示されています。私も、ちょっと真似をしてみましょう。複数のオブジェクトを組み合わせてプログラムの機能を実現するという目的において、オブジェクト間の関連がゴチャゴチャになってしまうという背景(問題)があり、Mediatorパターンの採用によって関連をキレイに整理できるという効果があります。説明だけでは、何のことだかわからないと思いますので、具体例をお見せしましょう。 図1[拡大表示](1)をご覧ください。これは、UML(Unified Modeling Language、ユーエムエル)と呼ばれる表記法で記述されたプログラムの設計図です。UMLでは、四角形の中に下線付きで名前を書いてオブジェクトを表し、関連のあるオブジェクトを矢印で結んで示します。ここで関連

    矢沢久雄の早わかりGoFデザインパターン(1) | 日経 xTECH(クロステック)
  • いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して

    正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと

    いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して