1. 程式人生 > >框架和平臺的區別以及兩者的重要性(出自“至簡李雲” 部落格)

框架和平臺的區別以及兩者的重要性(出自“至簡李雲” 部落格)

 

    框架(Framework)和平臺(Platform)是軟體行業中經常看到的術語,應當說也是這個行業發展的方向。在討論其重要性之前,我們先看看兩者在概念上的區別。

   

    框架是針對一定的應用領域進行開發的,比如,ACE(Adaptive Communication Environment)就是針對網路通訊而開發的一個框架。框架通常對於應用進行了一定的抽象,將需要的一些通用的功能做成了軟體模組。當用戶(或開發人員)需要對應用進行開發時(即實現應用的功能時),如果採用框架,則只要實現針對應用的特定程式碼就行了。或者,我們可以理解為:框架為相類似的應用設計了一個骨架,而具體的應用只是在這個骨架上填上肉和面板。假如要做一個Server/Client程式,如果採用ACE,我們可以在Server側用Acceptor來監聽連線請求,而在Client側則用Connector來發起連線。最後,Server與Client之間是一定有協議的,這些協議是針對特點的應用的,並不是框架的一部分,是使用者必須其於框架去實現的特定的程式碼。

 

    平臺是通常和一定的作業系統相關,是對作業系統更高層次的抽象。平臺一方面提供了所有使用硬體資源的API,另一方面也實現了一些通用的元件,這些元件可以服務於不同的應用領域。比如,常用的平臺模組有,記憶體管理模組、Log管理模組、裝置管理模組,等等。

 

    如果用分層的概念來看框架和平臺,假設上面是應用層,下面是硬體層,那麼,我們可以認為框架是在平臺之上的,是更加接近應用的。而平臺是在框架之下的,是更加的通用的。同一個平臺可以為不同的框架(應用領域)服務的。

 

    框架和平臺是目前行業很重要的開發方向,這足以體現了其重要性,那為什麼會如此重要呢?我想總的來說應當是:為了程式碼重用和開發出高質量的軟體。無論是框架還是平臺,其思想都是為了程式碼重用。程式碼重用的好處,一是縮短開發時間,二是可以少犯相同的錯誤,而這也就提高了軟體質量。此外,兩者都是更高抽象層次的軟體開發方法,是避免“重新造輪子”的開發方法。

 

    通常一個好的框架設計都會基於一定的平臺的,當然,平臺可以有簡單和複雜,框架中所使用的平臺是應當是簡單還是複雜,其標準應當是:保證框架能很快的被移植到新的作業系統。可見,有平臺概念的框架有更強的適應性和生命力。應當說JAVA的興起,給框架的發展打開了全新的篇章。

 

    平臺的設計除了對於現有的作業系統進行更高抽象層次的封裝外,我認為基於虛擬機器的語言的開發是一種新形式的平臺開發。比如,Python、Java,其本身是構建在虛擬機器上的,而其豐富的庫可以說構建了平臺的功能。這種形式的好處是,跨平臺成了開發虛擬機器的工作,而這通常都是由語言的創造者(社群或是公司)去完成的。

本文出自 “至簡李雲” 部落格,請務必保留此出處http://yunli.blog.51cto.com/831344/168862