2000/01/30

網際網路架構的新思考
分類:網路





一套系統往往要連接到後端的資料庫這是以往的 Client/Server架構,網際網路的興起帶來了新的架構,不只是3-Tier或是N-Tier,他的網狀架構,帶來了無限的創新方法。

我們舉最簡單的例子,如果我們撥號上網到某一家ISP去的時候,最簡單的帳號密碼認證系統往往連接到該ISP的資料庫去做檢查的動作,但是如果你到國外去的時候,如果你有申請ISP的國際漫游服務的話,您只要用原來的ISP帳號就可以撥上國外的ISP,並提供上網的服務,這個就是2-Tier延展成為3-Tier的一種溝通通訊模式。

如果說這種認證的類型不只是用在上網際網路的撥接服務的時候,我們上網看到某一個商品服務,想要立即購買的話,只要打入信用卡號碼或者是銀行的帳號,立刻可以扣款並且得到這些服務,這就是金流,如果我們還停留在以現鈔交換貨品或者是實體線路的思考模式,可能沒辦法達成創新的系統設計,因為網際網路把全世界打通了,安全性與可用性的落實,完完全全掌握在這些通訊協定與資料庫的同步上面。

HTTP通訊協定的CGI(Common Gateway Interface)加上超連結,我們可以把不同的資料透過網際網路來交換,以最簡單的廣告服務來說,以前的廣告公司要負責市場調查、行銷企劃、廣告設計製作、媒體購買,這些流程雖然還在,但是已經壓縮在一台廣告伺服器之後了。

HTML的超連結語言溝通了全世界電腦,往後的XML語言與種種分散式的應用程式,我們要走的路還有很長呢!

2000/01/23

從結構化到物件導向
分類:系統





幾年前,一套程式系統用的分析方式,往往脫離不了靜態的畫面顯示,動態的資料輸入,以及資料的處理運算功能,這三類問題的處理只要能夠被表列出來,就能夠架設並完成一套良好的系統,這個就是結構化的分析方式。

但是隨著需求不斷地增加,電腦速度不斷地提昇,大量競爭的商業環境,物件導向的演進,改寫了結構化的分析方式,就連最基本的電腦語言也帶入了這場革命之中,從1980年代後期,企業軟硬體委外(Outsourcing)的商業活動抵定後,這些系統整合的廠商無不想盡辦法把『重新利用』這個事當作最重要的目標之一。

結構化的分析是個良好溝通的開始,但是,他的維護成本過高,一個系統不斷地演進過程中,就要有一批人非常熟悉這一套系統,一個新進的人員,要從頭了解一套系統,除了要閱讀所有的文件之外,也要熟知所有改版的歷史過程,而物件導向解決了這個部分的困擾,只要熟知一個物件的所有溝通介面,就可以很快的抽換掉一個物件並更新他的功能,就跟PC硬體的DIY一樣,顯示卡壞了,拔掉插入好的就好了。

這其中的演進也並不完全沒有中間的過程,記得1995年起,非常興盛的Frame-Work的架構,這其中的代表是Borland的OWL,以及後來模仿的MFC,把一個程式拆成文件Document/顯示View的型式,只要依照這個模式開發,會節省非常多的開發時間,但是並非所有的系統可以適用的,所以後來出現的Delphi語言,就是以單純的物件,你知要把一些開發好的元件搭配起來,並協調使用的模式,就可以簡單的完成一個程式。

我並非推崇哪一個特別的電腦程式語言或使用工具,只是這些工具的興起開創了里程碑,所以,不要太在意您用的工具用BASIC一樣可以做到物件導向,用C++語言也可以做的非常不結構化,只要熟悉物件化的原理與結構,一樣可以朝向物件導向邁進。

下一個潮流是什麼?

2000/01/16

如何踏入程式設計的領域
分類:職場





其實,寫程式就好像寫文章一樣,有些人靈感一來文思泉湧,一下子就寫了兩三千字,甚至三天三夜不能罷休,中國古代的詩人,不也是這個樣子嗎?我們經常說李白是詩仙,喝了酒靈感就來了,但是,他之所以能成功的寫了那麼多詩詞,他的背後也有一段學習的歷程......。

經常觀摩別人的作品,我記得小時候到了作文課是我最討厭的課程,漫長的兩節課,第一節課總是寫不出任何東西,到了下課後玩了一下,第二堂開始也只寫了第一段,最後草草寫完一篇文章。這時候,我們最希望的就是能回家拿出作文範本,希望能找到題目相同,又同時祈禱老師沒看過這篇文章,抄襲的確是非常不好的行為,但是觀摩別人的作品可以有效的增加自己的功力,維護別人寫過程式是一個苦差事沒錯,但是等你看懂了,看完了幾個系統後,不知不覺得你的功力就大增了。

建立一些自己常用的proptype(原型),寫文章最重要的畫龍點睛效果,就是字詞的點綴,苦背一些成語就是這個意思,但是寫程式著重的是邏輯,所以這些常用的原型,有人習慣是用別人的黑盒子(程式庫),有人是自己土法煉鋼,不管是怎麼應用,把這些proptype用的洽當好處也是要經過時間的驗證與不斷地修改。

不斷地重複檢討系統架構,有些文章是八股文,有些是新聞稿,有些是倒敘法,每篇文章的架構不同,所以要表達的意念也不同,一個系統或是一段程式也是一樣的,常常在心理或是紙上畫出你要寫的程式的系統架構有助於對整個程式未來發展與維護的方向,當你了解程式架構的起承轉合是怎麼一回事的時候,你就成功了。

觀摩作品,建立原型,檢討架構是我認為踏入程式設計的第一步,先選擇一種語言來學習或許是一個好方法。