著作一覧 |
まだ、時々追っていたり。
とりあえずテストが死ぬ場所は特定できた。とは言うものの
(@obj2soap[obj_class] ||= []).unshift([soap_class, factory, info])
soap/mapping/registry.rbのここだよ。うーん、次のじゃ再現しない。
class A def initialize @a = {} end def add(b) (@a[b] ||= []).unshift(b) end end a = A.new p a a.add(:a)
で、(@obj2soap[obj_class] ||= []).unshift...
を@obj2soap[obj_class] = [];@obj2soap[obj_class].unshift...
にすると問題なし。(とは言え、さらに進めると最終的には_get_osfhandle
で落ちる。というか、nmake test-allと、cd test;ruby runner.rbで死に方が異なるというのがなんとも……
というとこまで。
Strutsについて思うところを書いてみる。
もし、5人の特攻野郎Aチームなら
(ここにテンプレから生成したキャラクタ紹介が入る)
いらない。より優れた代替を作る、保守する、文句なし。
もし、1人(おれ)なら
いらない。ケースバイケースで対処する。生JSPあり。
もし、1人(おれ以外)なら
やっぱり、いらない。指示が必要ならケースバイケースで考えてやるし、不要な勝手におまかせ、だけど0からフレームワークを作るのは勘弁な。
もし、30人以上のビジネスパートナー混成チームなら、おれはHTML出力チームとビジネスロジックチームと副官に分けるね。副官にはActionとXML、ビジネスロジックチームのサポートを依頼する。おれは、CSSとXMLの管理だ。Strutsはこういう場合にとっても役に立つ。
そういうことだ。
JavaでHTTPサーバーを作るシリーズ第3弾の「自作HTTPサーバーのマルチスレッド化と動作検証」です。
今回は何も考えないマルチスレッド化と、考えたマルチスレッド化であるスレッドプールの実装、これまでと同じくシングルスレッドの3通りの実装です。
無名内部クラスを当然のようにそこにある技術として利用してます。
ジェズイットを見習え |