訂閱電子報
│
RSS訂閱
│
手機版
全站文章
iT邦幫忙
首 頁
新 聞
技 術
IT管理
研討會
iT邦幫忙
部落格
小7聚樂部
Download
apphome
個資法
新 聞
新 聞 專 題
即 時 新 聞
新 聞 簡 訊
技 術
產 品 報 導
技 術 專 題
IT 書 訊
IT管理
CIO
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
在取用程式庫時,首要在認清程式庫的目標與角色,對於程式開發才有正面幫助
林信良
因在網路上經營「良葛格學習筆記」(openhome.cc)而聞名,曾任昇陽教育訓練中心技術顧問、甲骨文教育訓練中心授權講師,目前為自由工作者,從事講師、技術書籍寫作與翻譯,專長為Java 程式開發相關技術教育訓練,研究興趣包括:程式語言、Web 相關開放原始碼框架。閒暇之餘記錄所學,技術文件涵蓋 C/C++、Java、Ruby/Rails、Python、JavaScript 等領域。
對於應用程式開發產能的影響,程式語言只是個出發點,現代程式庫不僅是可重用功能的中心,還扮演了規範架構流程、限制語言功能、擴充程式語義、模擬典範(Paradiam)等多重角色,有時體質不良的程式語言,因為有良好的程式庫約束了先天不良元素,反而使得原本不被看好的語言廣為接受而獲得重用。
可重用功能的集中處
基於開發程式時的可維護性與彈性,程式開發過程會不斷消弭重複性。傳統程式庫的角色,就是將重複出現的通用演算片段封裝為函式,日後若有相同需求就可直接引用,節省開發人力與時間。
有時可重用對象並非演算片段,而是為類似商務需求而撰寫的重複流程。設計模式中的樣版方法(Template method)可作為此現象的縮影,父類別根據抽象方法撰寫樣版流程,抽象方法則由子類別根據實際需求實作。樣版方法重複流程中未完成的抽象是以方法為單位,如果重複流程中未完成的抽象是以物件或整個模組為單位,這樣的程式庫就形成所謂框架(Framework)。
舉例來說,現代Web應用程式普遍採用的MVC/Model2流程,基本上就是由控制器接受請求、處理請求參數,接著轉發給模型物件進行商務處理,之後轉發給畫面元件呈現結果。也許可花費半年親手撰寫程式控制這樣的流程,然而有些框架以通用方式實作了流程,開發者只需根據實際需求實作抽象元件,就可組裝出完整應用程式,足可減少半年開發時間。
傳統程式庫與框架的不同在於,以傳統程式庫開發程式,開發者可以完全控制應用程式流程,以框架開發程式,流程反而是由框架控制,這就是框架之所以稱為框架的原因。
每個框架實作背後必然支持某個架構與流程,使用框架必先檢視商務邏輯是否符合框架設定的架構流程,否則反會被框架框住,失去使用框架的真正意義。例如採用IoC框架時,應先思考應用程式中是否有眾多相依物件,相依物件間是否需要適時地抽換更動,才不會被繁複功能與設定細節迷惑。
程式庫也扮演著標準化的角色。現代程式語言都會伴隨核心程式庫,提供基本字串處理、群集物件、輸入輸出、網路連線、並行處理等通用功能,希望開發者盡量基於核心程式庫開發,增加應用程式流通性。有些語言透過實質的過程,推動程式庫、框架或平臺的標準化,有些程式庫或框架雖然沒有實質的標準化過程,然而由於設計良好而廣為使用,亦形成所謂產業標準,提供更多通用的選擇。
1
/
2
/
3
•
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 ▲
最新文章
【影片】iPhone 5最新廣告強調手機的音樂功能
(好樣der)
【天天動聽】不用掛VPN也能突破境外IP的限制聽歌。
(Linus)
05/24 精選五款限時免費軟體-用照片為生活留下記錄,結合了相本功能的行事曆軟體--PhotoCal with Event
(Linus)
Windows 8使用調查:逾半數使用者幾乎不用Metro程式
(好樣der)
雙槍客新選擇!HTC發表雙卡雙待手機Desire 600
(好樣der)
微軟更新YouTube for Windows Phone ,停用下載功能
(好樣der)
LINE用戶小心!假投票騙走Facebook帳密,網路釣魚持續上演
(好樣der)
【Angry Birds Space】普通/HD版,雙版本限免中!
(Linus)
Google 雲端硬碟更新App,新增掃描功能
(好樣der)
05/22 精選五款限時免費軟體-專為iPad所設計的雙視窗瀏覽聊覽器Dual Browser
(Linus)
最新文章
監看主機開啟連線 Ports 號的利器 – CurrPorts
(weithenn)
Twitter推出雙因素認證
(goodplayfun)
測試硬碟讀寫效能的好幫手 – CrystalDiskMark
(weithenn)
【送軟體】WinX DVD Ripper 得獎名單
(download)
研究:青少年對Facebook熱情略退,搭配非實名制的Twitter發言較自在
(tinalee)
微軟公布Xbox One主打一致性的遊戲體驗,搶攻客廳娛樂市場
(goodplayfun)
擔心小孩用電腦不專心亂看網站? 家長控制瀏覽網站的利器 – FocalFilter
(weithenn)
臺灣開發者爆料,Line內藏封鎖大陸敏感字眼機制
(goodplayfun)
Yahoo正式宣布以11億美元買下Tumblr,並承諾不搞砸
(goodplayfun)
【flickr】有沒有這麼誇張....flickr的網路相簿空間免費提升到1TB!
(onlyaway)
最新問答
D-Link Network Associate(DNA)原廠國際認證介紹
(adsa562)
當"觸控"碰上"Ultrabook", 您的軟體UX也跟上潮流了嗎?
(mars33)
有用過1&1 vps 的請進
(eason57)
防火牆被CBL列黑名單
(kobe8756)
政務委員張善政:不宜走在世界最前端當白老鼠
(bigcandy)
asp.net以dropdownlist分別連線7家資料庫,並在gridview中顯示出來
(candice242)
【518外包網】「現金十萬元大方送」活動開跑囉!
(kevinya69)
outlook 2007 收到的信寄件者顯示問題
(shiouwei85)
分享大小事-儲存要無限、無線要儲存,802.11ac搭配雲儲存讓平板與手機可以可無憂儲存!
(gric)
艾鍗學院 IT TRAINING │ 102年政府職業訓練 - ASP.NET(C#)程式與資料庫設計
(askembedded)
熱門主題
HDMI最遠的傳輸距離到多少?
(benevotech)
用網線延伸USB2.0可達50M
(benevotech)
讓KVM多電腦切換器連網管理
(benevotech)
只佔用1U(4.4cm)!LCD KVM可在機櫃操控16台PS/2與USB伺服器
(benevotech)
雙電腦共享印表機,免設定網路
(benevotech)
手寫在普通紙上,透過電腦同步顯示於投影機的簡報方案
(benevotech)
主動式USB2.0延長線,可串級或一次延伸達70米
(benevotech)
將VGA訊號加強傳輸到300公尺
(benevotech)
比特幣挖礦程式影響仍然龐大,現階段目標是針對熱門的社交程式發動新的攻擊
(eraysecure)
《總經理看資安趨勢》被APT攻擊後,該怎麼辦?
(trendlabs)
電週文化事業版權所有、轉載必究 •Copyright © iThome |
刊登廣告
|
授權服務
|
服務信箱
|
隱私權聲明與會員使用條款
|
關於iThome
|
|