基线的含义:一步一个脚印……
Baseline(基线)是一个容易让人困惑的概念。为啥容易困惑呢?往深了说,有文化方面的因素…… Baseline是他们欧美人常用的一个概念,远不止在SCM领域…… 咱还是往浅了说吧……
即使在SCM领域,Baseline也有相互间略有区别的几种含义。
第一种,最常见,指源代码树的Snapshot(快照/断面)。当然,不是任意时刻的一个Snapshot都是Baseline。基线通常意味着,首先,被明确的标识出来,将来可以复现,比如用一个Label/Tag(标签)标识;其次,达到了一定的质量级别,比如,编译通过了,或者粗略测试通过了,或者系统测试通过了。这样,基线就好像脚印。只有踩实了这一步,才去迈下一步…… 如果项目不大,清清爽爽,一切尽在掌握中,你可以蹦蹦跳跳。但是,在上规模的项目中,在深浅未知泥潭里,还是稳一点吧……
第二种,指一份文档的某一个版本。这个版本,质量比较好,没啥错误或者前后矛盾的地方。相关的同志也都看过了,一致同意,都点了头。那么,这个版本就作为基线了。大家以后都要遵守。如果是需求文档,那就轻易不要变了,要根据它做设计。如果是设计文档,那就轻易不要变了,要根据它做实现…… 这里,基线有点儿像结婚…… 也就是说,真不成,也能离婚…… 轻易不要变,万不得已还是可以变的,只不过变起来比较麻烦,得先再次征得相关同志的一致同意(一般来说)……
第三种,不是一份文档了,而是一个项目的“所有的”文档和“所有的”源代码在一起的一个断面。这个断面,除了要保证有一定的质量外,更重要的是,1. 达到了某个阶段性目标,比如,系统设计完成,或某个重要功能实现。2. 基线内,各文档间,文档与源代码间,是一致的。文档上说,点一下按钮,蹦出三只红眼睛兔子,那源代码就要实现蹦出三只红眼睛兔子,四只是不行的,绿眼睛是不行的,耗子也是不行的…… 通常,这样的基线,就可以对应到项目的Milestone(里程碑)上了。
从频度上说。第一种基线通常比较频繁。可能一两周一个,也可能一两天一个。第二种基线,每个文档可能只有一个,也可能后来有修改,有又几个。第三种基线,数量有限的几个,通常是项目起始时就计划好了。
就写到这儿吧。原创。难免有偏颇的地方。还请大家多多指教,一起交流!
转自:http://www.dongyue.name/scm/articles/scmlife/what_is_baseline.htm