wildcatsの日記

赤羽在住でIT関係の会社の社長やってます。

Java

業務系のクラスでインタフェイスの実装クラス名に「インタフェイス名+Impl」って名前をつけるのはダサいよね。

実装に特性があるからインタフェイスと実装を分離するわけで*1 インタフェイスに対して実装が1クラスになる場合にはインタフェイスと実装を分離する必要が無いとボクは思うね。 *1:例外としてはDynamic Proxyを用いたいから分離するケースはあると思う

mixi parser

暇だったから作ってみた。 Login login = new LoginMixiImpl(); login.setUserName("************"); login.setPassword("**********"); login.execute(); Top top = new TopMixiImpl(); Diary[] diaries = top.getDiary(); for (int i = 0; i System.out.pr…

Yourkit Java Profiler

上のチューニングの話でボトルネックを探る為に今回から使ってます。 「Eclipse Profiler」だとJDK5に対応できていない*1のが理由です。 Heap SizeとかCPU使用率をグラフ化できるので便利だと思います。 *1:java.lang.ClassFormatExceptionを吐きますね

Tomcatにおいてサーバ名でフィルタをかけたい場合のValve

あまり用途は無いと思うけど Tomcatで提供されているValveには見当たらなかったので作ってみた。 依存ライブラリ:catalina.jarとcatalina-optional.jarとservlet-api.jar 動作環境:Tomcat5.5.16 package jp.mydns.wildcats.tomcat.valve;import java.io.IOEx…

Re:国産Java系OSSプロダクトの日本国内での普及

日本で巷のJava技術者と交流して自分たちで作ったJava系OSSプロダクトを宣伝しても それが利用の拡大に繋がるかは上記の点からみて疑問です。 日本での普及を優先するなら巷のJava技術者よりはシステムに利用するフレームワーク の決定権を握る層へのアタッ…

Velocityのテンプレートからページ表示Beanを自動的に作ってみる。

VelocityのTemplateNodeViewとかを参考に作ってみたけど こんな感じか?(無保証) 30分くらいで書いたので実業務にて少し揉んでみます。 NodeParser.java import org.apache.velocity.runtime.parser.Token; import org.apache.velocity.runtime.parser.nod…

動的プロクシの使いどころ。

思いついたのはHTMLページ表示用Beanのタグ抑制に使えますね。 全ての項目のgetterメソッドを呼び出す前にescapeHTMLとかって 怪しげなメソッドを用いるのはいやだから。 そもそもこのタグ抑制はHTMLに依存しているからコントローラのレイヤで プロクシをか…

AbstractFactoryの汎用版

ここで書いた話なんすけど よくよく考えるとインスタンスじゃなくてクラスを返せばよいですね。 つーことで明日暇な時間があったら作ってみる。

DBDesignerUtil-0.3

FKとかAutoIncとかDefaultValueとかも出力するように対応しておいた。 とりあえず現プロジェクトではこれで十分なので対応は完了にしとく。

DBDesignerUtil-0.2

id:shmorimo001さんのコメントを受けて、Comments欄にカラムの和名を入れておくとカラムの和名を出力するようにバージョンを上げました。 あとはFKとかが定義書に自動的に書かれると幸せですかね?

つーか

DynamicJavaParserで無限ループするようなコードを書かれちゃうとアレですなぁ。 そろそろサービスを止めようかと考えています(^^;

今日のJavaDynamicParser

package jp.mydns.wildcats.dynamicjavaparser;public class CalculationImpl implements Calculation { /** * 範囲とゲタを与えて、それなりにテケトーな値を返します。 * * @param a 乱数の範囲(最大値)を決める整数値 * @param b 返り値にはかせるゲタ…

今日のDynamicJavaParser

package jp.mydns.wildcats.dynamicjavaparser;public class CalculationImpl implements Calculation { public int add(int a, int b) { ((int) java.lang.Math.random() * a) + b; }}残念!return文が抜けていたりする。 あとこのコードだとjava.lang.Math…

DynamicJavaParser

nekopちゃんの『嫌がらせ』(w以外に何の反応もなかったんで mixiにソースを晒してみる。

Contract4j

dWの記事を見て試してみた。 BankAccountImpl.java @Contract public class BankAccountImpl implements BankAccount { private float balance; public BankAccountImpl(float balance) { this.balance = balance; } @Post public float getBalance() { retu…

JavaDoc

橋本さんの日記から。 僕もあんまりJavaDocは読まないな〜(^^; 基本的に「Nude Pictures」!!! じゃなくて「Quick Start」or「Getting Started」と「テストケース」のコードかな。 メソッドとかはネーミングで大体分かるし。

Janino

Janino-2.4.3.jarを用いてAbstractFactoryの汎用版を作ろうかと思った。 とりあえずPersonってインターフェイスを作ってManImplとWomanImplってクラスを作って試してみた。 ソースを貼ってみると public static Person create(String name, int age, int gen…

DynamicJavaParser

marsのメモさんの ここまで出来ると,コンパイルすらしたくない,なんて思ってみたり.:-Dを読んで私も同じことを考えてましたので作ってみました。 public int add(int a, int b) { return a + b; }このaddメソッドの算式を適当に変えて実行してみてくださ…

DBUnit

テーブルのFKをバシバシ設定するとsetUp()でこけてしまうケースがありますな。 初期化でテーブルをどの順序で削除してるんだろう? いろいろと試してみたんだけど現在の仕様だとちょっと困るので ソースコードを読んでみて直せるようなら直してみます。 追記…

Informa

仕事でRSSフィードをパースしなければならなかったのでRSSのParserを調べてみた。 http://java-source.net/open-source/rss-rdf-tools ここ経由でInformaを触ってみた。 @ITのRSSフィード(RSS 1.0)をinformaでパースしてタイトルだけ表示するサンプル 依存ラ…

org.eclipse.jdt.internal.compiler.Compiler

最新のEclipseには同梱されていないんですね。。。。 ダウングレードしようか考え中。

AOP@Work: Contract4Jを使用したコンポーネント設計

(via http://d.hatena.ne.jp/satoshis/20060511#p1) 今回のプロジェクトでContract4Jを使おうと思っていて 英語のページだとアレだよなぁって思ってました。 非常にグッドタイミング!!ありがとう! > IBM

Maven-Middlegen-Plugin v2.1

Maven1.1だとインストール後にこのエラー出ますね。。。う〜レスもついていないようだ。orz ibiblioのリポジトリを見るとMaven2のリポジトリに移動されているようなので Maven1系だと動作しないんでしょうか。 つーか、もうそろそろMaven2に移行しろと?(^^;…

MixinFactory

仕様バグを見っけて苦戦中です。。。。。 具象継承を用いなければ問題は発生しないのですが。

MixinFactory

ずいぶん前に書いた話なのですが 自分がソースコードを持っていても仕方が無いので オープンソースにしようと考えています。 ニートである今のうちに仕様的な恥ずかしい部分とコード的に恥ずかしいと 感じる部分を直しています。 ライセンスとかどうしましょ…

Javaでmixin

昨年中に一応できてた。 一部に少しダサい制約があるけど次のJavaのプロジェクトで使うことにする。 DIコンテナに取り込めたりすると個人的には幸せな気分になりそう。

JavaでMixin

mixiの日記で以前に同じようなことを書いたんだけど http://d.hatena.ne.jp/brazil/20051001/1128099513 http://d.hatena.ne.jp/winebarrel/20051001#p6 を読んで自分がcglibで試したことをこっちにも書いてみることにする。 もしこれができれば実装の継承を…

Re:JSPコンパイラはどうやってJSPをコンパイルしているんだろう

予想通りだと思いますが Tomcat5.0.xの実装ではJSPをJavaのソースコードに変換して 直接javacを呼んでclassファイルを生成しています。 Maven1.0.xはAntのjavacタスクを呼んでいますが Antのjavacタスクも直接javacを呼んでいます。追記:直接javacと書いた…

「ここで開発されたフレームワーク(Strutsベース)、使ったことがあります。あれはひどかった。」

ほぅ。 とりあえずはノーコメントで。

Dynamic Interaction with Your Web Application

(via 誣告の誹りを止め給え) org.mozilla.javascriptって面白い使い方できそうですなぁ。