ファイルシステムでHello World
この連載では"ファイルシステムの作り方"をご紹介します。第1回目の今回は簡単なイントロダクションと単純なHello Worldファイルシステムの作り方を説明します。次回以降で詳しい解説と本格的なファイルシステムの作り方をご紹介しようと思います。
作者 Sadek Drobi, 翻訳者 編集部 投稿日 2007年11月8日 午前2時15分
オブジェクト指向のプログラミングを描写するために、オブジェクトは良く”名詞”、またそのビヘイビアを”動詞”として考慮するアクションとして表現され る。これらの動詞は従来的にメソッドとして実装されており、例えばアクションを”実行する”オブジェクトにシステマチックに結合する。最近のブログ掲載の中でReg Braithwaite氏(サイト・英語)は”動詞の定義を所有するべき[…] アクティブなエンティティと二つ目の動詞の定義を所有するべきではない受身のサブジェクトエンティティ間で、明確な違いが必ずしもあるわけではない(source)"ことを指摘している。これは例えば交換可能な動作に適応し、またBraithwaiteはそのケースにおいて、動詞をオブジェクトにリンクすると”コードの重複と情報の漏出”に繋がると示している。同氏はそれが名詞から動詞を引き離し、アブストラクションを後者のレベルに上げるということを論議している。
多分動詞はいくつかオブジェクトに帰属しているが、いくつかはそれ単体でベストなのだろうか?多分 + and <=> and equivalent?はその従属物からオブジェクトに解放され、それ自体独自の定義を所有するべきなのだろうか。
Buko Obele氏(ブログ・英語)はverb/nounメタファーの有効性に挑戦している(source)。同氏は本物の動詞と名詞とは違いオブジェクトとメソッドは互いから独立して存在することはできないことを論じている。
文章中にある”person”という言葉はある特定の動詞[…]の概念に依存していない。実際に私たちは例えば走れない人は人[…]ではないと絶対に言わないだろう。オブジェクト指向のデザイン内ではコンセプトが別々にそれらのメソッドから分離して存在することはないのである。代わりに全体的な要点はそのメソッドによって厳格に構成されているのだ。
更に実際の言語内でメタファーの使用は”全く新たなコンセプトを作り出すのに”、”サブジェクトと動詞と他の純粋な文章論的な懸念”を混同するのを可能に し、これが”並外れてクリエイティブな言語の力”を作り出すものなのである。プログラミング内ではメタファーは存在しない。それゆえにオブジェクトは”ソ リューションを問題に伝達するために”他の概念と統合されるべき非常に制限された概念以外のものでも何でもないということなのである。
Buko Obele氏は動詞と名詞のビジョンを超えて考えるべきであることを論じているが、結果的に彼とBraithwaite氏の結論はオブジェクト指向のプログ ラミングへの従来的なアプローチを問うた同じライン状に存在しているのである。Braithwaite氏がどのようにして動詞を名詞から分離させるのかという見解を提供している一方、Obele氏は”オブジェクトか機能かDSLかもしくはGreat Lispで作業するかどうか”不可欠であると判断したソフトウェアデザインに焦点を当てることを主張している。
原文はこちらです:http://www.infoq.com/news/2007/11/oop-beyond-verb-noun動詞が誰に属しているかという疑問は必ず間違っているのです。その代わりに新たな概念がどのように今存在しているシステムに導入するかということが大切なのです。
[…]
動詞、名詞に関する話題は出発点として実用的ですが、結果的には良く考えて抽象的なカンフースキルを重要なシステムを描写させる必要が出てくるだろう。
この連載では"ファイルシステムの作り方"をご紹介します。第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
返信