【未雨绸缪-理解软件配置管理】赏析六
构建是配置管理工作的一个重要环节,让我们看看流水先生是如何保证“每次构建的结果都一样”的吧o(∩_∩)o...
== 第六章中,谈到如何保证每次构建的结果都一样 ==
这一章比较特殊。我们一直在谈论管理软件资产的版本,管理软件资产的变化演进。这些是软件配置管理的主要内容。但是,软件配置管理也包括对资产转化过程的管理,简单地说,就是如何从源代码生产出安装包。
对从源代码到安装包这一生成转换过程,要有足够的管理,确保其可重复性。那么有哪些工作要做呢?为了让结果是明确固定的,我们需要:
第一,原材料是固定和明确的。要保证,产品的全部源代码的版本是固定和明确的。如果有其他输入,比如文档、数据等,也应该是固定和明确的。如果连输入都不确定,何谈输出?
第二,工具是固定和明确的。比如,用的是什么牌子的、哪个版本的编译器?用的是什么牌子的、哪个版本的打包工具?甚至,更广泛的,用的是什么牌子的、哪个版本的操作系统?如果这些不同,都有可能导致相同的输入产生不同的结果。这是软件方面;而在硬件方面,有时也需要做出一定的说明。比如,是32位机还是64位机?最低的硬件配置是怎样的?
有些原材料,是工具自带的,暗含的。或者在某种意义上说是公共的。比如,编译工具自带的静态链接库;或者是被广泛使用的,比如,由另外某个厂家提供的静态链接库。这些,也都有牌子、名字的问题,版本的问题。如果它们变化,结果就会变化。如果它们不确定,结果就会不确定。
第三,参数设置也必须是固定和明确的。这在具体执行编译、链接和打包的命令参数上体现出来。这也和对工具和环境进行配置时,设置的参数有关,其中一个例子是操作系统的环境变量。参数不仅仅是数字、数量和名称,也指关于执行方法的选项。
最后,生产过程是固定和明确的。这包括自动的部分,比如Makefile文件、Ant文件,相关脚本;也包括手动的部分,比如先使用哪个工具,执行哪个操作,再使用哪个工具,执行哪个操作。
总之,根据固定和明确的输入,使用固定和明确的工具,按照固定和明确的方法,产生的输出,就是固定和明确的了。这是我们想要的。
搜索更多相关主题的帖子:
未雨绸缪 软件 赏析 管理