したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

【悩むが】bbs2chreader 開発スレッド【勝ち】

8 ◆vrSd0N5azM:2008/06/26(木) 21:57:42 ID:HPhh05vU0
構造的な問題について。現在以下の四つの構造の種類を持っています。これを一つ二つに減らしたいです。
-JS XPCOM (components/*.js)
-NSGetModuleを実装していないJS XPCOM (chrome/content/bbs2chreader/components/*.js)
-js module (components/server/*.jsm)
-js class? (その他)

これ、上二つはインターフェース的、下二つはduck typing的に扱う必要があります。また、下の二つはクラスのアクセス制御ありません。
さらに、javascript (下二つ)はプロトタイプチェーンがあり、呼び出されたプロパティが無い場合__proto__へ委譲します。a.xを呼ぶとしてa.xが無ければa.__proto__.xを、それが無ければa.__proto__.__proto__.xをという感じです。なおprototypeに設定したのがnew時に__proto__に移されます。
__proto__は本来readonlyなのですが、geckoでは書き換え可能であり、b2r内でその方法が使われています。
(JS) XPCOMはオーバーヘッドが大きい(はず)です。それとidlをxptにコンパイルしなければいけなかったりと面倒でもあります。あとまぁ型チェックが厳しいですが、欠点かどうかは (ただエラーが易しくない^^)、nsIVariantもあるし。しかし、observerやあるXPCOMのインターフェースを持ったクラスなんかはJS XPCOMで実装する必要がある…ということでも無くちゃんとduck typingできれば問題ないです。ただずっと起動する必要のあり複数ブラウザウィンドウにまたがるサービスなんかはXPCOMで実装しないといけないです…まぁラッパだけXPCOMで十分な気もしますが。それとXPCOM内で無いとシングルスレッドの制限あるかも? というかXPCOMにmutexやsemaphoreってあったっけか? あとXPCOMのAPIは意外と微妙です。
js moduleは外に公開する変数を制限できます…Objectをexportする場合privateな変数も外に出ざるおえませんが。コードからのインポートも容易です…js classもmozIJSSubScriptLoader使えば評価回数を除いてあまり変わらないけど。
js moduleとXPCOMはデバッグ面倒かもです。変更しても再起動するまで保持されます。
ええとつまりそのえーと。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板