软件开发中的资源管理

作者:朱金灿

来源: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目录是这样的:


原文地址:https://www.cnblogs.com/lanzhi/p/6470074.html