InfoQ ホームページ 設計 に関するすべてのコンテンツ
-
生産性第一主義によって余儀なく下された決断:原因、巻き添え、限界
ソフトウェアプロジェクトにかかわる多数の決断は、生産性が第一に考慮される。プロジェクトが成功し、その市場が成長し、ドメイン知識とクライアントニーズの両方で複雑さが増している場合、特にその傾向が強くなる。適用範囲が予期せぬ転換になる可能性は高く、プロダクトにはカスタマイゼーションが益々必要になる。
-
オピニオン: リファクタリングは必要な無駄
リファクタリングは、アジャイル開発者のツールキットにおいて、キーとなる技術的なプラクティスの一つだ。リファクタリングはまた、顧客にとっての価値としては目立ったものではない。それはまさしく、リファクタリングの定義自体によるものだ - 振舞いを変えずに、構造 (設計) の変更を行う、と言うものだ。リーン・ソフトウェア開発の世界では、顧客にとっての価値を持たないものは全て無駄であり、そして、顧客は振舞い/機能だけを知覚する。構造ではない。
-
プライベートメソッド、テスト駆動開発と優れたデザイン
テスト駆動の開発(TDD)が優れたデザインを促進するという主張が成された。TDDがアーキテクチャとデザインに悪影響を及ぼすという主張も成された。抽象性を論じるよりもそれは少し具体性を加えるので私達はプライベートメソッドと優れたデザインとテスト容易性とその関係性に重点を置くことにした。これは明らかな矛盾の一例である。
-
静的コード解析は、より根の深い不具合を浮き彫りにする
FindBugs, PMD, CheckStyle, IntelliJ IDEAと言った静的コード解析 (Static code analysis:SCA) ツールは、開発者チームにとって、問題を見つけ出し、高いクオリティを保つ助けになる。しかしSCAツールが問題を指摘した際、チームはどう対処すべきなのだろうか?Vikas Hazrati氏の「静的コード解析は、単に氷山の一角にすぎない」と言う記事で示唆している。
-
多すぎるコード行に殺される?
Steve Yegge氏は、彼の最新のブログ記事で、開発者コミュニティの神経を逆なでした。ソフトウェア開発において最も重要なのはコードサイズを最小限にしておくことだ、とSteve氏は主張した。彼の視点からみると、コードの行数を少なく保つためにいくつかのデザインパターンを放棄し、リファクタリングを避ける必要がある、と言うのである。さらに、あなたの抱えている問題が非常に大きいなら - 他のプログラミング言語に切り替える必要があるかもしれない、と言っている。
-
-
Article: Spring 2.5の新機能―Part 1
この記事は、Springフレームワークの新機能を探求する3回シリーズの第1回目です。今回の記事では、Springアプリケーショ���・コンテキストの中核に位置する簡略化されたコンフィギュレーション並びに新しいアノテーションベースの機能性に焦点を当てます。
-
Aptana Studio 1.0がリリース: RadRailsのアップデートとAptana Studioの商用版が登場
Aptana IDEは、現在AptanaStudioと改名されたが、Web開発者のためにEclipseベースのIDEを作成しようという目的でベンチャーキャピタルから支援を受けて開発されている。Aptana Studioが、AdobeのAIRアプリケーションやiPhone上でのAjaxアプリケーションの開発のサポートをしていることから分かるとおり、Aptana Studioは、新しいトレンドについていこうとしている。
-
Naked Objects に、Java1.5、インジェクション、Hibernate が追加される
Naked Objects はドメインオブジェクトが中心的役割を担うアプリケーションを開発するためのアーキテクチャパターンでありフレームワークである。Naked Objects アプリケーションにおけるドメインオブジェクトはユーザインターフェースの中心部を形成し、開発作業の焦点である。このNaked Objects が最近バージョン3.0をリリースした。
-
Qi4jがComposite Oriented Programmingを発表
Rickard Oberg氏がOredevにてQi4jを発表し、また”クラスは終わりでインターフェース万歳”と宣言した。Qi4jはビヘイビアがクラスに置かれなく、代わりにクラスがアノテーションを介したクラス上で宣言されたインターフェースとmixinのコンポジットになるコンポジット指向のプログラミングという、新しいアイディアを導入している。
-
Volta: アーキテクチャファクタリングとリファクタリング
Erik Meijer氏は"世の中が次第にサービスモデルとしてのソフトウェアに移行していくに連れ、私たちは通常のプログラマーたちがアプローチできる分配システムを構築する実践的なソリューションを考えなければいけません。"と述べている。またVoltaのArchitecture Refactoringが先日SAFにて紹介された。
-
柔軟性、構造安定性のデザイン: 非同期メッセージモデル、OOPとFunctional Programming
Pragmatic Programmersによると、オブジェクト指向のプログラミングにおいては”データを尋ねるよりもむしろオブジェクトに頼む”ほうが好ましいということだ。またFeathers氏は適応性と強固性の向上に役立つかもしれない非同期のメッセージを使用するほうが効率的であることを議論している。これによって純機能的なプログラミングの規則に反しているものの、Erlangが位置づけされる。
-
Javaデベロッパ用のActionScript Virtual Machineを理解する
ActionScript Virtual Machine 2(AVM2)はActionScript 3.0(AS3)バイトコードをFlash Player 9ランタイム内で実行する。Action Script 3はオブジェクト指向のプログラミング言語で、Adobe FlexとAIR内でFlashベースのアプリケーションを構築する際に使用されている。
-
Active Recordパターンを使用中の柔軟性の保持
Rails、Hibernate、他のORMツールに使用されているActive Recordパターンはdatabase rowのオブジェクトへのマッピングを許容するデータ持続パターンである。しかしながらこの実用的なツールはBob Martin氏によると混乱の源であるそうだ。 柔軟性を保つにはBob Martin氏はActive Recordをアプリケーションから分離させることを提案しており、そうすることによって後者はオブジェクトの周りで単一でデザイン、また構成することができるのである。
-
オブジェクト指向プログラミング:より良いデザインのために動詞・名詞のメタファーを超えて考える
オブジェクト指向のプログラミングにおいて、オブジェクトは従来的にオブジェクトのメソッドとして実装され、そのビヘイビアを決定するアクションと結合されている。Reg Braithwaite氏はいくつかのケースにおいてその二つを分離させることに関連していることを述べている。またBuko Obele氏は通常オブジェクト指向のデザインに使用されている動詞・名詞メタファーを超えて考慮し、OOPへの従来的なアプローチを問うている。