软件开发中的资源管理
作者:朱金燦
來源:http://blog.csdn.net/clever101
?
??????? 前言:這是我在公司內部的一個培訓,培訓完之后特地整理成一篇文章。
?
??????? 應該說這是一個很大的題目,在這里我只是簡單談談我的一些心得體會,不當之處,還請大家賜教。
?
??????? 要論述軟件開發中資源處理,首先要明確軟件開發中涉及到哪些資源。軟件開發中涉及三方面的資源:人力資源、代碼資源和文檔資源。本文重點談論如何管理代碼資源和文檔資源。
?
???????? 代碼資源一般需要通過版本管理工具進行管理。為什么需要版本管理工具?一方面是因為現代軟件開發是一個團隊活動,是需要進行協作開發的;另一方面版本管理具有回溯歷史版本的功能,在排錯中具有重要意義。
?
那么一般常用的版本管理工具有哪些呢?在我剛參加工作時,使用的是微軟出品的VSS 6.0。VSS 6.0的優點是簡單,上手快,缺點是不適合復雜的協作開發環境,比如它不支持多人同時遷出同一個文件。當然后來微軟對VSS 6.0做了升級,不過我沒使用過比VSS6.0更高的版本。現在使用的是SVN。SVN是一個開源的集中式的源碼版本管理工具,在IT界中廣泛使用。現在廣泛使用的還有Git。Git是一個開源的分布式的源碼管理工具,在開源社區廣泛使用。現在它在IT企業中也慢慢流行。
?
我最經常使用的SVN有四個操作:
遷出(check out):將服務器的版本下載到本地作為一個副本。
提交(commit):將本地修改的代碼上傳到服務器
更新(update):下載服務器上最新代碼到本地
恢復(revert):將本地修改的代碼還原到上一個版本
?
???????? 使用SVN常見的目錄結構是怎樣的?具體如下圖:
??????? 從上圖可以看到一個svn版本庫下一般有三個目錄:trunk、branches和tags。trunk很好理解,就是存放最新版本代碼的目錄。為什么會有branches和tags?就是說它們的作用是什么?branches作為存放分支版本的目錄,主要起到一個試驗的作用。比如當你試驗一個新的繪圖引擎,你在主干版本試驗就不太合適。因為主干版本的代碼是經常處在劇烈變動的狀態,很可能導致試驗無法進行,同時你編寫試驗代碼也會影響其它人的代碼。因此穩妥的辦法是你復制一份主干版本到branches目錄下作為一個分支來試驗,待試驗通過后再和主干版本進行代碼合并。tags主要作用在于存放不作改動的比較穩定的歷史版本。比如你要對外發布版本,你不可能編譯最新代碼來獲取一個版本來對外發布,因為這個版本雖然是最新的,但肯定不是最穩定的,因為沒有經過嚴格測試。因此你需要從tags目錄下找一個穩定的歷史版本來發布。
?
說完了自主代碼的管理,我們再談談第三方庫的管理。首先第一個問題是:為什么需要第三方庫?第三方庫的作用在于資源重用,減少開發時間。很多時候如果沒有第三方庫,要按時完成一個軟件項目的開發是一件很困難的事情!
?
其次談一下第三方庫的種類。第三方庫大致分為兩種:商業第三方庫和非商業的開源第三方庫。其中商業第三方庫又可以分為提供源碼的商業第三方庫和僅提供接口文件和庫文件的商業第三方庫。
?
如何選擇第三方庫?我的建議有以下幾條:
1.?????? 優先選擇開源第三方庫。理由是:可以降低開發成本,同時利于定制。
2.?????? 在沒有好的開源第三方庫的情況下優先選擇提供源碼的第三方庫。理由是方便定制。
3.?????? 優先選擇成熟度高的第三方庫。那么如何判斷一個第三方庫的成熟度?可以從以下方面考察:考察第三方庫的更新頻率,毫無疑問更新頻率越高表示越活躍,也有利于其成熟;是否有活躍的交流社區,有表示成熟度更高;考察其在搜索引擎的搜索結果條數,條數越多表示越成熟。
?
如何利用第三方庫?最基礎是直接使用其提供的接口,高級一點是根據需要添加接口,同時修改它的bug。比較高級的是在剖析它的源碼之后進行定制。比如淘寶對MySQL和hadoop的定制。
?
談完了軟件開發中代碼管理,再談談軟件開發中的文檔管理。我們談談在軟件開發中文檔可以分為一下幾類:
1.?????? 設計文檔。如概要設計、詳細設計
2.?????? 交流文檔。如內部會議記錄、和甲方的交流郵件
3.?????? 經驗總結。如技術總結、開發中用到的電子書
?
??????? 文檔在軟件開發的作用其實是不亞于代碼的,但是現實中開發人員往往對文檔不夠重視。其中一個重要原因是不少開發人員體會不到文檔的作用。那么文檔到底有什么用?在我看來至少有兩方面作用:首先設計方面的文檔本身就是甲方要求的,你不想寫都不行;二是文檔可以作用過程資產來共享。比如項目經理不可能每來一個新同事都通過口頭來介紹項目情況(因為項目經理沒有這個精力和時間),肯定是需要發一些文檔來給他看,讓他自己來學習。又比如開發人員離職,不通過文檔又如何把工作順利交接到同事手中呢?
?
文檔也是經常變動的,因此它也是需要版本管理工具進行管理的。
?
最后我們看到一個版本數據庫的目錄可以是這樣的:
在trunk目錄是這樣的:
在doc目錄是這樣的:
總結
以上是生活随笔為你收集整理的软件开发中的资源管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java indexof效率_Java
- 下一篇: 以嵌入式系统设计师考试成绩,开始嵌入式博