絕大部份的應用軟件最終結果就是將商業邏輯加上經年累月資料匯總正確的統計分析數據,但往往大部份的程序設計師迷失於各種程序語言工具中,追求的是快速開發以及炫麗的外表,大家討論的是程序設計的技巧,但忽略了信息科技最終目的是得出正確的數字,如此而已。/ 偏偏工具的變遷實在太快速,工具會隨著作業環境而改變,從以前的DOS到Windows以及近年來甚為流行的Internet環境,這些重大改變幾乎可以稱得上是「大地震」,每一次的變革讓不少程序設計師失業,因為重新學習的代價實在太過昂貴,即使您要處理的事情一樣,依據筆者開發商用軟件的經驗而言,DOS下面的系統與Windows系統架構相差無幾,但是能夠從DOS轉到Windows繼續開發的設計師卻不多,歷經千辛萬苦才升級上來,但下一個 Internet 環境緊接著而來,而未來呢?又有幾個截然不同的環境會誕生,這中間的心路歷程或許過來人才能真心體會。 要將商業邏輯放在前端或後端,也是大家常常討論及辯論的題目,將商業邏輯放在前端,就代表比較注重前端開發工具,我們常常可以看到某些應用系統標榜可以搭配不同種類數據庫,對於使用者而言感覺有很多選擇性,但這並不一定是最好的系統,因為每種數據庫都有其特定的功能,如果一套應用系統可以應用在不同數據庫上,那表示這套系統可能沒有完全應用該數據庫的特性及功能,但往往數據庫中特殊的功能才是每家廠商強調的重點,否則如果數據庫廠商都依循ANSI標准來做數據庫,也不必有這麼多家廠商來競爭,另外,就算標准的SQL語法各家發揮也略有不同,再加上如果要善用數據庫的運算能力,內建程序語言的撰寫也非常重要,偏偏目前各家內建程序語言都不一樣,試想如果一套系統號稱可以任意的銜接不同數據庫,可能該系統將所有的運算邏輯全部放在前端,但這樣就喪失了數據庫原有強大功能。 從以上討論的幾點來看,關連式數據庫的演變歷經二十年的演變,中間並沒有很大的學習途徑改變,一直都是循序漸進的發展,但是程序語言就不一樣了,每一個版本及環境的改變都會讓設計師付出非常大的代價學習,並且無法將全部舊有學習經驗累積到新環境,例如DOS下單工處理的演變到Windows多任務、事件處理環境,再到Internet分布式處理環境都在考驗設計師的學習熱忱,雖然這些演變是進步的象征,不過進步的背後有著長時間的學習,有時候學習過程中突然會冒出一個全新的開發工具,可以取代您需要辛辛苦苦撰寫的程序代碼,就像視覺化開發工具的誕生取代傳統語言或者網絡上Script Language取代CGI一樣,原來開發工具不需要像數據庫需要這麼長時間的累積,就有辦法產生一個全新的設計概念,並且幫助設計師節省時間,這就證明了您目前的工具將來可能會有更便利的替代品出現,也就是說隨時會有一個年輕小伙子拿著一個不知名的工具,能夠打敗你辛辛苦苦撰寫的軟件。 說了這麼多,那干脆去當DBA好了,這也是一個不錯的主意,畢竟DBA是比程序設計師吃香,不過本文要強調,您需要的是一個數據庫當做永久的後盾,而學習各種不同的工具來解決您日常工作所遇到的問題,目前市面上的語言工具何其多,真要去學習是學不完的,熟悉一種語言當然是必備技能,但單單一種工具卻無法滿足各種不同的問題,我們也看到市面上工具號稱可以涵蓋所有企業需求,但事實真是如此嗎?就拿C語言來說,我想大家應該可以認同他是一個歷史悠久且優良的程序語言,但是在處理有關企業應用系統時,大家往往采用的是像Fox Pro,VB,Delphi,Power Build等工具,因為這些工具雖然沒有像C語言般強大,但對於處理企業邏輯方面的工作卻是非常理想,又如VB,Delphi等工具也號稱可以開發像網站或電子商務系統,但是目前采用ASP,PHP,jsp等工具的數量卻遠遠超過它,甚至這些新一代工具語言才誕生短短不過數年而已,所以可以看得出來新的環境會有更便利的工具來輔助,如果您的系統要能順應時代潮流,當然可以拿舊的有的工具來開發,但這無疑是「事半功倍」,既然外在環境變化如此快速,那您應該隨時都有拋棄工具的心理准備,接受一個更為方便的開發工具,並且以數據庫為「中心」。 所以您需要專精一種全方位的數據庫,而通才於數種工具語言,因為唯有數據庫的技術及經驗才能累積轉換真正的技術資產,工具隨時都有更方便的替代者出現或者有一個新的作業環境將之淘汰。
PostgreSQL 免費(可以由小到大項目全部包含,不用擔心版權費用多寡) 跨平台(全世界支持最多平台的數據庫,可以挑選不同平台間最合適的開發工具) 自由(Open Source的開放特性讓它不停的進步,提供比其它數據庫更多樣化的支持)
強大功能及延展性佳 選擇一套數據庫確實比選工具還要重要的多,鑽研一種技術以達到爐火純青的地步才會產生價值,數據庫是一門高深的學問,從規劃到實作需要理論與實務並重,而PostgreSQL更是您值得依靠的選擇。