研發中版本管理的規範性
案例1:這階段公司內部在測試一個即將上線的產品,好幾次都遇到執行良好的服務在某個時間段後不能提供正確服務的情況,由於產品涉及到多個端,協作人員眾多,而且各端軟體的更替也較頻繁,在從內部排查問題的同時也在從外部著手確定是否有人更改過某個程式,眾研發人員都說沒有更改過程式。但是隨著排查的深入往往會發現是某個人搞混了自己釋出程式的版本。
案例2:團隊中有人在釋出動態庫或應用程式時採用日期來做版本號,在頻繁迭代的過程中無法使應用程式和原始碼管理系統中版本對應起來,不利於定位問題。
案例3:使用原始碼管理系統提交時為了偷懶或者忽視,不標註或隨意填寫改動描述,在進行程式碼回退時那個費勁。
版本管理的重要性在研發工作中不言而喻,缺乏規範化在研發階段會嚴重影響開發效率,在測試階段也會造成很多無意識的錯誤,一旦到了釋出階段造成的損失會更大。記得在一次公司規範管理的會議上,老總曾提到過我們的硬體產品由於燒錄程式版本的問題給公司造成了很大的經濟和聲譽損失。所以如何規範化版本管理首先作為研發人員和管理人員的我們要在心裡重視起來,進而採取措施去規範化版本。
原始碼和文件管理:如果你的公司還沒用原始碼管理工具進行原始碼管理,你出頭的機會就來了,向他們推薦SVN和GIT吧(別笑,還真有很多公司沒有形成企業級的規範,我就逮到這麼一個機會),現在據我瞭解大部分商業公司還是在使用SVN,剛才案例3提到的提交改動描述的問題,SVN就沒有GIT做得好,SVN可以提交空註釋,於是就發現眾多偷懶的程式設計師們一片片空白的註釋,這純粹是挖坑埋自己......。提到文件,我們程式設計師最最討厭了,可是又不得不寫,用一些富文字工具寫出的文件無法進行內容比對,建議使用markdown來維護文件。
二進位制程式的管理:對於二進位制程式的版本規則,案例1給我們的教訓是必須得有,案例2告訴我們版本規則必須要能夠表達一定的含義或者對應一致的原始檔。最通用的形式通常是major.minor.build,在新版本推出時,應更新major、minor或是build的版號,決定於變更的大小。當有極大的更新時,會增加major的版號。而當有大更新,但不至於更新major時,會更新minor的版號。若更新比較小,例如只是除蟲(bug fixing),則會更新build的版號,這裡的build版本號通常可以和原始碼管理工具的revision版本號對應起來,這樣可以把應用程式和相對應的程式碼關聯起來,在進行bug查詢或修正時是個很大的便利。
小知識:在windows下利用svn的TortoiseSVN工具subwcrev.exe可以很容易獲取程式碼的revision,配合vs的指令碼工具可以很容易的寫入程式中。 在linux環境下使用svnversion命令即可。
本文轉自永遠的朋友部落格51CTO部落格,原文連結http://blog.51cto.com/yaocoder/1381830如需轉載請自行聯絡原作者
yaocoder
相關文章
- 軟體版本管理規範
- 研發規範雜談
- 軟體研發安全規範
- 程式碼分支及版本管理規範
- 專案開發過程中的管理規範
- 版本控制(版本規範,持續整合,交付)階段性總結
- 關於研發規範化的一些思考
- pkg版本規範管理自動化最佳實踐
- 程式碼管理和版本管理的作業流程以及規範是怎樣的?
- html規範及主要瀏覽器版本的發展HTML瀏覽器
- 前端開發規範:命名規範、html規範、css規範、js規範前端HTMLCSSJS
- 軟體專案研發流程該怎麼規範
- MySQL資料庫規範 (設計規範+開發規範+操作規範)MySql資料庫
- 開發中的你的Git提交規範嗎?Git
- Git 分支管理規範Git
- 密碼管理規範密碼
- 軟體版本命名規範
- Java中的命名規範。Java
- 開發中的程式碼規範實踐 PHPPHP
- 遊戲研發的設計規範(三):場景型別化製作遊戲型別
- Java開發規範(效能提升)更新中Java
- 研發過程中的文件管理與工具
- 開發規範
- git分支基本管理規範Git
- git分支管理和工作流規範:具體規範Git
- 關於SQL開發規範中的那些誤區!SQL
- Java開發中RestFul服務介面規範JavaREST
- 發表論文的規範
- 淺談專案的規範管理(轉)
- 【Spring Cloud + Vue 有來商城】研發小組開發規範全方位梳理SpringCloudVue
- redis開發規範Redis
- 前端開發規範前端
- MySQL 開發規範MySql
- 規範開發工具
- INFORMATICA 開發規範ORM
- MySQL開發規範MySql
- Redis 開發規範Redis
- react 開發規範React