/首页
/开源
/关于
外包篇 : 重构
发表@2018-10-31 22:51:34
更新@2023-01-21 22:47:40
###### 首先,一万用户对于一个app来说是个历史突破,但是对于积目来说是场灾难,因为卡顿和闪退一直在困扰着它。 ###### 其次,一万用户对于WYC来说是个突破,同时一个考验亦或煎熬,因为卡顿和闪退一直在困扰着他。 ###### 再次,一万用户对于我来说,总之不是坏事,反正,又不是我的公司和项目。。。 ###### 最后,一万用户对于WYC来说,他要考虑是不是拆了重建;一万用户对于我来说,我得考虑这个拆了重建工作是承包还是不承包。 ###### 承包了吧,肯定没多少钱;不承包吧,一毛钱都没有。我并不是那种为几万块钱就会折腰的人,我接这个完全是为了打发时光,是终日沉迷于代码无法自拔的一种表现。 ###### 如果我没记错的话,我和YBY应该是从2016年的8月1日开始重建工作的。这并不是一件容易的事儿,原因其一是大家都是兼职做这件事,其二是毕竟当着WYC、XY、XZ等人面喷了人家原来施工队,导致自己现在不得不搬的一手好砖,至少得比他们搬的好,不然就太打脸了。这件事告诉我们,如果想骗钱偷懒就不要随意喷前人挖的坑,相反,还得感激他们,见人就得夸:哎,人RuanLi也不容易,都尽力了尽力了! ###### egret是家搞HTML5 Web游戏引擎的公司,他在网页游戏引擎圈子中略有分量,作为一家上市公司,其优异的市场表现和强大的生态产品链令他的对手闻风丧胆。背靠着顺为资本、360等大树,借着原Adobe一坨老人的能量之锤,一路乘风破浪、斩荆披棘,然而就是这么一家看起来应该业务繁忙的公司,我是最闲最懒的那个,大概形象如下图所示: ![](https://ti-node.com/static/upload/6344550097447026689) ###### 其实,我也不想这么悠闲,可当时我就是没事儿,没有办法。于是我主动找事儿做,可是看起来并没有人鸟我。说到这里,无论如何还是很感谢老上司LCG跟WX,TA们看待问题深度和广度都很好,对我也很关照,可惜我并没有做出让TA们满意的一些成绩,惭愧之意,难以名状。 ###### 话说回来,这边儿我一直在琢磨一些事情,就是拆后重建的问题,是怎么个建法?这是个难题,为什么呢? ###### 依稀记得古代的时候,我朝的官员在对刑犯或者上级对下级杖责的时候,给行刑的大头兵们传话的官员往往会用如下几句话: - “杖责二十,以儆效尤!”,这句话表示差不多意思几下就OK了,不必用力。 - “给我打,不得有误!”,这句话就表示稍微吃点儿劲,但也别把事儿做绝了。 - “着实打!用心打!”,这句话表示让他三个月下不了床,生活不能自理。 ###### 那么,问题来了,对于拆后重建工作,我应该是“以儆效尤”还是“不得有误”亦或是“用心打”?思考这个问题,用了我整整一天时间,不过无论如何,现在这一刻的我甚至积目整个团队都应该感谢那一刻的我,“着实打!用心打!”是一种态度。这种态度让后来整个技术团队或者服务端的人们可以长期处于放羊状态,架构纵深和横向扩展可以让我们天天开着服务器睡大觉。 ###### 当初就直接上了如下的三层架构,这可能是史上最幸福的外包: ![](https://ti-node.com/static/upload/6344556940315590656) ###### 作为一名高产似母猪的搬砖工人,我在2016年的8月29号左右先先后后完成了API。这一个月期间,除了写新API,还要时不时客串原有系统的运维工作,那段时间我是需要在任何场合任意时间做运维工作的,比如在地铁公共厕所中大便的时候用手机监控运维。 ![](https://ti-node.com/static/upload/6344562450053988352) ###### 正如上一段开头所说,作为一名高产似母猪的搬砖工人,那段时间我在百忙之中还挤出了少量时间去视察了祖国的西北,一步一个脚印丈量祖国的土地。我在那段时间还结识了几位大叔大妈,他们每天晚上会在望京南站北边的一个小广场上组团搞乐队,我估计现在的95后们都没听过什么《喀秋莎》、《莫斯科郊外的晚上》,我就用后者搞定了几位大叔大妈,时不时会来个合作演唱。 ![](https://ti-node.com/static/upload/6344563418996932608) ![](https://ti-node.com/static/upload/6344564648414543872) ###### 期间这段时间,我记得客户端发布了至少两次新版本,每次发布完了,都会改善很多状况。一直到拆后重建的版本上线。我记得那会儿还特意从积目击者群里拉来了一坨人轰轰烈烈搞了一次内测,由于没有苹果企业开发者账号,所以必须通过人肉记录iPhone的什么id的方式来发布测试安装包,很是麻烦。所幸的是,没有太严重的bug,双方在经过一轮探讨后,决定正式发布上线这个拆后重建的版本。由于C端和S端都是全新设计,尤其是S端,是100%的全新设计,小到数据表名称和字段,大到架构层次,完全不一样,所以,要想上线,就先要把原有的一万多用户数据以及他们产生的不知道多少万弹幕和图片以及滑动数据全部迁移到全新数据库和文件存储中,这是我第一次给飞行中的飞机换发动机,换的过程中还不能咽气。所幸中间没出什么幺蛾子,数据迁移还算顺利,新S端的服务也顺利启动,C端也顺理成章提交了第一个拆后重建版本,大约在2016年的9月3日,一个全新的积目诞生了。 ![](https://ti-node.com/static/upload/6344568842848567297)