デジタルちんぶろぐ

デジタルな話題

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  268  : 記事  0  : コメント  4419  : トラックバック  79

ニュース


技術以外は
ちんぶろぐ

記事カテゴリ

書庫

日記カテゴリ

初めての書き込みなので何を書こうか迷うのですが、ありきたりな話題で。

きわめて現実に近いフィクションの話です(仕事ではC++使用禁止、使用できる部署でもtemplateは使用禁止らしいから、デバドラでデバイスオブジェクトをコンテナに突っ込むなんて論外)。

職場では主にATAのドライバとファイルシステム関係の作業をしているのですが(人が作ったものの改造)、ATAドライバへ対応コントローラを追加する必要が出ました。

ハードディスクやDVDドライブへは簡単に書くと

アプリケーション→ファイルシステム→ATAドライバ→ATAマクロ(コントローラ)→HDD/DVD

の経路でアクセスすることになります。

で、ATAドライバから見るとATAマクロがありHDD/DVDが有る訳です。ここにコントローラが追加されるのだから、最初はコントローラオブジェクトを追加し、ATAドライバからはコントローラ経由でデバイスへアクセスするのが普通の流れだなと考えていたわけです。

こんな感じ

class ata_device {

// 実装

};

class ata_macro {??????? // ATAマクロの基底クラス

??? ata_device device[2];??? // Master/Slaveで2台分
}

vector macro;

このように定義するとmacro[n].device[m]みたいにHDD/DVDへアクセスすることになる訳ですよね。

これは物理的な機器接続を考えると自然なんですが、デバイスが1台しか接続されていないコントローラや、物理的に1台しか接続できないコントローラがあったりすると、上位層(ファイルシステム)に対して連番もしくは連続名(/dev/hda,/dev/hdbみたいに)にならないのでちょっと面白くないです。

そんなことを考えていたときに職場のとある人に話してみたら、デバイス主体で考えろと言われました。

つまり、

class ata_device {

??? ata_macro& macro;

}

vector device;

これで、アクティブなデバイスのみをコンテナに入れると。

自分的にはこの実装は

アプリケーション→ファイルシステム→HDD/DVD→ATAマクロ

となっているようで非常に気持ちが悪かったのですが、上位層から見ればHDD/DVDへアクセス出来れば良くてATAマクロなんて関係ないからこの実装の方が良いと思えてきました。ストラテジパターンみたいなものなのかな(違うかも)。

こういうの書くの初めてなのでわかり難かったらごめんなさい。

 

# あれ?名前が出てない

 

投稿日時 : 2006年12月5日 11:05

コメント

# re: 物理的な繋がりとプログラム 2006/12/06 2:05 アクア
ごめんよ、誰だか解らない。Authorさんでいいのかな?>_<
(1げと の為むやみに突入したのはここだけの話。)

アクア@わんくま山口分署@ネタ切れ気味 と申します。
どうぞよろしくお願いいたします。

# re: 物理的な繋がりとプログラム 2006/12/06 10:28 スーパーあんどちん
>> アクアさん
1げとのためでもコメントを書いていただいてありがとうございます。

名前はどうやったら登録できるのか知らないので…返信しか名前が付けられないと思います(聞けばいいだけ?)。

こちらこそよろしくお願いします。

# re: 物理的な繋がりとプログラム 2006/12/06 18:41 アクア
そうかぁ…これってほとんどデフォルトの値だったのですね。
あらためまして、どうぞ宜しくお願いいたします。

# re: 物理的な繋がりとプログラム 2006/12/07 5:56 taka
じゃぁ4ゲトー
taka@浦和.さいたま.埼玉と申します。

Authorはブログのデフォルト値でしたね確か、
今後とも宜しくお願いします。

#確か名前の変更は管理ページのオプションにあるはずです。

# re: 物理的な繋がりとプログラム 2006/12/07 10:42 のぶさん
先月加入したものです~
のぶさんと言います。
よろしくお願い致します(^^

# re: 物理的な繋がりとプログラム 2006/12/07 12:47 スーパーあんどちん
>> takaさん
>> のぶさん(さん)
こちらこそよろしくお願いします。
これからもきっと書くネタにMS的な匂いは少ないと思いますが…


# re: 物理的な繋がりとプログラム 2006/12/15 22:34 とっちゃん
えっと、悩んだ挙句にここへw

とっちゃん@わんくま横浜支部西方分室@2次会だけちょっと乱入w です。<なげーよ!

組み込み系はさっぱりですがw
衛星通信が実用化されると、かなり期待が持てるんですよねぇw<カーナビのオンラインアップデート

AJAX(要は非同期通信のブラウザ版)がカーナビにまで浸透するかはわからんですが
カーナビをブラウザで実現はあんまり意味ないので、今のベースで行くなら、地図データをHDDにキャッシュしていくという方向で進化すると思いますね。

あとは、GIS(多分知ってると思いますけど)がひそかに注目を浴びてるので、こっち方面で伸びていくってのはあるかな?
いずれにしても、XML は避けては通れないところになりつつあるので、UIよりのチームではその辺研究してると思いますよw

# re: 物理的な繋がりとプログラム 2006/12/16 9:38 ひろえむ
ひろえむ@わんくま東京練馬from大阪です。
ひとつよろしくお願いしますm(__)m

# re: 物理的な繋がりとプログラム 2006/12/16 13:48 スーパーあんどちん
>>とっちゃんさん
確かにカーナビをブラウザでって言うのは意味が無いように感じます。とはいえ先が見えない業界ですから何が起こるかわかりません。
言われるように地図データをサーバからダウンロードしてきてHDDにキャッシュするというのは当然考えられると思います。
GIS知りませんでした。
サーバに地図をおくメリットって最新の情報に常にアップデート出来ることもそうなんですが、逆にサーバにあればどれだけ古いデータでも取り出せるっていうところにもあるんです。
例えば「5年前にこの辺にコンビニがあったはず」と思ったときにそのころの地図を出すとか。

>>ひろえむさん
こちらこそよろしくお願いします。
今回の大阪は行けませんが、また都合がつけばどこかの勉強会に参加しますのでそのときはよろしくです。



Post Feedback

タイトル
名前
Url:
コメント: