jFD開発したりしなかったり日誌
2004-10-24 [長年日記]
_ お袋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年の大晦日に何も勉強しなかったのか?」
- http://blog.chew.jp/result/エア/エア 書き方 ×15
- http://a.hatena.ne.jp/dot/simple ×3
- https://www.google.co.jp/ ×3
- http://d.hatena.ne.jp/dot/ ×2
- http://websearch.rakuten.co.jp/?tool_id=1&qt=体にフィッ... ×1
- http://mixi.jp/show_friend.pl?id=19358 ×1
- http://blog.chew.jp/result/エア/エア モデル ×1
- http://websearch.rakuten.co.jp/?tool_id=1&qt=エアソファ... ×1
- http://secure.ddo.jp/~kaku/tdiary/200410.html ×1
- http://blog.chew.jp/result/無印良品 タグ/無印良品 タグ ×1
- http://wrs.search.yahoo.co.jp/S=2114736003/K=無印良品 ... ×1
- http://d.hatena.ne.jp/dot/edit?date=20041026 ×1
- http://a.hatena.ne.jp/nekop/ ×1
- http://pinkey.dip.jp/diary2/テレ朝/テレ朝 ふぐ/20070901.ht... ×1
- http://secure.ddo.jp/~kaku/tdiary/20041004.html ×1
- http://a.hatena.ne.jp/nekop/simple ×1
- 体にフィットするソファ ×50 / キーワード不明 ×14 / 無印良品 体にフィットするソファ ×7 / 金蹴り ×7 / NHK 撃退 ×5 / 無印 体にフィットするソファ ×5 / 金蹴り動画 ×4 / NHK撃退 ×4 / エアソファ ×4 / nhk 撃退 ×3 / addElement ×3 / エアソファー クッション ×3 / 無印 エアーソファー ×3 / 無印のエアーソファー ×2 / エアークッション ソファ ×2 / エアクッション ソファ ×2 / エアソファー ×2 / 無印良品 エアクッション ソファ ×2 / 金蹴り 撃退 ×2 / 無印 エアークッション ×2 / エアクッション 無印 ×2 / エアソファ 無印 ×2 / クッションソファ ×2 / NHK撃退 ×2 / 無印 ソファ フィットする ×1 / 体にフィットするソファ 買った ×1 / 無印エアソファ ×1 / Jakarta ECS ×1 / 無印良品エア・ソファ ×1 / 体にフィットするソファー 買った ×1 / addelement ×1 / API addElement(); ×1 / エアー ソファー ×1 / Jakarta ECS - -site:buzzurl.jp -site:1470.net -site:pookmark.jp -site:bookmarks.yahoo.co.jp -site:clip.nifty.com -site:clip.livedoor.com -site:clip.m.livedoor.com -site:psearch.yahoo.co.jp -site:swik.net -site:megite.com -site:a.hatena.ne.jp -site:b.hatena.ne.jp -site:r.hatena.ne.jp -site:mgw.hatena.ne.jp -site:findsearch.jp -site:guideme.jp -site:shuncolle.nifty.com -site:edita.jp -site:taggy.jp -site:feed.designlinkdatabase.net -site:blogsearch.fukaois.com -site:blogmarks.net -site:bookmark.goo.ne.jp -site:openbrowsing.com -site:c-kom.homeip.net -site:bookmark.fc2.com -site:ckworks.jp -site:tools.rightclicksright.net -site:choix.jp -site:ja.pastebin.ca -site:seo.basefeed.net -site:acc.blogdb.jp -site:lowlife.jp ×1 / 無印エアーソファー ×1 / エアーソファー 無印 ×1 / クッションECS ×1 / 無印エアーソファ ×1 / ECS NHK ×1 / addelement() ×1 / フィットするソファ ×1 / jfd java タグ ×1 / Jakarta ECS api ×1 / 無印 エア ソファー ×1 / エア ソファ 無印 ×1 / 体にフィットするソファ 無印 買った ×1 / 体にフィットするソファ ミニ ×1 / 無印ソファ ×1 / 無印エアークッション ×1 / 無印良品 エアーソファ 部品 ×1 / 体にフィットするソファー ×1 / エアソファー 無印 ×1 / エアークッション 無印良品 ×1 / jsp 抽象化 ×1 / 無印 エアソファ ×1 / 金蹴り撃退 ×1 / 金蹴り 動画 ×1 / 無印 エアー ソファー ×1 / 爪白癬 爪きり ×1 / 無印 エアーソファ ×1 / 無印 体にフィットするソファ 感想 ×1 / jFD ×1 / 体にフィットするソファ・ ×1 / 無印 体にフィットするソファ 日記 ×1 / 無印 体にフィット ×1 / JDBC ラップ ×1 / 無印ソファー ×1 / 体にフィットするソファ レビュー ×1 / 体にフィットするソファ 無印 ×1 / 仮想ファイル フリーソフト ×1 / 体にフィットするソファ 昔 ×1 / 無印 エア ソファ ×1 / nakednews パスワード ×1 / addelement db ×1 / ラクダ式 命名 ×1 / 無印 エアクッション ×1 / nhk撃退 ×1 / addElement('date' ×1 / 無印良品 エアソファ ×1 / 無印良品 エアクッション ×1 / jakarta ecs ×1 / jfd タグ ×1
ECS が出る以前に同じモノを作ったことがあるんですが、粒度が細かすぎて使いにくかったですね。
「単純にテンプレートで生成するのがいいのじゃないのか」と思ってます。XSLT も大げさかなと。
ビューの定義の場合、直線的な記述が並ぶので無理に抽象化するよりテンプレート使ったほうが早いケースが多いですね。
無理に抽象化したら細かくカスタマイズできなくなって不便になるケースもありますし。
最適な粒度って、入り口は荒いけれど奥は細かく、しかも奥に触れる物だと思うんですが、それが難しい場合、カスタマイズ性を優先するか、簡便さを優先するかの選択が必要なのかな。
はじめまして。Web系の場合、その後のメンテの事を考慮すると、ECSはちょっと頂けないなぁ・・・と。
ビューがほとんど代わらない or JSP以前のスタイルとしてはありだとは思いますが。
# 言語は違いますが、似たような事例のメンテで泣きそうになってます
はじめまして、BBCさん。
おそらくWebを部品化して扱うのなら、ある程度塊として扱えるくらい大きな部品を抽象化して扱わないと意味が無いでしょうね。
けっきょくそれってTagLibかも知れませんが。
ちなみに昔、XSLTでそんな事例やらされましたがメンテ不能です。