自從計(jì)算機(jī)出現(xiàn)以來,計(jì)算機(jī)硬件和軟件的發(fā)展軌跡完全不同,計(jì)算機(jī)硬件的發(fā)展可以用波瀾壯闊來形容,從電子管、晶體管發(fā)展到集成電路、大規(guī)模集成電路,CPU從單核發(fā)展到多核,顯示器從電子屏發(fā)展到液晶屏,硬件技術(shù)和產(chǎn)品不斷更新?lián)Q代,硬件生產(chǎn)力不斷出現(xiàn)飛躍式發(fā)展;而計(jì)算機(jī)軟件卻一直以一種緩慢的速度發(fā)展,雖然編程語言從二機(jī)制、匯編語言發(fā)展到了高級語言,各種軟件技術(shù)和框架不斷涌現(xiàn),但軟件產(chǎn)品生產(chǎn)力的提升非常緩慢?;仡^看近二十年計(jì)算機(jī)硬件生產(chǎn)力和軟件生產(chǎn)力的發(fā)展速度,我們會(huì)發(fā)現(xiàn),軟件生產(chǎn)力的發(fā)展速度,遠(yuǎn)遠(yuǎn)低于硬件生產(chǎn)力的發(fā)展速度。

      分析這種巨大反差的根本原因,可以發(fā)現(xiàn),計(jì)算機(jī)硬件的發(fā)展是站著工業(yè)化生產(chǎn)這個(gè)巨人的肩膀上的,而計(jì)算機(jī)軟件仍然處于低水平的手工業(yè)生產(chǎn)階段。不是嗎?一個(gè)軟件產(chǎn)品需求出來,需要建立一個(gè)團(tuán)隊(duì)負(fù)責(zé)軟件需求、設(shè)計(jì)、開發(fā)、測試、安裝部署等軟件產(chǎn)品生產(chǎn)周期的各個(gè)階段,需要程序員一行行手工編寫代碼去實(shí)現(xiàn)軟件產(chǎn)品功能,下一個(gè)軟件產(chǎn)品的開發(fā),重復(fù)上述過程,無一例外,社會(huì)化的分工與協(xié)作、標(biāo)準(zhǔn)化、模塊化、快速迭代與大規(guī)模生產(chǎn)等工業(yè)化概念,在軟件產(chǎn)品的生產(chǎn)過程中很難見到,現(xiàn)在的開發(fā)團(tuán)隊(duì)、組織、公司,恰如古代的手工作坊。所以,目前的軟件開發(fā)還處于手工業(yè)生產(chǎn)階段。

      軟件的未來和發(fā)展趨勢就在于軟件生產(chǎn)的工業(yè)化。有人說軟件太復(fù)雜了,各種依賴包、版本控制、協(xié)議和編程語言不同等一系列問題,導(dǎo)致想要實(shí)現(xiàn)類似硬件的工業(yè)化生產(chǎn)幾乎不可能。但是,這種軟件的復(fù)雜性又來自哪里呢?對于全世界的軟件開發(fā)人員來說,從來沒有一個(gè)統(tǒng)一的規(guī)范來約束其開發(fā)過程,文件名稱、方法名稱、參數(shù)變量等等隨便定義,數(shù)據(jù)存儲(chǔ)與返回值沒有約束,這樣開發(fā)出來的軟件很難重用和互聯(lián)互通。各種編程語言有各自的編碼規(guī)范,而這些編碼規(guī)范在哪個(gè)軟件產(chǎn)品中起作用,要看開發(fā)團(tuán)隊(duì)或開發(fā)人員的自覺。所以,軟件的復(fù)雜性在于沒有一個(gè)工業(yè)化規(guī)范來約束軟件產(chǎn)品的開發(fā)和生產(chǎn)。

      那么,軟件工業(yè)化實(shí)現(xiàn)起來真的很難嗎?我們摒棄軟件復(fù)雜性的說法,看看如何用功件和面向功件編程,實(shí)現(xiàn)軟件工業(yè)化生產(chǎn)。

      在闡述功件之前,我們先澄清一下功件和目前軟件開發(fā)中的組件(構(gòu)件)的區(qū)別。

      首先看一個(gè)軟件產(chǎn)品中的組件,如下圖:

萬碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式