昨天晚上,跨服赛第三次外部测试圆满完成,整个比赛期间没有出现任何BUG,大家都比较满意,所以说这个功能暂时可以告一段落了,写下这篇文章记录过程的艰辛。

这个功能,策划提需求是在今年(2014)有3月份,真正我这边开始做应该是在3月底~4月初,当时富驰还在,服务端有我们两个,加上主程大Boss,算3个人,客户端有森哥一个人,当然这个功能客户端几乎没什么工作量的,都在服务端。

最开始定方案的时候,主程是打算我这边整理跨服框架,富驰处理业务层的东西,后来富驰转岗去其他部门了,业务层的也都变成我做了,所以也直接导致了这个功能Delay近3个月。

先说说框架部分:

核心架构使用的是以前DK的DBS和DBC,这是跨服功能的核心,也是主程以前的作品,这些都是08的工程,DBC要移到VC6上去才可以使用,所以最开始做的事情就是移植这个工程,其中的过程现在想想仍心有余悸,各种编译问题,工程问题,以及很多VC6不支持的08新特性,这些工作我用一个字形容:“脏”,当时做的时候就觉得这简直是IT界最脏的工作了,跟清洗下水道一样脏,你想想啊,一行代码不写,就是在那整理工程,解决各种编译问题。但是等到做完这个的时候,我已经不那么认为了,这个活虽然脏,但是一点也不比写代码容易,甚至我觉得比写代码更难,做这个可以有效的锻炼解决问题的能力,就是说以后遇到什么难题,不会畏惧了,会更好的迎难而上。

最近刚好也看到一篇文章,作者说:“一个好的程序员,不是看他看了多少书,而是看他做过什么”,我想补充一句,“还要看他解决过什么问题”,像这次移植这么大的工程,也算是解决一个大问题了吧,现在想想很为自己自豪。当然也不能说自己有多厉害,还是主程厉害,很多问题几乎都是他帮忙解决的,他不但技术好,经验丰富,而且解决问题的能力异常的强大,现在对他是五体投地了。以前对他有过一些误解,在做完这个功能之后完全都没有了。

移植完DBC之后,就是对DBS的改造了,因为DBS是主程的作品,所以他很清楚如何做,告诉我怎么做之后,我直接执行就行了。饶是如此,我还是改错了,在早期这个问题还不明显,后来版本发布出去给玩家后,效率非常低,完全无法发挥DBS多线程的优势。主程检查代码后发现是我改错了,而且错的很离谱。我仔细看了代码的逻辑后知道错在哪里,把它改正就可以了,一起改的还有增加了DB池,等等,也都是主程提的方案,我只是实施罢了,没什么好说的。

这个做完还要解决所有游服之间通讯的问题,这个没什么好说的,必须要有一台中转服务器做消息的转发,这个的实现完全是我自主“设计”并实现的,设计加上引号是因为其实并没有什么设计,代码非常简单,就是游服做为客户端连接到,中转做服务端,做一个消息的收发而已,这部分用到的核心模块就是网络方面的了,代码都是现成的,直接拿来用即可。说到这,我又想起了最近看的一篇文章(代码之美某篇序),大意就是说现在的代码库越来越多了,几乎所有的需求都已经有人写好了,程序员所要做的就是把代码组装起来,实现需求方提出的需求。我做中转服务器完全就是代码的组装,而不是原创。不过作者也说了,能组装到一起,那也是能力,聊以自慰:)。

中转服务器(TS)做完,就要做中转客户端喽(TC),这个就没有单独的写一个工程什么了,就是一个类,负责和中转服务器通讯,嵌入到游服的某个模块内,这个也没什么难度。

-------------------------

上面说的都是框架层的支持,下面要说说跨服业务了,跨服业务的设计,是和主程讨论着来的,最早的设计构想,流程图等等,这些当时讨论了很久才最终确定方案,当然主程只是提供大的方向,具体的细节还是由我来做,最后这个流程实现出来后,基本上没有大的问题,小的BUG修修补补的,也就可以用了。(因为涉及公司机密,细节就不描述了)

上面就是跨服功能到底做了什么了……

-------------------------------------------

策划提出的需求,还有一个跨服比赛,这个对我来说也是第一次。以前没做过比赛,大概花了一个月的时间编码完成的,QA测试,改BUG,这些都过了有7~8轮吧(花了一个月时间),被主程狂批,但最后也算圆满完成。本来吧,这个比赛应该是由富驰做的,但他转走之后,这项工作也交给我了,我也是年轻气盛,没想太多就接了,现在如果让我再选,我一定不会接,因为接了这个后,意味着所有的工作都卡在我身上了,这个单肯定会Delay,试着,如果做比赛这两个月,交给森哥,我专心维护跨服框架,绝对不会Delay3个月这久,最多一个月了不起了吧,可能都不用Delay。我的失误,导致了整个项目的延期,这是很严重的事故,被项管投诉到部门长那里,搞的主程也很生气。

主程说:“不是你做的事情多,别人就会认同你”,的确,把比赛也接过来,我是忙成狗,但是没人管我忙成什么,也没人在乎我有多少个周末在公司加班,有多少个晚上是12点以后才下班,人家只在乎你能不能按时完成项目的计划,如果没有完成,那就是你不行,就要投诉你。我算是明白这个道理了,确实是这样的。不过就我本人来说,通过做这个比赛系统,多少增加了一些编码的经验,对我的成长是有好处的,至于项目造成了损失,我只能说抱歉,虽然是个双输的局,但我个人来说是有进步的  :)

----------------------------------------

随着三测的圆满完成,这个功能也就结束了,当看到昨天晚上100多个玩家在赛场内互相PK时,真是非常的有成就感,更何况这些玩家都是超级大R呢?

看到大家说“满意”,看到玩家玩的开心,想想这半年来的辛苦,两行热泪……没有流出来。

跨服功能和跨服比赛测试正常相关推荐

  1. 微信多客服功能怎么使用?

    企业微信公众号的同质化越来越严重,单纯靠内容取胜已经越来越难,而服务的优劣成为影响企业成功的重要因素.想要将微信公众号打造成优秀的客户服务工具,就需要用到微信多客服功能,那么具体怎么使用呢? 网页版微 ...

  2. 币须知道 |马云又抢占了一块高地,蚂蚁金服区块链跨境汇款正式落地,2018世界杯板块排名涨幅第一...

    您的 转发 和吐槽是我们前进的动力 今日要闻 监管要闻 ·银行屡次质疑区块链,真创新还是假参与? ·浙江省副省长:应普及区块链等热点产品及服务的体验与应用 ·桂林市副市长:愿为区块链在桂林的发展提供良 ...

  3. 九阴真经服务器一直维护,《九阴真经》全区服维护 修复跨服卡buff

    原标题:<九阴真经>全区服维护 修复跨服卡buff 尊敬的玩家: <九阴真经>全区全服于7月28日8:00-10:00停机进行更新维护工作本次维护后版本号将由1.0.1.585 ...

  4. 纯干货:分享一些跨境电商客服经常会用到的话术(含中英文)

    纯干货:分享一些跨境电商客服经常会用到的话术(含中英文) 跨境电商同国内的电商平台一样,是将国内的产品卖到国外去赚取信息差,只不过客服面对的是国外的客户,仍旧需要为客户解决一系列服务问题. 让前来咨询 ...

  5. 跨境电商客服回复话术

    跨境电商同国内的电商平台一样,是将国内的产品卖到国外去赚取信息差,只不过客服面对的是国外的客户,仍旧需要为客户解决一系列服务问题. ​ 前言 跨境电商同国内的电商平台一样,是将国内的产品卖到国外去赚取 ...

  6. csgo客服端文件与比赛服务器,B5全新客户端功能大揭秘 自定义比赛功能篇

    B5对战平台从创立伊始便立志成为国内专业的CS:GO对战平台,因此B5签约了国内众多职业战队也举办了很多CS:GO比赛,不管是职业玩家还是民间大神都可以在B5对战平台找到自己的归宿.然而有很多玩家和裁 ...

  7. Java实现微信公众号客服功能和本地联调

    Java实现微信公众号客服功能 微信公众平台设置 生产环境 公众号 设置 [开发]–> [基本配置]–> [服务器配置] 注: a.服务器地址(URL) 是开发者用来接收微信消息和事件的接 ...

  8. 微信小程序开发中调用button组件添加微信客服功能

    个人比较喜欢这个解决方案,原因一是由腾讯官方运营,比较稳定.二是确实很方便啊,直接用微信回复就好了.核心代码就一行,如下 <button open-type="contact" ...

  9. 微信在线客服功能开发问题记录

    由于负责公司语音客服系统开发.本着拓展客服系统功能,完善客服系统生态的原则.需要开发在线客服系统.首先对接的就是微信公众号关注用户的在线客服功能. 在微信测试平台http://mp.weixin.qq ...

最新文章

  1. C/C++ 知识点---LIB和DLL的区别与使用(网摘)
  2. 哇哦!恍然大悟般的“share”功能的实现!
  3. shell数值比较和字符串比较
  4. redis单线程为何快
  5. 网易技术干货 | 云信跨平台C++ SDK开发实战
  6. linux服务器黑屏_xshell连接Linux系统(小红帽7.3)服务器,导致服务器黑屏
  7. va_list/va_start/va_arg/va_end深入分析
  8. Mysql-my-innodb-heavy-4G.cnf配置文件注解
  9. php 取经纬度,php根据地址获取百度地图经纬度的实例方法
  10. php是单线程吗,php语言是单线程吗?
  11. 最新发布!《统计学习方法》第二版无监督学习视频课上线了!
  12. 查看创建的hive表对应的hdfs文件路径
  13. 开课吧:继承是什么?继承的基础有什么?
  14. word文档怎么一分为二_word文档转pdf要怎么实现?word转pdf好方法推荐
  15. c语言编程n元一次方程,解n元一次方程
  16. Mac 删除不必要的 Adobe PS AI 组件
  17. 整理了一些大数据资料与电子书,免费分享给大家!!
  18. C# 中文简体中文繁体转换_ChineseConverter
  19. opendevops_codo项目研究
  20. TimesTen内存数据库监控 TT监控得懂这些

热门文章

  1. js滚动数字动画效果
  2. css的几种布局方式都在这
  3. vue scoped html样式无效
  4. 【论文阅读】Scene Text Image Super-Resolution in the Wild
  5. Insert语句的语法
  6. python优惠券机器人_python实现机器人卡牌
  7. 手把手教你用 tornado 设计 web 项目
  8. 新型冠状病毒实时动态
  9. epoll使用详解:epoll_create、epoll_ctl、epoll_wait、close
  10. (17)雅思屠鸭第十七天:小作文完整攻略