トップ «前の日記(2004-10-23) 最新 次の日記(2004-10-25)» 編集

jFD開発したりしなかったり日誌

2004|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|
2004年
10月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

2004-10-24 [長年日記]

_ NHK撃退

今のNHKに金払いたくないと言ったら帰っていった。

ずいぶん楽になったなあ。

_ お袋on体にフィットするソファ

土曜の晩にお袋が泊まっていったのだが、先日購入した

無印良品の体にフィットするソファを見て、

「あんたまた買ったの?」

と言われた。

うちにはすでに同じく無印良品のエアクッションがあり

(オフハウスで700円くらいで買った)、サイズはともかく

見た目がかなり似てるのだが、

「あんな物と比べてもらっちゃ困りますよ」と。

座らせたら感心してた。

エアクッションは恐ろしく安定性に欠け、座るのに明鏡止水の

心が必要というある意味悟り養成ギブスのような物だったのだが、

体にフィットするソファはどんなにぐでれーんと座っても

適切に変形して体を支えてくれるダメ人間養成ギブス。

お袋も実家で購入する気になったっぽい。

僕もたまにはいい買い物するんですよ。

_ ECS

先日の先輩との議論中にJakarta ECSというライブラリの話が。

僕は初耳だったが、先輩は注目しているらしい。

マークアップ言語の出力を行なうためのライブラリで、

例えばHTMLを生成するのにこんな書き方ができるそうだ。

Html html = new Html()
              .addElement(new Head()
                  .addElement(new Title("Demo")))
              .addElement(new Body()
              .addElement(new H1("Demo Header"))
              .addElement(new H3("Sub Header:"))
              .addElement(new Font().setSize("+1")
                         .setColor(HtmlColor.WHITE)
                         .setFace("Times")
                         .addElement("The big dog & the little cat chased each other.")));
out.println(doc.toString()); 

_ 「JSPのせいでこれの開発が止まってる」

と憤慨の様子だったので、ちょっとソースを落して読んでみた。

・・・ダメだよこれ。

これは、Javaの文法でHTMLをラップしただけの物でしかない。

しかも、HTMLのタグとJavaのクラスが1対1で対応してるだけなので、

質の変化が無い。

せめて例えばテーブルだとかのクラス一つにモデルを与えるだけで

中のTR、TDタグまで生成してくれるくらいの抽象化をしなければ

記述の手間は減らず(おそらく逆に増える)、これを使うメリットは無い。

見る限り、低レベルのAPIを低レベルのAPIでラップしている。

高レベルのAPIでラップしなくちゃ意味が無いだろう。

_ そういえば思いだした

以前いた現場で内部で製作されたDBアクセスライブラリがあったのだが、

これがどうにも酷い代物で、JDBCのクラスを1対1でラップして、

かつ必要な機能まで殺ぎ落としたような代物だった。

たとえばResultSetをラップしたクラスがあるのだが、

検索結果を文字列か数値でしか取得できなかった。

不便になっただけなので、素のJDBCを使ったほうがよっぽど早い。

あれは低レベルのAPIを低レベルのAPIでラップした典型だった。

ただし、そこのDBは恐ろしいことに、金額以外の全てのカラムが

文字列という代物なんで何とかなっていたのだが。

でも日付が6桁の文字列だったのを見たときは思った。

「あんたら1999年の大晦日に何も勉強しなかったのか?」

本日のツッコミ(全4件) [ツッコミを入れる]
_ keisuken (2004-10-26 08:08)

ECS が出る以前に同じモノを作ったことがあるんですが、粒度が細かすぎて使いにくかったですね。
「単純にテンプレートで生成するのがいいのじゃないのか」と思ってます。XSLT も大げさかなと。

_ Shunji (2004-10-26 12:53)

ビューの定義の場合、直線的な記述が並ぶので無理に抽象化するよりテンプレート使ったほうが早いケースが多いですね。
無理に抽象化したら細かくカスタマイズできなくなって不便になるケースもありますし。
最適な粒度って、入り口は荒いけれど奥は細かく、しかも奥に触れる物だと思うんですが、それが難しい場合、カスタマイズ性を優先するか、簡便さを優先するかの選択が必要なのかな。

_ BBC (2004-10-26 14:03)

はじめまして。Web系の場合、その後のメンテの事を考慮すると、ECSはちょっと頂けないなぁ・・・と。
ビューがほとんど代わらない or JSP以前のスタイルとしてはありだとは思いますが。
# 言語は違いますが、似たような事例のメンテで泣きそうになってます

_ Shunji (2004-10-26 16:47)

はじめまして、BBCさん。
おそらくWebを部品化して扱うのなら、ある程度塊として扱えるくらい大きな部品を抽象化して扱わないと意味が無いでしょうね。
けっきょくそれってTagLibかも知れませんが。
ちなみに昔、XSLTでそんな事例やらされましたがメンテ不能です。

本日のリンク元
その他のリンク元
検索