拖了很久,终于决定给 skynet 1.0.0 封版了。比预期的时间 足足晚了半年,好在还是在 2015 年把这个事情启动了。
其实已经很久没有对已有特性做修改了,如果的项目是在今年 3 月份以后跟进的 1.0 alpha 版的话,升级到目前的最新版本应该不会有太大痛苦。最近几个月几乎没有增加新的特性,反而是在裁减一些多余的,用的人不多的东西(为了兼容,把这样一些 API 移到了一些独立的模块中,方便废弃)。
据我所知,skynet 用于的商业游戏项目(以及一些非游戏项目)早已经超过了 2 位数,收获了不错的口碑。它不再是我们自己公司的内部项目,持续收到不同人的 PR 说明很多同学不仅仅在使用,更是用心在 review 代码,让它真正成为一组公众视野下的代码。我相信这是开源的终极意义:众目睽睽之下, Bug 无所遁形。
我们自己的项目也从 skynet 开源经营中获益良多。有好几处来源于外部的 bugfix 都是在错误发生前被堵住,只是可惜的是,我们也有项目未能及时跟进,只到真的出错了才回头发现在主干上早已改过。这些事故反而证明了开源对于提高项目质量的作用。
这次发布 1.0.0 正式版本的候选版 (RC) ,并专门公告,就是希望有在使用 skynet 的同学,尤其是已经有项目上线运营的,能够在最后这几天将遗留问题提出来,issue 或 pr 都可以。不要把遗憾留到 1.0.1 :)
我希望这次把 RC 标签保留一个月,在农历新年前换成正式版。
对于因为 skynet 常年挂着 alpha (其实 beta 已经一个月了)标签还在犹豫的同学,希望换上正式版标签后可以打消你的疑虑(当然,我个人并不觉得标签换了后,代码质量会有本质变化)。
同时不要再不断的问 “真的有项目用 skynet 的吗?”,“skynet 有文档吗?”。
尤其对于后一个问题,我对连 README 都不看的同学,真的很烦回答啊。
skynet 不仅有 FAQ ,也有中文的文档,而且文档更新的还很及时。麻烦你读一下 readme 以及跟着链接去看看 wiki 吧,能问出 skynet 有文档吗这种问题的同学,我相信把文档摆在他面前也是读不下去的,文档对他就没有存在意义。
算起来从 2012 年 8 月开源发布(7 月开始写第一行代码)到现在居然已经有 3 年有余。这么一个小小的项目经历了三年,整个过程都有线上运营的项目在紧跟。为了历史兼容问题,必然有无数遗憾。传言 linus 说过,所有项目你都要做两次才明白到底怎么做。
我不知道有没有机会重新来做 skynet 2.0 (目前没有任何这方面的计划),把我认为错误的设计,更好的设计推倒重来一次。至少可以把项目的代码风格统一一点,看起来更漂亮。
但眼下要做的事情仅仅只是:赶紧发布第一个稳定版,让更多的人放心来用。用的人越多,后来人也就越放心。