顯示具有 Object-relational impedance mismatch 標籤的文章。 顯示所有文章
顯示具有 Object-relational impedance mismatch 標籤的文章。 顯示所有文章

2009年1月24日 星期六

為Database-Centric Architecture平反 Part 2

誰才是捉得到耗子的好貓?

在Open Source領域中,Java跟PHP兩項技術都非常活躍。不過兩者的方向似乎不一樣。Java感覺上較擅長於MiddleWare與Framework的創新與精進,而PHP則有許多成功的應用軟體。Java有非常優秀的OR Mapping工具如Hibernate,MVC framework如Struts, Webwork,還有Spring、Wicket、iBatis、Sun自己推的EJB等等,真是百花齊放。但是你如果要找Open Source的討論區、Blog、內容管理系統、或是Wiki等應用系統,就是PHP的選擇多而且活躍。像是phpBB, 維基百科的引擎MediaWiki, XOOPS, JOOMLA等。

如果進一步觀察這個現象,又會開始令人覺得耐人尋味。PHP這些活躍的計畫,常常沒有用太複雜先進的架構,往往就是把『組合SQL指令的程式碼』跟『頁面』寫在一起。MediaWiki就自己說他們的程式碼又複雜又髒。但是維基百科用的正是MediaWiki這套軟體呀!想像它的資料量與瀏覽及更新人次。誰說MediaWiki是不好的軟體?而Java有那麼多優雅的架構與工具做基礎,照理說更容易做出好的應用軟體才對。但是這麼多年來,為甚麼應用軟體仍然是PHP的天下?

2009年1月22日 星期四

為Database-Centric Architecture平反 Part 1

對軟體服務業而言,這四十年來資訊技術最重要的發明是什麼?

我的答案是『物件導向技術』以及『關聯式資料庫』這兩項。

我一直是物件技術的擁護者。工作上常常宣揚Design Patterns和Analysis Patterns的重要,喜歡把老舊的程式Refactor翻修成物件的架構。做SA時頭腦中的模型都是繼承、多型與patterns。何況Agile Methodology要透過物件技術才能發揮得淋漓盡致。

另一方面,可能是因為純數學背景的關係,我也很喜歡關聯式資料庫。SQL語法基本上就是充滿了集合論的風格(select from多個table就是做Cartesion Product,where條件就是由Axiom Schema of Separation定義集合的property,還有union, intersection等集合運算)。剛進這一行,SQL就用得很順手,因為它應用到求學時接受的純數學訓練。

2008年12月12日 星期五

好文推薦︰資訊科學的越戰

在Relational Database與物件技術的衝突下生活了幾年,最近想寫一些感想。無意中在網路上找到這篇精彩的文章:The Vietnam of Computer Science。

原先我是從這個Blog讀到的。這個Blog做了入門的介紹,也連結到原文。原文網址在此。原文很長,我還沒仔細看完,但是因為是很精彩的比喻,忍不住就先在這裡推薦了。