2008年4月8日 星期二

Hello, Hessian 01

最近搞Axis web service到了最後階段被Triple DES、現在部門前神人發明的怪怪framework做的系統和怪怪資料庫DB2欺侮,終於展示給客戶看了....也算告一個段落,真是萬幸,希望以後不用再搞怪怪得東西,呵呵。
Hessian是由caucho公司發展以binary為基礎的web service protocal的open source framework。根據Hessian對自己的目標,在Hessian網站可以看到支援許多語言和Script language。而且現在也支援RIA。這邊主要是針對最簡單的『hello, world』java service到傳入參數和回傳java自訂類別的物件的service這幾個部份踹踹看,client部份則是以Python和Ruby為主...

PDF Document here

ps. 所謂怪怪的framework不是他的概念怪,畢竟想法在古早以前小歐(O'Reilly)出版的Java & XSLT最後就是提出類似的作法。而是該framework本身沒有考量到使用者(Developer)拿來開發實際系統將面臨的問題。
  • 無法分段測試
  • 當發生問題無法提供足夠資訊給開發人員除錯
  • 宣稱使用Eclipse開發,但是使用該framework無法進入Debug mode
  • Data Tier的溝通也是透過XML,雖然用Hibernate但是卻自己搞Core Object to XML,而非使用Hibernate提供的功能來搞
    (個人觀點:看過實際程式碼感覺透過Hibernate拿到Core Object之後,自己用JDOM或JAXP搞XML給前端用XSLT轉,應該程式碼會簡化很多。不過也是有神人同事覺得自己用StringBuffer兜XML比較快...不評論)
  • 使用XSLT,但是framework無法提供適當工具協助
  • 使用Log4J但是卻只能用root logger
  • 三個m to m的tables卻把兩個associate table合成一個?? (哪裡學的ER Modeling??)
就一個旁觀者熊熊想到的幾點...
很多開發人員都很有自己想法,想自己搞framework想當架構師、想幹SA
但是...請不要造孽
連設計出framework的架構師都不曾自己拿來開發實際系統的framework是沒有期待的價值的
fit POC != fit real case

2008/04/15
PDF檔裡面補充在Ruby玩的一個寫法,透過寫method_missing來提供getId, getName這種get+capitalize(key)的method來取得資料...用起來或許比較像在使用User物件,為啥用getxxxx。 是因為例子取不好在Ruby中object#id是有用的...
順便小改一下hessianProxy.rb讓產生的Hash物件的key使用symbol,當然同時也要改之前寫的enhanceHash.rb...