ファイルシステムでHello World
この連載では"ファイルシステムの作り方"をご紹介します。第1回目の今回は簡単なイントロダクションと単純なHello Worldファイルシステムの作り方を説明します。次回以降で詳しい解説と本格的なファイルシステムの作り方をご紹介しようと思います。
作者 Rob Thornton, 翻訳者 編集部 投稿日 2007年11月19日 午前3時20分
Rickard Oberg氏がOredevにてQi4jを発表し、また”クラスは終わりでインターフェース万歳”と宣言した。Qi4jはビヘイビアがクラスに置かれなく、代わりにクラスがアノテーションを介したクラス上で宣言されたインターフェースとmixinのコンポジットになるコンポジット指向のプログラミング(source)という、新しいアイディアを導入している。
Qi4jそれ自体はコンポジット指向のプログラミングを全てのJavaデベロッパたちに有効にするために構築されたJavaフレームワークである。コンポ ジット指向のプログラミングは大幅なマインドシフトを要するが、別のツール、言語、もしくはXMLを必要としない。Qi4jアプリケーションはSpringアプリケーション、Webアプリケーションコンテナ、OSGi等の中で動作することが可能である。またQi4jはフレームワークの仕様の知識を不要にするためにアノテーションを多量に使用し、デベロッパをビジネスルールに近づけるものである。このプロジェクトの設立者であるRickard Oberg氏とNiclas Hedhman氏はプレスリリース(source)において下記のように説明している。
長年のJavaフレームワークデベロッパ、また現在ApacheのメンバーであるNiclas Hedman氏は、”Qi4j”がJava 5プラットフォームとエコシステムを利用した、アスペクト指向のプログラミング、DI、ドメイン駆動のデザインから由来したコンセプトを含んだ、ドメイン中心のアプリケーション開発用のフレームワークであると述べている。
”私はドメインエキスパートとデベロッパ間でのコミュニケーションを明瞭にし、ドメインモデルとビジネスルールの焦点を再び合わせるシステムを必要としているのです。”と以前のJBoss、WebworkとXDoclet設立者であるRickard Oberg氏が答えている。
これはフレームワークとパラダイムの最初の発表であるので、ドキュメンテーションとサンプルは未だ未完成である。しかしながらコンポジット指向のプログラミングの最終的なゴールは、オブジェクトを考えることからコンポジットを考えることに移行することなのである。コンポジットは再利用可能な断片(source)から構成されている。断片はQi4jを構築しているブロックである。それらはコンポジット(mixin内で)のステートを持っており、それらの使用を検証、制限し(制約内で)、分野横断的な懸念を処理し(懸念内で)、警告、キャッシュと取り消しマネジメントと他の非同期のニーズ(副作用内で)を提供するす。プログラミングパラダイムへの移行は容易ではない。Oberg氏はコンポジット指向のプログラミングに対する反応を下記のように解説している。
私が今まで一貫して見て来たリアクションは二つあります。今までに学んでしまったろくでもないアイディアを取り除くのに苦戦して頭が痛いというものと、私たちが提案した可能性を理解できて幸せというものです。
Qi4jは未だ新しく不安定である。現時点ではまだ彼らはフレームワークを安定させ、このコンポジット指向のプログラミングのアイディアを発展させコミュ ニティに導入しようとしている段階である。また彼らは人々がこのフレームワークをいきなり使用するレベルには到達していないことを認め(source)、来る2ヶ月間でこの概念を良く理解することを提案している。
原文はこちらです:http://www.infoq.com/news/2007/11/qi4j-intro
日立ビジネス ワイヤレスジャパン2008にモバイル系製品を出展!
F2M&NRI 次世代Eコマースを勝ち抜くソリューション戦略セミナー
この連載では"ファイルシステムの作り方"をご紹介します。第1回目の今回は簡単なイントロダクションと単純なHello Worldファイルシステムの作り方を説明します。次回以降で詳しい解説と本格的なファイルシステムの作り方をご紹介しようと思います。
あなたのチームが、既存アプリケーションを「シングルトンの入れ子」設計から依存性注入(DI)へ移行しようとしているなら、この論文に心引かれるでしょうが、DIへの移行は難しいことが分かっています。論文にはGoogleのJava DIコンテナ(Guice)の名を入れていますが、Javaや.NET、Python、Rubyなどにも当てはまります。
アジャイルの「自己組織化チーム」のパラダイムでは、チームのメンバに新しいスキルが要求されます。この記事では、発展しつつあるチームの自己組織化を壊さずに、新たなスキルを伝えるためのいくつかの戦略を提案します。そして、新しいスキルを身につけるのに役立つ資料のありかを提示しています。
今回の記事では、非同期ワークフローと呼ばれるワークフロー機能の面白い使用法を考察しますが、非同期ワークフローは.NETの非同期プログラミングモデルを単純化することを目的としています。
アーキテクチャは一般に、Word文書に主として見られるような極めて実体のない、ソフトウェアシステムの概念的な側面であるか、または完全に技術によって駆動されるものかのいずれかです。そのどちらも間違っています。では、どう対処すればよいでしょうか? この記事ではアイデアを説明します、そしてアプローチのキーポイントを要約します。
Werner Schuster氏が、簡単な例を示しながら、Javaのようなプロパティをメタプログラミングを使ってRubyに追加する方法を示します。
現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。
ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。
No comments
返信