当前位置:首页 > 芯闻号 > 充电吧
[导读]        前言:这是我在公司内部的一个培训,培训完之后特地整理成一篇文章。         应该说这是一个很大的题目,在这里我只是简单谈谈我的一些心得体会,不当之处,还请大家赐教。       


        前言:这是我在公司内部的一个培训,培训完之后特地整理成一篇文章。

 

        应该说这是一个很大的题目,在这里我只是简单谈谈我的一些心得体会,不当之处,还请大家赐教。

 

        要论述软件开发中资源处理,首先要明确软件开发中涉及到哪些资源。软件开发中涉及三方面的资源:人力资源、代码资源和文档资源。本文重点谈论如何管理代码资源和文档资源。

 

         代码资源一般需要通过版本管理工具进行管理。为什么需要版本管理工具?一方面是因为现代软件开发是一个团队活动,是需要进行协作开发的;另一方面版本管理具有回溯历史版本的功能,在排错中具有重要意义。

 

那么一般常用的版本管理工具有哪些呢?在我刚参加工作时,使用的是微软出品的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目录是这样的:


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

12月15日,一场以技术交流和创新碰撞为核心的开源大赛——开放原子开源大赛创新赛(简称“OpenHarmony创新赛”)在无锡市圆满落幕。

关键字: 软件开发

Laval社区以服务OpenHarmony开发者为宗旨,目标是打造最专业、最全面的OpenHarmony技术交流平台,致力于推动OpenHarmony生态长足发展,让OpenHarmony走进千行百业。

关键字: 软件开发

AI Workbench助力软件开发“左移”,使软件设计周期摆脱对芯片的依赖。

关键字: AI 软件开发

通过先进的Arm虚拟硬件集成和Linux系统中增强的基于云的协作,赋能下一代嵌入式软件开发

关键字: 嵌入式 软件开发 Linux系统

明显改善测试自动化相关用户体验,并为泰克和Keithley的客户提供无缝的仪器控制效果。

关键字: 软件开发 Python

近日,OpenHarmony 4.0 Release版本如期发布,开发套件同步升级到API 10。

关键字: 软件开发 操作系统

基于开发痛点,HarmonyOS NEXT通过构建Smart Perf工具全家桶,为开发和测试人员提供了测试、调优、分析一站式服务,接下来让我们一起来看Smart Perf如何解决开发性能问题。

关键字: 软件开发 HarmonyOS

嵌入式软件开发将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 嵌入式 嵌入式软件开发 软件开发

Java是一种广泛应用于软件开发的编程语言,它具有跨平台、面向对象和高度可靠性的特点。在嵌入式系统设计中,Java也有着广泛的应用方案。本文将详细介绍Java在嵌入式系统设计中的应用方案,并分析其优势和挑战。

关键字: Java 软件开发 编程语言
关闭
关闭