星期一, 10月 06, 2008

你的程式N-Tier了嗎?

鳥毅退伍後,找的第一間公司是負責銀行端末系統的公司,有點類似獨孤木以前做的,但規模比較小。當時年少無知,以為企業內部的程式都應該長得像那樣,分層控制流程,也就是N-Tier設計。

由於有位朋友待在國內某間頗具規模的入口網站,當時向鳥毅招手,半年後鳥毅就投身到portal混了年餘,與N-Tier說拜拜,致力於高流量下還能動的web開發(因為寫得爛,能動就不錯了)。此時最大的好處,就是身邊的同事都是高手(我最爛),而且熟FreeBSD/Linux的人很多,不像現在有問題都找不到人問。

由於coding程度太差,又不耐操,後來受不了跑到目前的公司當個小網管。這間公司都用微軟的Solution,所以當然傾向於用Visual Studio拖拉。微軟的IDE特點就是快,不但跑起來快,開發時程還真是短;用VS2005/2008配合SQLServer,拉一拉一個MIS程式就做出來,這是以前沒接觸過FoxPro/PowerBuilder的鳥毅未知的世界。

此時問題就來了:一間100人以上的公司,不可能只有一個MIS寫程式。每個人寫程式都直接存取Database對嗎?其實這間傳產公司的IT主管也不是IT出身,在鳥毅來之前連套Database都沒有,後來才買套SQLServer 2000供MIS使用。到美麗的MIS小姐加入本公司後,她和原先MIS先生的風格迥異,兩個人的code也沒有共用(原因別問我),而且都是直接存取Database,造成兩個人的程式功能大幅重複,而且時常為了資料交換而有爭執。Client/Server更大的問題在,不過這不在討論之列。

要問我是誰的錯嗎?嗯....是微軟的錯:P VisualStudio一開始的設計就是Quick & Dirty,到現在Enterprise Library的架構都一直在變,也沒有類似JavaEE的Solution(應該沒有吧...我不熟:P,只有找到);所以造成MIS必須自己設計N-Tier的架構。(這一段是寫給MIS看的,微軟別怪我

微軟的N-Tier似乎和LINQ畫上等號(),雖然在下不怎麼認同,但至少是個好的開始。現在又多了ASP.Net MVC,不知未來如何?

總之,若你是公司的IT主管,請注意元件的共用與源碼的共用,N-Tier是建構在Business Logic上而不是資料流上,不要用Database去思考程式。

唉,我這個小小網管似乎想太多了,優秀的年輕同事聽到交大把email外包給gmail就想到長官一定會擔心被人說太閒,不懂長官的心,難怪我會黑呀!

沒有留言: