無論您是使用PC還是智能手機(jī),總是要打開軟件并執(zhí)行某些操作。 首先,運(yùn)行PC和智能手機(jī)的操作系統(tǒng)本身就是軟件,因此可以說你總是從軟件中受益,但是除了該領(lǐng)域的開發(fā)人員之外,其他人很難理解實際上如何開發(fā)軟件。 一部解釋這樣一個令人驚訝的未知過程視頻“軟件是如何開發(fā)的(How Software is Made)?”已經(jīng)在YouTube上發(fā)布。
軟件是計算機(jī)程序,由“1”和“0”的組合組成。 這稱為二進(jìn)制文件,這是計算機(jī)唯一可以理解的東西。
那么我們?nèi)绾螐能浖?chuàng)意到可執(zhí)行的二進(jìn)制文件呢?
因為自己寫二進(jìn)制太麻煩又花時間,所以一般使用源代碼(Source code),是指一系列人類可讀的計算機(jī)語言指令。
源代碼任何稍加訓(xùn)練的人都可以閱讀,就像是對電腦的命令書一樣。
源代碼可以由許多“編程語言”專用開發(fā)語言編寫,目前使用的編程語言包括Java,Python和Ruby等等。
這是由編程語言之一“C ”編寫的源代碼。這個只是在電腦的顯示器上顯示“Hello World!”的簡單程序。
若要在計算機(jī)上運(yùn)行此源代碼,必須將源代碼轉(zhuǎn)換為計算機(jī)可讀的二進(jìn)制文件。 將源代碼轉(zhuǎn)換為二進(jìn)制文件的過程稱為“編譯(Compile)”。
如果編譯成功并且源代碼轉(zhuǎn)換為由0和1組成的二進(jìn)制文件,則程可以在計算機(jī)上執(zhí)行。
但是,如果拼寫錯誤或缺少必需的符號,編譯將失敗,計算機(jī)將無法運(yùn)行該程序。
一個簡單的程序可以由單個程序員開發(fā),但是…
大型程序可能有數(shù)百名程序員并行協(xié)同工作,需要數(shù)年時間才能完成。
大型程序通常分為數(shù)百到數(shù)千個“文件”。 每個程序員分擔(dān)不同文件,通過共同工作完成一個程序。 對于一起創(chuàng)建大型程序的程序員來說,相互合作是必不可少的。
對于大型項目的管理,采用了稱為“版本控制系統(tǒng)( Version control system)”的系統(tǒng)。 在版本控制系統(tǒng)中,程序員創(chuàng)建的所有源代碼都存儲在服務(wù)器(Server)上。
每個程序員進(jìn)行開發(fā)時,先從服務(wù)器下載源代碼(Check Out),在他的終端上編寫程序。
程序員定期將修改后的文件提交(Check In)到服務(wù)器,服務(wù)器會詳細(xì)記錄文件被修改的時間、人員和方式。
如果整個程序在某個時候出現(xiàn)問題,開發(fā)人員可以取消更改(Rollback),直到程序正常工作。 解決文件問題點(Bug),提交更正后的文件,如果沒有問題就OK了。
即使在軟件開發(fā)階段,也會徹底檢查異常情況,但產(chǎn)品發(fā)布后不可避免地會發(fā)現(xiàn)異常。 這就是通常稱為“錯誤(Bug)”的軟件缺陷。
即使在發(fā)布后,軟件開發(fā)人員也必須修復(fù)發(fā)現(xiàn)的錯誤并不斷改進(jìn)他們的軟件。這就是軟件版本會多次更新的原因。
軟件開發(fā)方法大致可以分為兩種模式。 第一種是專有軟件(Proprietary software),又稱非自由軟件(non-free software)、專屬軟件、私有軟件、封閉性軟件等,這是由個人或公司為商業(yè)目的開發(fā)的軟件,由于源代碼不公開,只將成品交付給用戶,因此需要花費(fèi)時間和金錢才能實現(xiàn)“我希望你這樣做”或“我希望你改變這個”的需求。
另一個是開源軟件(Open Source Software,縮寫:OSS)又稱開放源代碼軟件。 它通常是免費(fèi)提供給用戶的軟件,任何人都可以訪問源代碼。
著名的開源軟件包括VLC媒體播放器,GIMP圖像編輯軟件,FireFox瀏覽器和音頻編輯軟件Audacity 等等。
開源軟件開發(fā)人員通常沒有經(jīng)濟(jì)報酬,只是帶著對高質(zhì)量軟件的熱情進(jìn)行開發(fā)。
開源軟件下載站點和主頁通常有一個“捐贈給開發(fā)人員”部分。 許多人忽略了“捐贈給創(chuàng)始人”一欄,但這是很多人忽略的“向開發(fā)者捐款”一欄,即使成品是免費(fèi)獲得的,為了回報他們的獻(xiàn)身熱情,捐款系統(tǒng)也是不可缺少的。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。