全站文章 iT邦幫忙
iThome Online提供免費電子報,現在就訂,最新IT訊息每日寄達。

iThome 每日新聞報
iThome 產品技術報
加入iThome Online會員,立即使用討論區、Blog等服務。

免費加入會員
登入 / 登出
管理會員帳號
忘記帳號密碼
聯絡客服
訂閱周刊
讀者服務
12' E政府專刊no.6(46)
12' 個資法專刊No2(45)
12' iTcloud No.2(44)
12' e政府專刊No.5(43)
12' 個資法專刊(42)
11' CIO專刊(41)
11' e教育專刊No.3 (40)
11' e政府專刊No.4 (39)
11'iTcloud專刊(38)
10' e教育專刊No.2 (37)
10'e政府專刊No.3 (36)
09'e政府專刊No.2 (35)
09'e教育專刊(34)
09'e政府專刊(33)
08'企業資安專刊-端點安全防護(32)
08'企業採購情報誌(31)
07'資訊安全技術應用專刊(30)
07' 新世代資料中心專刊(29)
07'企業資安技術應用專刊(28)
企業採購情報誌'06冬季號(27)
企業軟體技術應用專刊(25)
企業資安技術應用專刊(24)
現代程式庫的多重角色
文/林信良 2012-06-11
分享到facebook
在取用程式庫時,首要在認清程式庫的目標與角色,對於程式開發才有正面幫助

林信良
因在網路上經營「良葛格學習筆記」(openhome.cc)而聞名,曾任昇陽教育訓練中心技術顧問、甲骨文教育訓練中心授權講師,目前為自由工作者,從事講師、技術書籍寫作與翻譯,專長為Java 程式開發相關技術教育訓練,研究興趣包括:程式語言、Web 相關開放原始碼框架。閒暇之餘記錄所學,技術文件涵蓋 C/C++、Java、Ruby/Rails、Python、JavaScript 等領域。

對於應用程式開發產能的影響,程式語言只是個出發點,現代程式庫不僅是可重用功能的中心,還扮演了規範架構流程、限制語言功能、擴充程式語義、模擬典範(Paradiam)等多重角色,有時體質不良的程式語言,因為有良好的程式庫約束了先天不良元素,反而使得原本不被看好的語言廣為接受而獲得重用。

可重用功能的集中處
基於開發程式時的可維護性與彈性,程式開發過程會不斷消弭重複性。傳統程式庫的角色,就是將重複出現的通用演算片段封裝為函式,日後若有相同需求就可直接引用,節省開發人力與時間。

有時可重用對象並非演算片段,而是為類似商務需求而撰寫的重複流程。設計模式中的樣版方法(Template method)可作為此現象的縮影,父類別根據抽象方法撰寫樣版流程,抽象方法則由子類別根據實際需求實作。樣版方法重複流程中未完成的抽象是以方法為單位,如果重複流程中未完成的抽象是以物件或整個模組為單位,這樣的程式庫就形成所謂框架(Framework)。

舉例來說,現代Web應用程式普遍採用的MVC/Model2流程,基本上就是由控制器接受請求、處理請求參數,接著轉發給模型物件進行商務處理,之後轉發給畫面元件呈現結果。也許可花費半年親手撰寫程式控制這樣的流程,然而有些框架以通用方式實作了流程,開發者只需根據實際需求實作抽象元件,就可組裝出完整應用程式,足可減少半年開發時間。

傳統程式庫與框架的不同在於,以傳統程式庫開發程式,開發者可以完全控制應用程式流程,以框架開發程式,流程反而是由框架控制,這就是框架之所以稱為框架的原因。

每個框架實作背後必然支持某個架構與流程,使用框架必先檢視商務邏輯是否符合框架設定的架構流程,否則反會被框架框住,失去使用框架的真正意義。例如採用IoC框架時,應先思考應用程式中是否有眾多相依物件,相依物件間是否需要適時地抽換更動,才不會被繁複功能與設定細節迷惑。

程式庫也扮演著標準化的角色。現代程式語言都會伴隨核心程式庫,提供基本字串處理、群集物件、輸入輸出、網路連線、並行處理等通用功能,希望開發者盡量基於核心程式庫開發,增加應用程式流通性。有些語言透過實質的過程,推動程式庫、框架或平臺的標準化,有些程式庫或框架雖然沒有實質的標準化過程,然而由於設計良好而廣為使用,亦形成所謂產業標準,提供更多通用的選擇。


1 / 2 / 3 下一頁

分享到facebook

6/20-6/21 Enterprise Cloud EXPO
企業雲資源應用博覽會與企業雲端論壇
2013 BlackBerry Enterprise Experience Forum-無庸置疑的企業行動化使命
2013 BrainShare Technology Forum Asia Pacific Tour
2013台灣三星 飯店與零售解決方案高峰會
2013 Java Developer Day
更多研討會
▼ ADVERTISEMENT ▼
▲ ADVERTISEMENT ▲

電週文化事業版權所有、轉載必究 •Copyright © iThome | 刊登廣告授權服務服務信箱隱私權聲明與會員使用條款關於iThome