IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    MooC的一些设计思路

    kimi发表于 2012-09-09 02:29:31
    love 0

    题外话
    由于公司业务需要用C做一些实现,和C++不同的是,C并没有太多的库和方案供选择,所以我们只好自力更生,努力重复造车轮。

    做技术十来年的时间,说实话底层技术框架自己也写过不少个,不管是个人业余作品,还是公司业务需要的,又或者是参加开源项目所实现的,底层技术框架面临着设计、解决、实现各个方面的问题。这次MooC的设计希望能够首先满足业务的诉求,同时解决技术拓展方面和技术实施方面的问题。

    MooC是什么
    公司不是以单一产品或者业务驱动的公司,所以在技术实现和业务诉求上要求技术方案能够更快、更方便的实施。从这个角度来说,底层技术框架必须要到达的标准有:

    • 实现业务所需要的代码量尽可能的少;(代码量尽可能的少就意味着工期可能会更短)
    • 框架封装不能影响研发人员理解系统本身;(影响理解意味着出现问题及时解决的可能性会降低)
    • 性能不能有明显的劣势或者临界特殊情况;
    • 可以适当的放弃预期业务使用不到的特性或者功能;

    基于以上四点,我们决定设计MooC(More & Original C Framework)框架。

    MooC的设计理念
    在Online Game的后端实现中,通常的模式是:

    • 用户建立链接
    • 发送登陆请求
    • 返回用户数据
    • 游戏逻辑操作

    MooC的设计将以用户消息为主,整个底层以消息接受和消息发送为支撑,基础框架致力于底层系统的搭建,以及通讯协议和通许标准的制定,同时制定请求和响应标准处理流程和方式,并不实际解决具体业务逻辑的处理。

    MooC需要涉及的内容

    • MooMem,为提高效率,内存池的实现是必然的
    • MooGC,为方便的管理内存,内部GC的实现也是需要的,但是这个优先级不高
    • MooString,字符串操作处理方式的集合
    • MooVector,C++中vector的C语言实现
    • MooQueue,线程安全和线程不安全的队列的实现
    • MooHashTable,线程安全和线程不安全的HashTable的实现
    • MooLog,Log记录的标准和规范化
    • MooMd5、MooRc4,一些常用加密或者基础算法的实现
    • MooIni,系统配置(server.ini)文件的读取和管理
    • MooXml,常用文件格式的读取(xml、json)
    • MooEvent,epoll、kqueue、select等事件模型的兼容(没办法,公司也许用Linux,自己用mac)
    • MooSocket,Online Game所必不可少的Socket相关支持和封装
    • MooInit,初始化游戏服务器配置和参数读取以及管理的封装
    • MooService,创建游戏服务器所需要的Service相关的方法
    • MooDaemon,游戏服务器以守护进程的方式运行时日志等的特殊处理
    • MooConf,游戏服务器配置文件实时管理系统的对接
    • MooAnalysis,必须系统内部支持统计系统的需求
    • MooDataChange,必须系统内部支持用户数据变更记录系统的需求

    先写到这里,其他的随后再补充,



沪ICP备19023445号-2号
友情链接