クラウドコンピューティング ~ EC2、Mosso、GoGrid
クラウドコンピューティングのプロバイダーであるEC2、Mosso、GoGridの新しいユーザーエクスペリエンスと、それぞれの機能の違いについて学びます。
作者 Amr Elssamadisy, 翻訳者 大田 緑 - (株)チェンジビジョン 投稿日 2008年3月27日 午前6時55分
もしあなたがテスト駆動開発 (TDD) を始めたばかりならば、次のようなよくある質問で苦労しているかもしれない。
- どれくらい事前設計をするのでしょうか?どうすればいつやめるかわかるのでしょうか? (例えば、アルゴリズムが議論され始めたら、それはテストするときだというように。)
- 「必要だとわかっている」ことはどうしますか? (例えば、コンソールのmain()メソッドで、try/catch{Console.WriteLine(ex);} を入れますか?)
- テストを書く時に、コンパイルを通すためだけに、1つ2つインターフェースを書いたり、NotImplementedException入りのクラスを書いたりしなければなりません。これはどれくらいやればよいのでしょうか?
- もし、ストーリーのテスト中に事前設計が正しくないとわかったら、テストを止めてその場でペアと話し合い、やるべきことをしてからテストを続けますか? それとも、いったん戻って完全にそのストーリーをテストする前の設計状態に戻りますか?
- 新しいストーリーを進めているとき、前のストーリーのために書いたテストがもはや要求を満たしていないと気づいたとします。あなたはすぐにテストをリファクタリングしますか?それとも新しいストーリーが終わるまで印をつけておき後で戻ってきますか?それとも他のことをしますか?
- もし新しいストーリーの要求によって既存のテストにちょっとした修正が必要である場合、修正しますか? それとも新しいテストを作って古いものは捨てますか?(例えば、「既存のテストは変更しない!」とか「コンパイルを通すだけのちょっとした変更なら許すが、それ以外は変更しない」など。)
- 例えば、モデルを構築してテストが通ったとします。けれども、現在のモデルでは不十分で、続くいくつかのストーリーで大幅な変更を加えて新しいモデルを作ることがわかっています。その場合、一度戻って大きなリファクタリングを検討したほうがよいでしょうか。それとも、想定外の作業が発生するとわかっていても、そのまま既存のモデルに変更を加えますか?
Derick Bailey氏はChadが挙げた質問について彼の考えを示した(source)。彼はきわめて慎重に、これらは彼の経験に基づく彼自身の意見であり、効果があるかどうかは人それぞれだと述べた。彼の回答の1つは以下の通りである。
- 何を構築すべきかわかるまでです。
個々のプロジェクトに応じて、回答が変わります。よく検討してください。私は最近、企業統合プロジェクトを構築しました。それはコアメンテナンスシステムを使い、それに加えていくつかオフライン時の操作も必要とされていました。このプロジェクトで、私はそれほど事前設計をしませんでした。私は、このシステムが分離された状態で操作する必要があることを知っていました。誰もコンピュータにログインしていなくても、ソフトウェアが動いていなくても操作できる必要があることも知っていました。そして、マスタメンテナンスシステムで双方向のコミュニケーションが可能で、メンテナンスに関連するタスクのみ機能する必要があることも知っていました。私は、ほんの少しの仮定 / 事前設計で始めました。それは、コアプロセスを実行するためにWindows Serviceを構築し、UIを扱うためにクライアントサーバアーキテクチャを構築し、コミュニケーションの要求をサポートするためにメッセージシステム上に構築することでした。ここから先は、上記のタスクの機能要求によって、ソフトウェアの構築段階でプロジェクトの設計が進んでいきました。
逆の例として、最近私は、研究所のシステムを構築しているチームと働いてきました。そこでは、顧客からの要求と顧客が要求したプロセスがあり、顧客が持っている既存データの変換が必要でした。そのため、データ変換と機能的要求が提案した解決策で実現できるか見極めるため、多くの事前設計が必要でした。システムの主な設計は事前にわかっていました。しかし、その実装はソフトウェア構築中、ずっと未完成だったのです。
もしあなたがTDDを始めたばかりならば、おそらくこういった疑問を持ったことがあるだろう。答えを見つけるのに最もよい場所は、地元のユーザグループやオンライン開発者を中心とした数あるメーリングリストの中で実際に経験した人達に出会うことである。もし、反対にあなたがTDD経験者であるならば、どうかこれらの質問に答えてあげてほしい。
原文はこちらです:http://www.infoq.com/news/2008/03/tdd-smells
UTI 不合格なら再受験無料!秋のチャレンジキャンペーン実施中
先着5社まで無料でオープンソースソフトウエアのサポートを提供
クラウドコンピューティングのプロバイダーであるEC2、Mosso、GoGridの新しいユーザーエクスペリエンスと、それぞれの機能の違いについて学びます。
パート2では、ベンチマークの結果を検証するために用いられるテクニックについてさらに深く見ていきたいと思います。最後に、「なぜプロセッサが異なるとロックのコストも大きく異なるのか」と言う真の疑問に答えます。
本稿では、Stefan Tilkov氏が「RESTful」な設計であると主張するアプリケーションに見受けられる最も一般的なアンチパターンのいくつかについて説明し、それらを避けるための方法を提案しています。
Sven Efftinge氏、Peter Friese氏とJan Köhnlein氏が、MDDを取り入れて成功した経験から、ベストプラクティスの解説を行います。
Our panel of leading experts explores some of the challenges and thought processes that go into making their apps as scalable and performant as possible.
この記事は、Spring 2.5で導入されたアノテーションを探究する3部作の第2弾です。Web層におけるアノテーションのサポートを扱います。最後の論文では、統合と検査で利用できる追加機能を説明する予定です。
私は「浴衣」を着てパーティーに参加したことで、たくさん声を掛けていただけました。 そこで感じたことは、このカンファレンスが人との繋がりを生み出し、また言葉の壁を越えて積極的に交流する場所であることです。民族衣装はそれらを助けてくれるものでした。きっとこの交流が、新たなムーブメントをアジア圏の仲間たちにも与えてくれると確信しています。
No comments
返信