日常开发接触能接触到的版本号方案通常就是语义化版本(构建号版本):

语义化版本大致是:主版本号.次版本号.修订号(1.2.3)。

  • 主版本号(Major):有不向后兼容的 API 更改或重大功能更新时递增。
  • 次版本号(Minor):有新功能但仍保持向后兼容时递增。
  • 修订号(Patch):当软件进行向后兼容的问题修复时递增。

构建号更简单,每次构建时自动递增。通常是团队内部用来定位问题使用,外部不可见。

今天偶然发现了用了好几年的日记 app Day one 的版本号,感觉还挺有意思,格式就是:年.当年发布次数。

day one version

软件的更新频率在很大程度上影响用户是否愿意投入时间和金钱使用该软件。相比常见的语义化版本号,这种版本号显然更用户友好。

ps: 是的,Day one 的更新历史中有个 2025.1.1。个人猜测或许是因为那次的更新只是一次非常简单的 bug fix,所以团队并不想将其作为“一次发布”记录在案。: ]