版本浅析

今天给大家聊聊版本。

目前我们所有的系统、软件,都少不了版本,版本是指用于描述同一事物的不同差异的标识。 在程序员眼中,版本是无处不在的,语义化版本、版本控制,这些都给我们带来了很多便利,当然也带来了很多痛苦。

版本控制

svn,git

语义化版本

版本格式:主版本号.次版本号.修订号,详细解释可以看文末的延伸阅读,这里不再赘述。

版本背景

系统级别

Mac OSX版本号:10.11.4,iOS版本:9.3.2等等,

软件级别

微信版本号:6.3.16,小恩爱版本号:5.6.3

​手机APP,都是从小版本一点点升上去的,服务器也是一点点迭代的,所以随之而来的,肯定就有前后兼容问题了。 说到兼容问题,那版本比较就少不了。

怎么对版本做比较呢?

常见的思路:把版本所代表的字符串做拆分,然后分别比较相对应的数字大小即可。如果涉及到字母字符,则可以将其替换成空,最终还是比较数字。

不管是什么语言,都是有字符串拆分函数的。split,一般都支持按照什么来拆的。这里当然就是.

其他更简单的方法或者第三方库。

ruby版本比较

  1. Gem::Version.new(‘5.6.3’)>Gem::Version.new(‘5.6.4’) 只会返回true,false,所以在比较相等时要再单独比较

  2. ‘5.6.3’<=>’5.6.4’ 返回1, 0, -1,三种情况都囊括了。

golang版本比较

  1. https://github.com/hashicorp/go-version

hashicorp家的东西值得信赖。什么也不多少,贴一个图吧。

今天就上面这些了,如果对你有用那就最好,没有用那也请见谅。

延伸阅读

  1. 语义化版本

茶歇驿站

一个让你可以在茶歇之余,停下来看一看,里面的内容或许对你有一些帮助。

这里的内容主要是团队管理,个人管理,后台技术相关,其他个人杂想。

茶歇驿站二维码