持續(xù)交付(第二章)—配置管理

在上一章中,作者列舉了一些在軟件開發(fā)中常見的問題,比如,手動部署項(xiàng)目,代碼沒有測試,團(tuán)隊(duì)協(xié)作沒有采用版本控制系統(tǒng)等等,同時也告誡了我們一些避免的方法,在上述的一些問題中,我都不幸中彈了,也發(fā)現(xiàn)了自己的一些可以改進(jìn)問題,領(lǐng)悟到一個道理:軟件開發(fā)絕不僅僅是寫代碼而已。

在這一章作者向我們介紹了如何管理你的配置,剛看這一章時,我有點(diǎn)懷疑我之前理解的配置定義是正確的么?最后發(fā)現(xiàn)只是理解的有點(diǎn)片面了。

持續(xù)集成

配置管理定義

配置管理是一個過程,通過該過程,所有與項(xiàng)目相關(guān)的產(chǎn)物,以及它們之間的關(guān)系都被唯一定義,修改,存儲和檢索。

配置管理通常與版本控制作為同義詞出現(xiàn),版本控制系統(tǒng)是配置管理的實(shí)現(xiàn)工具。配置管理所需要管理的內(nèi)容不僅僅是項(xiàng)目源代碼,有關(guān)項(xiàng)目的所有文件都應(yīng)該被包含,比如,測試代碼,數(shù)據(jù)庫腳本,構(gòu)建和部署腳本,文檔,庫文件和應(yīng)用軟件配置文件等等

版本控制

版本控制系統(tǒng)是保存文件多個版本的一種機(jī)制。當(dāng)修改某個文件后,你仍舊可以訪問該文件之前的任意一個版本,極大促進(jìn)團(tuán)隊(duì)的共同合作。

現(xiàn)在比較普遍常用的應(yīng)該就是git了,使用版本控制系統(tǒng)的兩個主要目的是,保留每個文件的所有版本的歷史信息,使之易于查找,可以回到最近一次正確的版本中。提供基于元數(shù)據(jù)的訪問方式,使元數(shù)據(jù)與某個單個文件或集合相鏈接。

還有一個很重要的點(diǎn),那就是真的真的要對項(xiàng)目所有內(nèi)容進(jìn)行版本控制,這樣一個極大的好處就是能夠隨時獲取軟件在生命周期中任意節(jié)點(diǎn)的文件狀態(tài),這樣就可以選擇從開發(fā)環(huán)境至生產(chǎn)環(huán)境整個環(huán)節(jié)的任意時間點(diǎn),并將系統(tǒng)恢復(fù)至那個時間點(diǎn)。

依賴管理

依賴管理一般就是管理項(xiàng)目中所使用的第三方庫,以及該項(xiàng)目需要用到的正由其他團(tuán)隊(duì)開發(fā)的模塊或組件間的關(guān)系。

由于這些第三方依賴,一般來說都是二進(jìn)制文件,且變更不頻繁,所以到底要不要納入版本控制系統(tǒng)中呢?我覺得可以不納入,就存在本地就好了,這樣也可以減少遠(yuǎn)程版本控制庫的尺寸。

軟件配置管理

配置信息與產(chǎn)品代碼及其數(shù)據(jù)共同組成了應(yīng)用程序。
一般來說我們會在軟件開發(fā)的任何時候都會進(jìn)行軟件的配置,因?yàn)楹茈y做到那種一勞永逸的軟件配置,并且這種配置也是很危險(xiǎn)的。

將那些特定于測試環(huán)境或產(chǎn)生環(huán)境的實(shí)際配置信息存放在與源代碼分離的代碼庫中是十分必要的,因?yàn)檫@些信息肯定與代碼的更新頻率是不同的,但是我們要保證兩者具有相同的版本號

環(huán)境管理

沒有哪個應(yīng)用程序是孤島,每個應(yīng)用程序都依賴于硬件,軟件,基礎(chǔ)設(shè)施以及外部系統(tǒng)才能工作,我們把這些稱為軟件的環(huán)境。

上面所說的那些組成環(huán)境的元素,我們都應(yīng)該納入版本管理系統(tǒng),以及每次的變更都要有所描述并提交遠(yuǎn)程,對每個修改都要進(jìn)行測試,以確保它不會破壞在新版本的環(huán)境中運(yùn)行的程序。

環(huán)境管理也是可以使用工具來實(shí)現(xiàn)的,這樣你就可以來聲明一些事情,定義一些權(quán)限。

總結(jié)

看完這一章,有解決之前遇到的問題,也有一些新的問題出現(xiàn)。

我的收獲

  • 重新了解了配置管理
  • 開發(fā)項(xiàng)目時的確應(yīng)該將所有資料文件納入版本控制系統(tǒng)
  • 深刻了解到版本控制系統(tǒng)的必要性
  • 增量式開發(fā)就是小步提交
  • 多些注釋,注釋也是有基本的結(jié)構(gòu)的

我的疑惑

  • 還是不能很好區(qū)分配置管理,版本控制,環(huán)境管理,軟件配置這幾個詞語。
  • 在這一章中,作者說要盡量避免為了一個功能重新創(chuàng)建分支,和git flow工作流程就沖突了
  • 軟件配置到底應(yīng)該在什么時候進(jìn)行,構(gòu)建?部署?測試還是發(fā)布,之前些項(xiàng)目好像都是一邊些項(xiàng)目一邊覺得缺少配置再添加
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容