最近几周开始修改网马引擎,之前也将网马引擎项目梳理了一遍。之前同事留下的文档很少,代码相关的更是一个文档都没有。
这里想吐槽一下,人员流失更替,导致代码设计出现断层,之前的同事也没有理顺,都自顾自的加功能,缺乏整体把控,代码管理很是混乱。
我们公司目前网马引擎有两套引擎,AC引擎和啸天引擎。全部都是自主研发,其中啸天引擎为新引擎,貌似是很被公司重视的一套引擎,官网上也被大书特书。
这两套引擎代码,都分别有两个分支。msvc2008和msvc2013下各一套,现在出现的最纠结的问题,就是不同的分支下,所做的更改,根本没有考虑过同步到另一个分支下。这个会给日后带来非常大的麻烦。
再说说为什么会有两套代码。引擎会被服务器安全狗(简称服狗),网站安全狗(简称网狗)以及网狗web容器插件调用。服狗和网狗动态加载引擎库,插件使用静态编译版本。
由于历史遗留问题,插件目前都是在VS2008下开发,插件开发人员又图省事,直接make了分支过来,然后呢出bug了就缝缝补补,根本想不到还有另一个分支需要同步。
服狗这边,全部都迁移到VS2013下了,(项目管理规范很多,之前一直在做服狗的开发),包括linux服狗也是基于这个分支做移植。这边对引擎做了修改后,也完全不考虑另外一个分支。
或许说,开发人员中,其他人根本不知道另一个分支的存在。
并且两个引擎之间,还有交叉的关系。所以让我很是头疼啊 ,不过问题总是一个一个被解决的。所以一步一步来,不能着急,慢慢地把他理顺。
最近用户反馈的崩溃问题,有几个是因为网马引擎导致的。其中AC引擎几次导致了用户web服务器宕机(后果很严重的说!!!),啸天引擎几次导致网狗进程异常退出。
我只想说,任重而道远啊。其实,引擎中的这几个bug,都是因为很小的细节引发的,比如说边界条件的判断。另外,代码习惯不好,历届维护者编码水平参差不齐。很多代码都经不起推敲的!
所以说,写代码一定要注意细节,对自己严格要求。