InfoQ ホームページ 設計 に関するすべてのコンテンツ
-
TDD/BDDは不完全なユニットテストを招くか?
Peter Ritchie氏は、TDDやBDDにこだわることで、良いユニットテストを書かなくなる傾向があるのではないか、という懸念を表明した。特に「インタラクションテスト(interaction testing)」というマントラは、不完全なユニットテスト、すなわち、どのような条件下で利用されても稼働するユニット(オブジェクト)である、という証明ができていないテストをもたらすと述べている。Peter氏の考えで最も興味深いのは、TDDとBDDのそもそもの意図に対する反対意見と受け取れるところだ。
-
-
依存性注入: 新しい考え方だろうか、それともしっかりした基盤だろうか?
Spring等の依存性注入フレームワークは、疎結合化やユニットテストの改善、アーキテクチャの整理といった点で、本当に多くの開発者に効果をもたらした。アーキテクトとして技術の歴史を知っておくことは、それが一番うまく当てはまる状況や制限、そして今後の方向性を正しく理解するために有益である。
-
スタートアップ企業のLovely ChartsがFlexアプリケーション構築の見識を語る
Webスタートアップ企業のLovely Charts は制限付きのベータリリースを先日発表した。同社のサイトはAdobe Flexを使って作られている。InfoQはLovely Chartsの設立者で首席アーキテクトのJerome Cordiez氏と話し、FlexベースのLovely Chartsのサイトがどのように構築されたかについて見識を得た。
-
C# 3.0 Cookbookが出版
O'Reilly社がベストセラーであるC# 3.0 Cookbookの第3版を出版した。その本はC#3.0と.NET3.5プラットフォーム用にアップデートされている。それにはプログラマ達が日々直面している問題へのレシピが250以上も掲載されている。
-
Article: SOAの10原則
Stefan Tilkov氏が、多くのお客様と関わる中で、SOAの基本的な原則をまとめる必要性を感じています。本記事では、サービス指向アーキテクチャ(SOA)が持つとされる基本原則を紹介します。これらの原則は、絶対的な真理というよりは、SOAに関連した検討を行う際の基準の1つと考えてください。最初の4つは、Don Boxの4つの原則に、個人的な解釈を少し加えて紹介します。
-
プラットフォームの知識ではなくて、多様なデザインスキルを好む
Martin Fowler氏は自身の最新の記事において、チームの構築において一番大切なのは経験でも特定のプラットフォームとビジネスドメインに関する完全なる知識ではなく、むしろ高品質なソフトウェア、また価値をもたらすことができる多様なスキルであると述べている。
-
ケーススタディ:JavaプログラミングスキルをFlexに採用
Adobe Flex Developer Centerで掲載された記事において、Bill Bejeck氏はFlexを用いたコンポーネントの作成、またFlexでのコンポーネントの分け方における自身の経験をJavaデベロッパという立場から述べている。
-
コードは自然言語に近づくにつれ良くなっていくのか?
英語ライクなコードを書くことで可読性と表現性を達成しようとするのは、今日の業界において一つのトレンドとなっている。 Michael Feathers氏はコードの表現性を向上させるための道具になり得る他の代替案を考慮するのを擁護しており、また彼はいくつかの状況においてシンボリックアプローチはナラティブのものよりも適切であることを論じ、その2者間でのトレードオフを強調している。
-
生産性第一主義によって余儀なく下された決断:原因、巻き添え、限界
ソフトウェアプロジェクトにかかわる多数の決断は、生産性が第一に考慮される。プロジェクトが成功し、その市場が成長し、ドメイン知識とクライアントニーズの両方で複雑さが増している場合、特にその傾向が強くなる。適用範囲が予期せぬ転換になる可能性は高く、プロダクトにはカスタマイゼーションが益々必要になる。
-
オピニオン: リファクタリングは必要な無駄
リファクタリングは、アジャイル開発者のツールキットにおいて、キーとなる技術的なプラクティスの一つだ。リファクタリングはまた、顧客にとっての価値としては目立ったものではない。それはまさしく、リファクタリングの定義自体によるものだ - 振舞いを変えずに、構造 (設計) の変更を行う、と言うものだ。リーン・ソフトウェア開発の世界では、顧客にとっての価値を持たないものは全て無駄であり、そして、顧客は振舞い/機能だけを知覚する。構造ではない。
-
プライベートメソッド、テスト駆動開発と優れたデザイン
テスト駆動の開発(TDD)が優れたデザインを促進するという主張が成された。TDDがアーキテクチャとデザインに悪影響を及ぼすという主張も成された。抽象性を論じるよりもそれは少し具体性を加えるので私達はプライベートメソッドと優れたデザインとテスト容易性とその関係性に重点を置くことにした。これは明らかな矛盾の一例である。
-
静的コード解析は、より根の深い不具合を浮き彫りにする
FindBugs, PMD, CheckStyle, IntelliJ IDEAと言った静的コード解析 (Static code analysis:SCA) ツールは、開発者チームにとって、問題を見つけ出し、高いクオリティを保つ助けになる。しかしSCAツールが問題を指摘した際、チームはどう対処すべきなのだろうか?Vikas Hazrati氏の「静的コード解析は、単に氷山の一角にすぎない」と言う記事で示唆している。
-
多すぎるコード行に殺される?
Steve Yegge氏は、彼の最新のブログ記事で、開発者コミュニティの神経を逆なでした。ソフトウェア開発において最も重要なのはコードサイズを最小限にしておくことだ、とSteve氏は主張した。彼の視点からみると、コードの行数を少なく保つためにいくつかのデザインパターンを放棄し、リファクタリングを避ける必要がある、と言うのである。さらに、あなたの抱えている問題が非常に大きいなら - 他のプログラミング言語に切り替える必要があるかもしれない、と言っている。
-