智慧网咖的计费模块,是股东公司提供了一个C++的dll给我们用的,现在他们已经不维护了,我常常和计费模块的开发者沟通,因为他自己平时还有别的工作,所以他鼓动我写自己的计费模块,替换掉他们的。
我决定这么做了,因为也已经了解了几乎所有的逻辑,所以我决定c#去处理这块。
这两年,一直在做web的工程;做web工程和之前写游戏的时候不一样;
之前做游戏的时候,更偏重算法一点,现在做web更偏重业务一点。
之前做游戏的时候,更偏重数据结构一点,现在做web,更加侧重mysql一点。
之前做游戏的时候,为了提高并发,需要用到多线程技术,锁,信号量,线程安全的集合。现在做web,为了提高并发,全是缓存缓存再缓存。
这次重写网吧的计费模块,又找到了之前写游戏的感觉。
需要不断循环在线列表判断是否要扣费的同时,也会有很多会员上机,也会有会员下机。 需要考虑如何去优化队列,保证逻辑的正常持续运行。
忽略时间,起步价,最小扣费,单位费率,正常计费,包时段,包时长,包房,正常计费转包时段,包时段转正常计费,包夜计划,等等逻辑,真的要设计扣费流转和扣费机制,才能保证不能多扣费或者少扣费。
等等。
总之,这几天用c#写计费模块,让我想起来,之前用C++或者java去处理游戏服务器的时光,那段时间是代码质量最好的时候,不想现在常常为了业务去撕破逻辑。
网友评论