关于软件版本命名的方法

当然,这个在这里谈的很多了, 但这里只是说说我们这边用的几种模式, 主要针对发布比较频繁发布的情况,比如两周一次,一个月一次之类的。
【一、major.minor】
比如1.0, 1.2, 2.5, 3.0等等。 major是主要版本号,major相同,minor不同的版本,是后相兼容的 - 也就是说不会有schema change(如果读文件的话),也不会有breaking api(如果暴露api的话)。
当然,你觉得一个major不够用,完全可以扩展为major.major.minor, 如果你在乎后向兼容,这个的确蛮好用的。
major.minor的问题在于如何比较两个版本哪个更新:比如:5.8和5.12, 数字上5.8 > 5.12, 而可能发布者的用意是5.12 > 5.8, 那么5.8是不是5.08更合适; 总之,有点混淆在里面了。
当然,只要事先安排好,还是可以做的很好的,比如定义minor都是两位的,那么就不会有5.8: 要么5.80,要么5.08。 超过99的版本,必须升major。
【二、递增的整数】
这个在我们以前的产品里用过,貌似是没有上面那个问题了。
但是用户看到这些愚蠢的版本号:比如137, 55, 33,迷茫之外除了骂人真的不能期望他们再做些别的了:这TM都什么意思???
【三、日期】
最好是按照ISO日期格式: 20121205, 这个好处是除了表示日期之外,按整数看还是递增的,比较好用。
  • 比如用户看到一个版本:20121205,就知道这是2012年12月5号发布的;
  • 比如我说所有比20121205老的版本都不支持邮件通知这个功能,大家也很清楚这是什么意思。
用日期的问题是如果你一天有多个版本发布(疯了?)就没法表示了,一个简单的方法是用symbolic link:
20121205 -> 20121205-1
所以,如果你的软件要在一定时间内提供后向支持,用major.minor吧; 如果不要,那么请用ISO date吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java Word转Html

最近转换的需求比较多,最近做了一个Word转Html的 这个要导一个包和配置一个文件 1.jacob.jar 2.与jacob.jar相对应的jacob.dll(放在windows/sys32下或者放在jre下面) 代码 1 packagetest;2 3 importjava.io.File;4 5 importcom.jacob.activeX…

在vue.js引用图片的问题

<div id"img"> <img src"img.png" class"img"> </div> $(".img").attr("src",require("/img.png")); 在vue里在js中引用图片必须加一个require关键字和在图片地址前面加符号 转载于:https://ww…

CreateCompatibleDC

CreatCompatibleDC()创建了一个和当前屏幕的DC兼容的内存DC&#xff08;DC就是设备上下文的意思&#xff0c;设备上下文就是当前的这个窗体的一些属性&#xff0c;譬如说他使用的画刷&#xff0c;画笔等等&#xff09;&#xff0c;在绘制位图的时候&#xff0c;你必须要在内存中…

leveldb中为什么L 0层中每个sst文件中key的范围都是有重叠的?

在leveldb中&#xff0c;level 0层中的sst文件是由immutable memtable通过后台线程flush得到的&#xff0c;但是由于immutable memtable中的key可能是由重复的&#xff0c;因此在leveldb中将sst文件中key的范围有重叠的所有sst文件都放在了level 0层中&#xff0c;而其他level层…

一些令人震惊的话

1.现在女人真伟大。不知不觉肚子大、有了孩子没有爸&#xff01;2.小时候我们把玩具当朋友、长大了朋友拿我们当玩具。3.你不能让所有的人满意&#xff0c;因为不一定所有的都是人。4.人生就象卫生纸、没事尽量少扯、&#xff01; 5.有老公怎么的&#xff1f; 有守门员球还进呢…

文本分类的一种对抗训练方法

最近阅读了有关文本分类的文章&#xff0c;其中有一篇名为《Adversarail Training for Semi-supervised Text Classification》, 其主要思路实在文本训练时增加了一个扰动因子&#xff0c;即在embedding层加入一个小的扰动&#xff0c;发现训练的结果比不加要好很多。 模型的网…

在leveldb中,为什么要有immutable memtable?

目的是&#xff1a;为了防止写入kv时被阻塞。 设想&#xff0c;如果没有immutable memtable&#xff0c;当memtable满了之后后台线程需要将memtable 立即flush到新建的sst中&#xff0c;在flush的过程中&#xff0c;新的KV记录是无法写入的&#xff0c;只能等待&#xff0c;就…

密码强弱提示(27)

密码的强弱提示是对用户填写登陆密码的复杂程度来给出提示&#xff0c;使用密码的强弱提示可以增强用户对密码的保护意识&#xff0c;对如今的网络是非常有必要的&#xff0c;本程序中当用户输入完密码后&#xff0c;网页会自动的对用户输入的密码给出强弱判断。 使用JavaScrip…

MySQL Cluster 用户权限共享 (各sql节点同步)

转自&#xff1a;http://blog.csdn.net/ylqmf/article/details/7866517 MySQL Cluster API节点 中mysql.user 表为MyISAM引擎&#xff0c;所以每个API都要配置权限系统&#xff0c;MySQL已经为我们提供了共享权限脚本。这个脚本主要作用就是将mysql.user 表MyISAM引擎更换为NDB…

vue项目创建,redis列表字典操作,django用redis的第二种方法

vue项目的创建&#xff08;路飞前端&#xff09; -安装node.js -安装vue的脚手架 -创建vue项目&#xff0c;vue create 项目名字在pycharm中开发vue -webstrom,pyacharm,goland,idea,androidStuidio,Php.... -Edit-conf----》点 选npm-----》在script对应的框中写&a…

心理学三大流派

心理学三大流派及其代表人物精神分析学派、行为主义学派、人本主义心理学影响最大&#xff0c;被称为心理学的三大主要势力[编辑]精神分析学派代表人物&#xff1a;西格蒙德弗洛伊德精神分析由弗洛伊德开创&#xff0c;其后被不断修正与发展&#xff0c;影响力远远超出心理学&a…

《In Search of an Understandable Consensus Algorithm》翻译

Abstract Raft是一种用于管理replicated log的consensus algorithm。它能和Paxos产生同样的结果&#xff0c;有着和Paxos同样的性能&#xff0c;但是结构却不同于Paxos&#xff1b;它让Raft比Paxos更易于理解&#xff0c;并且也为用它构建实际的系统提供了更好的基础。为了增强…

从软件交付看软件验收管理

软件项目交付验收是软件质量保障的最后一道防火墙&#xff0c;也是企业乃至每个项目成员都想要的结果&#xff0c;软件项目终于可以告一段落。一个软件项目的验收&#xff0c;一般是由一系列验收准备工作组成的&#xff0c;如果我们在最终验收前&#xff0c;已经将很多阶段的工…

十三、实现Comparable接口和new ComparatorT(){ }排序的实现过程

参考&#xff1a;https://www.cnblogs.com/igoodful/p/9517784.html Collections有两种比较规则方式&#xff0c;第一种是使用自身的比较规则&#xff1a; 该类必须实现Comparable接口并重写comparTo方法。 this可以想象为1&#xff0c;传入对象o想象为2&#xff0c;返回1-2即按…

Presto入门介绍

最近在调研presto查询引擎的模块&#xff0c;先了解了下大体的框架和基本知识。这篇文章适合入门的童鞋看&#xff0c;因此转载了&#xff0c;用于以后查询使用。 1&#xff0c; Presto基本认识 1.1 定义 Presto是一个分布式的查询引擎&#xff0c;本身并不存储数据&#xff…

职场有影帝出没,屌丝们请当心!

引子职场有影帝出没&#xff0c;请当心&#xff01;广大屌丝请注意危险&#xff0c;谨慎前往。人生苦短&#xff0c;必须性感&#xff1b;职场如戏&#xff0c;要靠演技。不少公司正变成秀场&#xff0c;影帝层出不穷&#xff0c;屌丝们的辛苦努力一不小心就成了影帝的嫁衣。影…

深度点评五种常见WiFi搭建方案

总结十年无线搭建经验&#xff0c;针对企业常见的五种办公室无线网络方案做个简要分析&#xff0c;各种方案有何优劣&#xff0c;又适用于那种类型的企业。方案一&#xff1a;仅路由器或AP覆盖简述&#xff1a;使用路由器或AP覆盖多个无线盲区&#xff0c;多个AP的部署实现整体…

项目开发经验谈之:项目到底谁说了算

项目开发经验谈&#xff1a;项目的到底谁说了算 前言&#xff1a;项目到底是为谁而做&#xff0c;一个项目的成功到底是怎么样在评价&#xff1a;是领导阶层肯定&#xff0c;还是客户满意&#xff1f; 系列文章链接 项目开发经验谈&#xff1a;如何成为出色的开发人员盲目的项目…

深入理解Presto

深入理解Presto 简介 Presto是一个facebook开源的分布式SQL查询引擎&#xff0c;适用于交互式分析查询&#xff0c;数据量支持GB到PB字节。presto的架构由关系型数据库的架构演化而来。presto之所以能在各个内存计算型数据库中脱颖而出&#xff0c;在于以下几点&#xff1a; …

实战演示 bacula 软件备份功能

原文地址&#xff1a;http://www.linuxde.net/2012/04/9734.html 一、实例演示bacula的完全备份功能 1&#xff0e;创建卷组 执行如下命令&#xff0c;连接到bacula控制端&#xff0c;执行备份恢复操作&#xff1a; [rootbaculaserver opt]#/opt/bacula/sbin/bconsole Connec…