老码农原创小说《码农故事》第78回

莫楠听完了赵川的突发奇想后,觉得这倒也不失为一个好点子。不过他又想,硬编码实现的方式肯定不理想。如果要做多少个小游戏就得单独写多少套数据处理的代码,而对应的数据定义却是动态的,这显然不是一种优雅的实现方式。可如何才是最好的利用动态数据扩展系统功能的方式呢?

莫楠觉得自己一下子想不清楚,就告诉赵川,他需要一些时间来整体考虑这个需求,把赵川的记忆力测试小游戏作为一个例子,想办法去实现一个通用的扩展。赵川听了很满意,觉得莫楠的考虑很细致。他又简单地和莫楠交流了几句,就先回去处理自己的事情了。

赵川刚回到座位,裴曼就过来递给他一份一阶段的业务情况统计分析报告。他仔细看了看,发现一阶段的总体情况很不错,市场费用比原计划节省了23%,用户数的增长却高于预期6个百分点。

看到这些数字,他的脸上露出一丝笑容。裴曼在执行上确实是很得力的,当然客观地说,一阶段的成绩也有不少是孙熙的功劳,特别是10位医学专家和那些专业模特的加入,对用户起到了很重要的拉动作用。

用户情况分析一栏也写得非常清晰,从目前用户的构成、各类人群的比例、各个活跃度指标的统计、使用功能的分析等等,都整理得清清楚楚,图表看起来也是一目了然。总体来说各项指标都有明显的改善,说明近一段时间的功能开发和市场活动的效果都是很明显的。

在关键需求部分,裴曼也做了一番分析。这些基于用户反馈的关键需求和原先投资前做的开发计划匹配得比较好,这充分说明当时的计划做得细是有用的,把问题都提前考虑清楚,执行起来就会比较顺畅。赵川看到这里,内心终于有了一丝满足感:自己这么长时间的劳累、隐忍、委屈,总算是得到了一点回报。

但是看到竞争对手分析一栏时,赵川却有点坐不住了。绿社会现在的势头很猛,用户数和他们不相上下,扩张的速度却比他们快不少。裴曼的分析显示,绿社会的最大优势在于用户活跃度,具体细化到平均停留时间和发帖评论数上,都比他们要高出很多。这样看来,就算用户数两边持平,总体业务状况上还是绿社会占据了明显的优势。

这个情况是以前没有过的。这两年多以来,从来都是绿社会在后面苦苦地追赶,勉强能保持他们业务规模的一个零头,可最近这几个月,绿社会在市场宣传方面投入的资金和人力都远远高于他们,系统功能的开发也进展迅速。看来,绿社会砸钱的力度比他们的还要大得多。

在裴曼的报告最后一部分也分析了这部分情况,根据她获得的一些信息,绿社会在被DWC收购之后,近半年里投入的资金是他们这段时间花费资金的4倍以上,在几所知名大学搞了一系列的市场活动,还赞助了几个收视率较高的电视节目,所以用户数的增长势头非常强劲,而且因为吸引的用户群体本身的联系紧密,所以用户之间的互动性更强,活跃度也就更高了。

面对这种看似被动的局面,裴曼最后提出的建议却显得很冷静和稳健。她的观点是不要因为对手的行动打乱了自己的阵脚,还是应该按照原定计划完成产品的开发以及配套的市场活动,实现原计划达到的用户数增长十倍的目标。

对于绿社会的扩张,她认为也有好的一方面。健康社区是个新事物,对手能够花费资金去做一些市场铺垫和用户教育的工作,也会让他们的产品获益。她提议可以在现有计划之外,投入少量的经费,顺着绿社会的宣传活动去做一些延展性的活动,利用绿社会铺垫的健康社区概念去挖掘感兴趣的潜在用户,这样可以得到事半功倍的效果。

裴曼提出,等到三个阶段的功能开发全部完成,他们的产品就会有明显的优势。特别是动态数据及其扩展这部分,是绿社会一直以来都没有做出来的。等到产品功能的优势更加明显了,再往市场营销方面去发力,两边一配合,绿社会就难以招架了。

赵川看完裴曼的报告觉得很振奋。裴曼在把握市场方向上确实有思路,而且她对健康社区这块用户需求已经把握得非常到位了,所以分析起来才能够做到胸有成竹。就是他这么一向挑剔的人,看到裴曼这份报告也觉得无懈可击。

赵川本想去找裴曼,对她的工作表示一番赞赏,可转念一想,自己对裴曼的表扬已经很多了,相信裴曼也知道自己的态度。最近莫楠和程序员那边似乎对此颇有微词,觉得自己厚此薄彼,有点心理不平衡,自己还得注意一下整体气氛。

想到这儿,他又把手头的报告放下了,打算等过一会裴曼过来找他的时候,提出一下市场计划和预算做得不够细的问题,从鸡蛋里挑点骨头,这样让裴曼也不至于过于自我感觉良好。

赵川走了以后,莫楠一直在自己的座位上发呆。他考虑了一会儿扩展功能,可还是没有头绪,就把郭杰找来一起讨论。

郭杰本来正忙着查看MDB集群的日志,想找出把数据库访问速度再提高20%的优化方案,但是既然莫楠找到他了,他也只好勉强中断了手头的工作,听莫楠讲赵川提出的需求。

郭杰听完莫楠介绍的情况后,也觉得这是个麻烦事儿。他琢磨了一会儿说:“现在后端不是有一套访问动态数据的通用服务么,在控制器那边再写个动态调用的接口,然后所有的小游戏都通过这个接口来访问动态数据,也许是个办法吧。”

莫楠点了点头:“我一开始也是这么考虑的。不过这样做有个问题:每个游戏的界面还是要单独写,而且页面提交过来的数据也各式各样,动态调用的接口很难满足所有的数据格式,这样又免不了要硬编码了。”

郭杰挠着头,也不知道该怎么办才好:“也是啊。要不然就干脆硬编码得了!老大这次偶然想到一个游戏,下一次还未必是什么时候呢。我看硬编码也没什么不好的,直接了当还省事,先完成了任务再说嘛。”

莫楠对郭杰不满意地一摆手:“去去去,要是硬编码我还用得着找你商量,随便找个程序员俩小时就做完了。我这不是在往长远考虑嘛。对了,我说你小子干运维之后对我们开发的活有点糊弄事啊,这也太不够哥们儿了。”

郭杰讪笑着说:“嗨,我这不是水平有限嘛。再说老不干开发了,思维难免有点退化。我们运维这边的活相对比较直接,一般就是看到数字然后查文档,一个招一个招往上使,然后再看新数字,直到数字可以了为止。反正那些个招也有限,用最笨的办法挨个试最后也能有个结果。开发的活吧,一开始老得琢磨,方向太多又费功夫,不敢轻易动手,万一方向不对就白费力气。说实在的,我现在看到需求就有点犯晕。”

莫楠对郭杰的解释倒是也能理解,他叹了口气说:“好吧,我看以后我也指望不上你帮忙了。我就是一个天生的苦命人儿啊。行了,你回去干活吧,我自己再琢磨琢磨。”

郭杰答应了一声,回去接着调MDB性能去了。

莫楠托着下巴想了一会儿,最终认定通用方案肯定是不可能做出来的。他想了个极端例子:比如有个需求是做一套赛车游戏,需要实现3D效果,动态加载地图,这些事情怎么可能预先考虑到?或者再考虑一个塔防游戏,要根据用户建造的武器级别扣减相应的金钱数。如果控制器接口能兼容这些数据的提交和获取,那岂不是做出一个通用的游戏引擎了?这显然已经做成另外一个完整的产品了。

眼看这条路走不通,莫楠心里觉得相当郁闷。刚才答应了老大的事情,又否定了郭杰的提议,现在自己走到了死胡同里,真是丢人现眼啊。看来只好退而求其次,用硬编码的方法去挨个实现了。

他还是有点不甘心,又反复考虑了半天,最终发现的确是没有别的路可走。万般无奈之下,只好开始硬写这个小游戏。

硬编码倒是快,他只用了不到一个小时就把功能做完了,在本地测试了一会儿,发现效果还不错。记数字是他的强项,他自己玩了一会儿,差不多保持在90%左右的正确率。

莫楠看到自己的分数觉得很得意,顿时一扫刚才硬编码的郁闷感,开始乐在其中。他一看旁边段倩正在埋头调代码,就招呼她说:“嗨,小丫头过来看看这个。老大想出来的小游戏,还挺好玩的。”

段倩头也没抬地嗯了一声,还是接着调她的代码。莫楠自觉无趣,又自己玩了几次,扭头想叫郭杰,可一看郭杰正在和他们运维组的两个工程师凑在电脑前讨论着什么,看来也不好打扰。

又过了一会儿,段倩调好了手头这一段代码,才停下手里的活凑了过来:“莫大师,你刚才说什么游戏,老大还让咱们在产品里加游戏功能么?”

莫楠一看终于有人来关注他做的东西了,就高兴地给段倩演示了一下小游戏的玩法,然后说:“怎么样?本大师的记忆力不错吧?90%以上正确率。”

段倩看了也觉得挺感兴趣:“这个好玩,我也来试试呗。”

莫楠边让出座位边絮絮叨叨地说:“好玩是好玩,你要是真玩就会发现其实它难度还挺大的,连本大师都不能做到全对。小丫头你的情况我比较了解,估计你最多也就能到70%左右吧。”

段倩不服气地哼了一声:“凭什么你就比我强啊?我从小记忆力就好。”她边说着边开始了游戏,连续做了10道题都是全对,正确率100%。

莫楠傻眼了:“哇,没想到啊,小丫头你的记忆力这么强!怎么练出来的?”

这回轮到段倩得意了:“嘿嘿嘿,我这是天生的。这题太简单,没有挑战性,我再做100题也不会错。怎么样,莫大师你服不服?”

莫楠想了想,抢过键盘鼠标,直接在代码里改了两个数字,然后重新启动程序说:“你还别得意,这次你再做对100%我就服了你了。”

段倩发现这次难度确实大大增加了,首先是数字多了几位,而且显示数字的时间也短了。她连做了6题只对了1个,就站起来有点气愤地说:“莫大师,不带你这么瞎改的。要不然你来做几题试试!你要是还能做对90%就算你厉害。”

莫楠心里也发虚,他想,要是段倩都做错了这么多,恐怕自己也够呛,不过可以试6次,就算蒙对2次也好,那也说明自己比段倩强嘛。于是,他抱着试一试的心理坐到座位上,又开始玩这个游戏。

奇迹没有出现,6道题做下来莫楠全做错了。段倩不屑地说:“哼,叫你瞎改。你还是把参数改回去吧,要不然用户老做不对,就没人愿意再玩这个游戏了,那做它还有什么用啊。”

莫楠边改参数边嘀咕着:“不用也好,这都是硬编码的东西,往生产系统上布署我觉得太别扭了。咱虽然是搬了半辈子砖,可是这种往水泥里塞砖头的活干起来真不是那个劲儿,越想越觉得丢人。哎,本大师一世英名啊,就这么毁于一旦了。”

段倩不明白莫楠的逻辑,就问莫楠他说的硬编码是怎么回事,莫楠就给段倩解释了一番赵川提出的需求,自己的通盘考虑,遇到的技术问题,以及最后投机取巧的解决办法。

段倩听完了一言不发,低头思考起来。莫楠不以为然地苦笑了一声说:“小丫头你就别琢磨了,本大师和郭杰这小子讨论过一次,这个事情啊,根本无解。只能做硬编码。”

段倩没理他,又看着代码想了一会儿才说:“莫大师,这里前面的东西确实只能硬编码,不过你这里都是统一调用后端的动态数据服务,也算实现了一定程度的通用性了。”

莫楠叹了口气说:“这种通用性有啥意义啊。每个游戏都要单独写一套控制器和页面,扩展起来太麻烦。”

段倩试探地提议道:“能不能用AJS做个前端的通用框架,这样前端的通用性也可以提高,然后后端就只是通用的RESTful Api。”

莫楠晃了晃脑袋,觉得这样没有意义:“这么做看上去好了一点,可本质上还是硬编码,前端界面五花八门的,不可能通过配置就能把功能做出来。”

段倩解释说:“前端界面肯定统一不了,但是能固化前后端交互的标准,就可以提供一套开放的Api,让外部开发者可以来做各种各样的健康小游戏。”

莫楠听了段倩的设想突然觉得有点开窍了。他一直考虑的是怎么方便自己的开发团队去扩展小游戏,段倩则提出了一个更大的概念,就是让外部开发者也可以参与到扩展系统功能中来,这样系统本身就成为一个平台了,而利用外部开发者的扩展方式其潜力是无穷的。不过,这也显然不只是段倩说的前端框架那么简单的事情。

他考虑了一会儿才回答说:“这个想法倒是很不错嘛。没想到小丫头你还脑袋里还真有不少点子。不过,这件事恐怕超出了咱们目前的能力,这相当于是做一个开发平台了。需要考虑很多因素,比如安全性机制,给外部开发者的接口,开发工具什么的。还有,外部开发者如何获利?是靠广告还是通过在线付费?这些都得考虑清楚了才行。”

段倩没想到会有这么多问题。她思考了一会儿说:“哦,看来这件事比我想象的要复杂很多。要不先把老大要的功能先这么布署上去,通用开发平台的事情你找时间先研究着,等问题都考虑清楚了再放到下一阶段的开发计划里去。现在第二阶段还在做,本身进度就挺紧的了,要是还往里加任务,恐怕到时候完成不了,那就麻烦了。”

莫楠也赞同段倩的看法:“没错。老大和裴曼现在都是天天冒出一些新想法,然后就要加到系统功能里边去。每个想法给他们一说出来都是天才得不得了,对市场的作用都超级大。一问他们要啥时候做出来,说的都是越快越好,恨不得今天说了明天就看到这个功能才好呢。可咱们开发的活不能没有计划性,随时加东西那是不行的。这样吧,咱们也给他们定个规矩,要加新需求不是不可以,但是要经过咱们讨论评估,能加的尽量加,不能加的对不起,只能放到下一个阶段考虑。你说咋样?”

段倩点点头:“行。我一会儿帮你拟个初步的需求提交和评估办法,你看了要是可以就交给老大吧。”

莫楠伸出大拇指称赞道:“你写的办法肯定好使。其实吧,这个控制过程就主要靠你评估了,毕竟你对项目计划是最清楚的。我呢就帮你说说话,你同意做我就说行,你不同意做我就说不行。总之,哥保证以后都和你保持一致,你说往东哥绝不往西,你说杀猪哥绝不抓鸡。”

段倩扑哧一声笑了:“莫大师你这都说的什么乱七八糟的啊,刚说了几句正事又开始贫上了。你还是抓紧时间吧,本来一周完成插件化原型开发就够忙的了,现在又加个通用开发平台,你还给我打包票说这段时间全时加入开发组,我就知道这事根本不靠谱,根本没指望你能花多少时间进来,哼哼。”

莫楠尴尬地挠着头说:“唉,谁知道老大突然冒出这么一个想法,把我本来的计划全部打乱了,再加上你出的好点子,一下子给忽悠出一个超大的事情来。不过也好,这个思路本来我是想不出来的,大家拼拼凑凑居然搞出一个天才点子。就为这个,忙点也值了,这东西还真有点技术含量。要不咱们找时间再请教一下高大师,这么复杂的问题必须得他老人家出马我才觉得放心啊。”

段倩有点不高兴地答道:“你别动不动就找高大哥好不好?起码自己先实现以下试试,实在遇到有解决不了的问题再去找他呗。你自己什么都没做,就把问题一扔等着人家给你干活,你好吃现成的啊?我觉得高大哥不是这样用的。”

莫楠赶紧连连答应着:“是是是,这样是对高大师的不敬。其实哥的意思也是自己先试试,碰到问题了再请教高大师。咱也不是那种偷懒的人啊,小丫头你还信不过哥么?”

段倩从鼻子里哼了一声,懒得和莫楠继续贫嘴了。她心里盘算着,按照高大哥原来的计划,这几天应该就会和宋姐姐一起动身去美国了吧。

打赏支持我写出更多好文章,谢谢!

打赏作者

打赏支持我写出更多好文章,谢谢!

任选一种支付方式

1 收藏 3 评论

关于作者:老码农

搞得定代码,罩得住娃;治得好跟腱,踢得了球。Hi,我是老码农,蜀黍有练过,小盆友们不要随便模仿喔。(新浪微博:@老码农的自留地) 个人主页 · 我的文章 · 122 ·    

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部