博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件版本定义【转、原】
阅读量:6948 次
发布时间:2019-06-27

本文共 2154 字,大约阅读时间需要 7 分钟。

hot3.png

       最近一段时间我们一款产品不断的进行改版,好不容易初始版本稳定后,又接着进入无序的版本迭代,开发人员完成开发任务发版之后,客户反馈回来的问题,与实际交付的版本内容不一致,明确后发现是上一版本产生的,又或者1.1在测试,1.2又立刻进入开发,代码混乱,需求混乱,整个项目推进过程,乱糟糟的,毫无章法,频频遭到客户投诉;

        为了改变现状,我们从产品需求、开发、测试、发版都定义了具体的版本号,客户提交问题、测试反馈问题、开发人员解决问题、开发需求全部对应到版本,总之所有问题说话之前全部以版本开头,如此之后项目推进过程比原来稳健多了,客户这边也慢慢习惯这种推进方式,目标清晰,结果明确;

    在版本号的定义方式上刚开始团队是模糊的,最初是两位数,如1.2;慢慢发现如此叠加,很快版本就2.0、3.0了;因此后来又演变成三位,如1.1.2;版本号第一位:用来控制大的改版,如UI整体变更,重大功能升级等; 版本号第二位:用来控制日常一些需求演进,小功能迭代;第三位:用来发布内部测试,其实这种定义方式我最近在豆瓣上看到文章才知道使用的是GNU风格;

下面是我在豆瓣上看到的文章,摘了部分,给大家看看:

版本控制比较普遍的 3 种命名格式 : 
一、GNU 风格的版本号命名格式 
主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]] 
Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]] 
示例 : 1.2.1, 2.0, 5.0.0 build-13124 
二、Windows 风格的版本号命名格式 
主版本号 . 子版本号 [ 修正版本号 [. 编译版本号 ]] 
Major_Version_Number.Minor_Version_Number[Revision_Number[.Build_Number]] 
示例: 1.21, 2.0 
三、.Net Framework 风格的版本号命名格式 
主版本号.子版本号[.编译版本号[.修正版本号]] 
Major_Version_Number.Minor_Version_Number[.Build_Number[.Revision_Number]] 
版本号由二至四个部分组成:主版本号、次版本号、内部版本号和修订号。主版本号和次版本号是必选的;内部版本号和修订号是可选的,但是如果定义了修订号部分,则内部版本号就是必选的。所有定义的部分都必须是大于或等于 0 的整数。 应根据下面的约定使用这些部分: 
Major :具有相同名称但不同主版本号的程序集不可互换。例如,这适用于对产品的大量重写,这些重写使得无法实现向后兼容性。 
Minor :如果两个程序集的名称和主版本号相同,而次版本号不同,这指示显著增强,但照顾到了向后兼容性。例如,这适用于产品的修正版或完全向后兼容的新版本。 
Build :内部版本号的不同表示对相同源所作的重新编译。这适合于更改处理器、平台或编译器的情况。 Revision :名称、主版本号和次版本号都相同但修订号不同的程序集应是完全可互换的。这适用于修复以前发布的程序集中的安全漏洞。程序集的只有内部版本号或修订号不同的后续版本被认为是先前版本的修补程序 (Hotfix) 更新。 
版本号管理策略 
一、GNU 风格的版本号管理策略 
1.项目初版本时,版本号可以为 0.1 或 0.1.0, 也可以为 1.0 或 1.0.0,如果你为人很低调,我想你会选择那个主版本号为 0 的方式; 
2.当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1; 
3. 当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,因而可以被忽略掉; 
4.当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加 1; 
5.另外,编译版本号一般是编译器在编译过程中自动生成的,我们只定义其格式,并不进行人为控制。 
二、Window 下的版本号管理策略 
1.项目初版时,版本号为 1.0 或 1.00; 
2. 当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1; 
3. 当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,因而可以被忽略掉; 
4. 当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加 1; 
5. 另外 , 编译版本号一般是编译器在编译过程中自动生成的,我们只定义其格式,并不进行人为控制。 
另外,还可以在版本号后面加入 Alpha、Beta、Gamma、Current、RC (Release Candidate)、Release、Stable 等后缀,在这些后缀后面还可以加入1 数字的版本号。对于用户来说,如果某个软件的主版本号进行了升级,用户还想继续那个软件,则发行软件的公司一般要对用户收取升级费用;而如果子版本号或修正版本号发生了升级,一般来说是免费的。 

转载于:https://my.oschina.net/martinl/blog/592415

你可能感兴趣的文章
jquery设置元素的readonly和disabled
查看>>
监控文件是否被修改
查看>>
Linux学习笔记:Rsync
查看>>
转:APK Crack
查看>>
Beanstalkd协议 二(任务的生命周期)
查看>>
jvisualvm远程监控 visualgc插件 不受此jvm支持问题
查看>>
(1)Powershell简介
查看>>
zabbix客户端配置
查看>>
Logtail提升采集性能
查看>>
史上最失败的一次营销活动
查看>>
asp.net5发神经一例 ------无法加载依赖
查看>>
数据库水平切分的实现原理解析
查看>>
nova boot from volume在多主机zone下的坑
查看>>
uip中关于web服务器的简单例子
查看>>
Windows 10 ADK 1809 的变更 附下载地址
查看>>
修改win7和win8 preview双系统的开机默认启动项
查看>>
参考案例Shop-React-Native,后端Yii2
查看>>
关于PHP_CMS的一点感想
查看>>
知乎[披萨不就是个大饼铺点肉]问题延伸出的认知风格相关知识
查看>>
新浪微博基于混合云的PHP服务化与弹性扩容
查看>>