15 12
发新话题
打印

[赏析] 【未雨绸缪-理解软件配置管理】赏析六( 此文章被查看:736次,被回复:14篇!! )

本主题由 沙漠飞雪 于 2008-6-23 11:51 设置高亮

【未雨绸缪-理解软件配置管理】赏析六

构建是配置管理工作的一个重要环节,让我们看看流水先生是如何保证“每次构建的结果都一样”的吧o(∩_∩)o...

== 第六章中,谈到如何保证每次构建的结果都一样 ==


这一章比较特殊。我们一直在谈论管理软件资产的版本,管理软件资产的变化演进。这些是软件配置管理的主要内容。但是,软件配置管理也包括对资产转化过程的管理,简单地说,就是如何从源代码生产出安装包。


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



© 本文为 沙漠飞雪SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员
为受难的同胞们祝福,祈祷……

TOP

“第六章中,谈到如何保证每次构建的结果都一样”;
保证构建的可重复性;
那就要自动化构建了;
一系列流程走下来,全是自动完成的;相信在如此重复的工作和环境下,能够保证构建的结果都一样。
而配置管理工作;
就是要配置好这个自动构建的流程;
这当也是一个技术活儿;
当配置好了,
剩下的就好弄多了。
最近有时间也去研究研究这方面的知识。



© 本文为 CMStrugglingSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

回复 沙发 的帖子

看来上次不是最后一期。



© 本文为 scmscmscmSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

“总之,根据固定和明确的输入,使用固定和明确的工具,按照固定和明确的方法,产生的输出,就是固定和明确的了。”

这几个固定和明确,都需要文档化,否则,还需要固定和明确的人来做,才能保证,换个人就不一定了。
本帖最近评分记录

© 本文为 scmscmscm 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 scmscmscm 于 2008-6-23 14:51 发表
看来上次不是最后一期。
嗯;
看置顶的帖子: http://bbs.scmlife.com/thread-12392-1-1.html
里面说赏析日期是5月9号到7月9号;
我当时看上面只有前5期的内容;
还以为这两个月就赏析这5期呢。

© 本文为 CMStruggling 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 CMStruggling 于 2008-6-23 14:28 发表
一系列流程走下来,全是自动完成的;相信在如此重复的工作和环境下,能够保证构建的结果都一样。
这个有点疑问,自动化不能保证构建结果一样吧。自动化过程受外界环境的影响很严重,只要外界条件发生了变化(比如系统中的某个环境变量值被修改了,但自动化过程并没有跟进),就极可能引发蝴蝶效应。
本帖最近评分记录

© 本文为 missdeer 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 missdeer 于 2008-6-24 19:18 发表

这个有点疑问,自动化不能保证构建结果一样吧。自动化过程受外界环境的影响很严重,只要外界条件发生了变化(比如系统中的某个环境变量值被修改了,但自动化过程并没有跟进),就极可能引发蝴蝶效应。
嗯;有一定的道理;
但自动化要相比于手工完成,犯错误的几率就要减少好多;
所以自动化还是很有必要的;

还有就是楼上的朋友scmscmscm也说到了;
文档化也当是非常有用;
把构建过程文档化;也很有助于保证构建结果的一样。
本帖最近评分记录

© 本文为 CMStruggling 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 missdeer 于 2008-6-24 19:18 发表

这个有点疑问,自动化不能保证构建结果一样吧。自动化过程受外界环境的影响很严重,只要外界条件发生了变化(比如系统中的某个环境变量值被修改了,但自动化过程并没有跟进),就极可能引发蝴蝶效应。
MS我孤陋寡闻了;
“蝴蝶效应”?
missdeer能否在这里帮忙解释一下,对此不太了解。
本帖最近评分记录

© 本文为 CMStruggling 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 CMStruggling 于 2008-6-24 20:14 发表

MS我孤陋寡闻了;
“蝴蝶效应”?
missdeer能否在这里帮忙解释一下,对此不太了解。
大概是这样的,常言说,种瓜得瓜,种豆得豆。那么种蝴蝶会得什么呢?这可就说不准了,可能会得飓风。为什么呢?因为蝴蝶会扇翅膀。种下会扇翅膀的东西,都很难说能得什么。

呵呵,今天天闷,在这里泼个猴。

© 本文为 流水先生 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
欢迎访问俺家http://www.dongyue.name

TOP

引用:
原帖由 missdeer 于 2008-6-24 19:18 发表

这个有点疑问,自动化不能保证构建结果一样吧。自动化过程受外界环境的影响很严重,只要外界条件发生了变化(比如系统中的某个环境变量值被修改了,但自动化过程并没有跟进),就极可能引发蝴蝶效应。
这个
。。。。。。外界条件发生了变化,自动化过程跟进,难道不是构建工程师的任务?
本帖最近评分记录

© 本文为 wangwen 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
子曰:唯变更乃不变也
子曰:唯进度与美女难追也
子在川上曰:BUG如斯乎

TOP

 15 12
发新话题