最初的1.0版本是怎么跑出来的
最新版本是多少?哈哈,这个问题问得说出来你们可能不信,我们对外宣称的那个版本号,跟我们内部维护的代号,完全是两回事。
要说“我的猪公主”最新版本是多少,得先从我当初开始动手做的时候说起。那时候我刚从上家公司被“优化”出来,手里有点闲钱,但心头火气很旺。我就想着,与其找工作,不如自己折腾一个小项目,也算是证明一下自己。
我翻箱倒柜,找出了以前做游戏时剩下的几个老旧资源包,然后找了一个最简单的后台模板,一头扎进去就开始写。我根本没想过什么版本管理,最初就是随便写了个1.0。当时的代码结构,现在看起来简直就是灾难。
我就是用最土的办法在推进项目:
- 敲代码,能跑起来就算成功。
- 测试,自己点一遍没闪退就算稳定。
- 发布,直接把apk文件丢给几个朋友让他们去试。
那段时间,我根本不知道Git是什么,更别提分支合并了。我的版本号就是1.0、1.1、1.5,完全是看心情随便标的。
被老婆逼着开始做版本日志
真正让我意识到版本号和日志的重要性,是我媳妇儿。项目做到1.5的时候,她突然说要参与测试,她那个认真劲儿,比我写代码还吓人。
她跑过来跟我说:“你这个‘喂食’按钮,上周是绿色的,这周怎么变蓝了?还有,昨天那个Bug,今天又出现了,你到底改没改?”
我当时一脸懵,因为我根本搞不清哪个文件是她测的那个版本。我的电脑里,文件名都是“猪公主_最终版_修正_真的最终版.zip”。这谁受得了?
我被她怼得没脾气,才硬着头皮去学怎么用工具。我花了两个晚上,啃完了一本关于软件工程的小册子,然后开始强迫自己使用版本控制系统。我立下规矩,每次提交代码,必须写清楚干了什么,解决了哪个问题。
从1.5跳到2.0,我们清理了所有旧代码,把核心业务逻辑剥离出来,重新用框架搭了一遍。这个过程痛苦得要死,但做完之后,版本号才算真正有了意义。
从2.1到内部3.5的真实实践
外界一直看到的,都是2.1.0这个版本。为啥2.1能挂这么久?主要是因为我们对外坚持“稳定为主”的策略,不想频繁地惊动用户。但内部,我们早就在3.0的路上狂奔了。
2.1到3.0是一次彻底的底层重构,因为我们发现,原先的数据库结构已经撑不住用户量了。当时我连轴转了三天,把整个数据存储方式换了个遍,所有API接口全部重写。我心想这根本不是小修小补,这是推倒重建,必须上3.0。
但对外发布时,我还是怂了。甲方爸爸那边要求稳,说新版本号不要跳得太猛。我们内部的3.0、3.1、3.2、3.3、3.4,对外就统一打包,悄悄地替换了2.1.0的代码包。你们每次更新2.1,都享受着我们内部最新的优化。
现在我们正在测试的版本是内部代号3.5。这个版本主要实现了“猪公主”的新交互动画和新的AI模型。我记录下来了所有数据结构的变化和性能提升的细节,光是文档就堆了厚厚一摞。我们争取在一个月内把3.5稳定下来,然后可能会考虑直接对外公布一个全新的3.0版本。
你们现在看到的2.1.0,就是我们呕心沥血熬出来的3.4稳定版。我的实践经验告诉我,版本号可以糊弄,但自己的实践记录和日志绝对不能糊弄,不然你辛苦写下的成果,连自己都找不回来。