Framework 和Architecture 有何不同? | 小朱® 的技術隨手寫

文章推薦指數: 80 %
投票人數:10人

軟體也是一樣,所謂的軟體架構(Software Architecture)是一種軟體的藍圖,它告訴你這個軟體的結構,功能,介面,用法,與其他系統的構連以及資料 ... 前幾天我在幫我顧問公司的員工上課,剛好講題就是SoftwareArchitecture,我在課堂上順便問了一個小問題:Framework和Architecture有什麼不同?結果學員多數都答不出來,因為那間公司都把Framework叫做架構,但光是架構這個詞在很多技術用語上都會被套到,那麼,Framework和Architecture到底哪裡不同? 前幾天我在幫我顧問公司的員工上課,剛好講題就是SoftwareArchitecture,我在課堂上順便問了一個小問題:Framework和Architecture有什麼不同?結果學員多數都答不出來,因為那間公司都把Framework叫做架構,但光是架構這個詞在很多技術用語上都會被套到,像網站架構,其實是SiteMap或SiteLayout或是SiteStructure,和真正的architecture根本沒有關係,只是用語上好用而已...套句Bill大的話:資訊業的解釋名詞真的很難,因為大家每天都有新名詞會發明出來。

昨天我在噗浪中發問:你認為Framework和Architecture有什麼不同?結果出現了兩種不同的答案,有人認為Framework可以coverArchitecture,但又有人認為Architecture的位階比Framework要高,其實,Architecture這個字是建築之意,也就是由沒有建築物到完成的過程,以及如何將建築生產出來的方法(即建築學),它是一種Guideline,又稱藍圖(blueprint),它指導了建築物應該要怎麼蓋,牆要幾公分高,樑柱的位置,地基的面積,基礎要打在哪,高度要多高,房間要多大等等都有。

但它卻沒有叫你要用什麼方式(工法)蓋。

軟體也是一樣,所謂的軟體架構(SoftwareArchitecture)是一種軟體的藍圖,它告訴你這個軟體的結構,功能,介面,用法,與其他系統的構連以及資料交換等等規範,但它並沒有叫你要用什麼方式實作,因此軟體架構通常會產生文件,圖樣,原型以及規格等,就是沒有可用的程式碼,因為那不是軟體架構應該有的東西,就像蓋房子時是給你藍圖,而不是一幢蓋好的房子。

相對的,軟體框架(Framework)的英文名稱原意是骨架,拆開來看是"Frame"-"work",表示是在一個既定的框架下可以做的工作,也就是說,這是一個已經成形的方法,而且有程式碼實體(例如鋼構工法也是要有鋼材才能做),並且會告訴你要如何使用它(即FrameworkDocumentation,MSDNLibrary即為一最佳例子),但怎麼使用它是程式設計師(也就是監工)的工作,與Framework無關。

Framework和Architecture經常被用來叫做架構,其實它們兩個本質上的差異是很大的,Framework只會告訴你怎麼用,但不會告訴你怎麼實作出特定功能,而Architecture是告訴你某些功能的走向以及方針,但卻沒有程式碼給你,所以Architecture通常會需要Framework來實現,而Framework也需要Architecture才能發揮其所長。

架構設計實戰學習基礎概念 回首頁



請為這篇文章評分?