↑↓ 选择 · ↵ 打开 · 共索引 374 篇

    版本浅析

    日常版本分析

    ARCHIVE 这篇写于 2016 年,距今 10 年多了。里面的版本、链接和做法可能都已经过时,看的时候留个心眼。

    今天给大家聊聊版本。

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

    版本控制

    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. 语义化版本

    茶歇驿站

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

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