ひがやすを技術ブログ

電通国際情報サービスのプログラマ

基礎の必要性

そんなの問題外だ、というくらい基礎中の基礎が抜けていたとしても、Seasar2プロダクトは使えてしまいます。

Seasar2で目指しているのは、基礎のできない人でも使えるということではなく、機械的にできるような非本質的な作業はできる限り自動化し、開発者が本来やらなければいけないことに集中できるようにすることです。
私は、性善説に基づいているので、最初は良くわからずに作っていた開発者も周辺の技術に興味を持ち、いろいろ勉強してくれるだろうと信じてきます。最初は、基礎的な知識が足りなかった人も、丁寧に誘導してあげれば、基礎的な知識を身につけてくれると信じています。最初から、「こんな基礎的なこともわからないのかボケ」みたいなことはしたくありません。
ITの業界が良くなっていくには、より多くの人が参加することが重要です。多くの人が参加すれば、そのうちの何人かは、すごいことをやってくれるでしょう。最初から、優秀な人しかお断りみたいなことにすると、結局、業界がしぼんでしまうのではないかと思います。
基礎的なことがわからなくてもとりあえずできればOKではなく、辛抱強く教えていくことが重要なのではないでしょうか。ただ、最初から難しいことにうんざりして、この業界から去るような状況にはしたくない。最初の敷居は低くしたいのです。

StrutsでHOT deploy

Struts1.2.xをHOT deployに対応させようとして、いろいろ調べていたんですが、難しいことがわかりました。S2Strutsでやっているような初期化時にPluginで登録する形式だと、後から追加されたやつが自動認識できないので、オンデマンドで何とかやれないか調べていました。
がんばれば何とかできそうだったんですが、ある事実に気づいて断念。Strutsというよりcommons-beanutilsがクラスをキーにしてリフレクション情報をキャッシュするのですが、HOT deployではリクエストごとに違うクラスになってしまうので、キャッシュがあまり意味を持たないだけでなく、無駄にメモリを使ってしまい、そのうちメモリが枯渇してしまいます。
やはり、HOT deployを意識していないフレームワークをHOT deployに対応させるのは難しい。いくつかのフレームワークがHOT deployに挑戦しているみたいですが、フルスタックをHOT deployに対応させるのは、かなり難しいのではないかと思います。コンテナだけだったら何とかなると思いますが。
Strutsを使う場合は、Seasar2.3との組み合わせが良いと思います。枯れて安定しているので。