抄作业的一周
本周主要处理军团的抄袭工作。。。
第二次做类似公会模块的东东了,分功能的时候还算轻车熟路,只是几个管理器之间概念层次不同,组装的时候还真费神。这一块的东西,技术上倒谈不上有什么难度,但是比较繁琐,就怕某个功能点没做好,以后填坑就痛苦了。这次配合着单元测试来搞,每个功能组件都有单元测试配套,然后自己写了一点文档,说明这个模块的组成,各个功能需要实现的目标,希望以后修改会比较方便。
本质上,公会是双向映射的结构,需要公会能查询到会员,还能根据会员属性排序。而会员不仅要能索引到公会,还需要能得到自己的权限表。权限表本身,也是一个可被修改的属性,也就是说,会遇到别人修改你的权限,而你正通过权限表执行某一操作这种情况。刚开始实现的时候,为这问题绕进去了,没想到现在游戏已经是串行化的,不需要考虑同步发生的情况。同一时间,只有一个人能够操作公会,只要处理好串行的情况就好了。
另外一个问题,是功能服务器之间通讯的问题。目前内部 RPC 协议的分发,只提供了一个 json 域给我。这样子可以避免频繁修改内部协议,经常重启服务器。至于这个 JSON 域怎么使用,怎么能够更好的表达业务逻辑,目前还没想好。也许,JSON 里包含操作指令及操作数就可以了?
另,最近朋友做爬虫,遇到一个全 flash 构建的,无从入手,我帮忙搜了一下,原来 adobe 当年推出过 swf2html 这个神器,虽然偶然 bug 掉,但是用来做爬虫实在合适不过了,而且还有 C++ 代码提供。
又另,发现构造 md5 相同的可执行文件已经渐渐变成现实了,参考 http://www.mscs.dal.ca/~selinger/md5collision/,很过瘾,方法有点取巧,evil 逻辑和 good 逻辑都放在同一个 exe 里面,通过一个开关值进行控制,然后开关值构造一下,用两个不同但 hash 一样的 pair 来完成