本文最后更新于 4456 天前,其中的信息可能已经有所发展或是发生改变。
题外话
由于公司业务需要用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,必须系统内部支持用户数据变更记录系统的需求
先写到这里,其他的随后再补充,
已阅,很有帮助
望楼主提高本博在移动设备上的用户体验
第一次聽到MooC這技術…話說博主的Typecho主題很好看,可以告知是如何獲取?%>_
不错。。
想起当年的moophp了 =.=
glib 提供很多基础库。可以看看
不错,挺 专业的
建议设个站内搜索呀。
这个框架开源不?托管在哪里啊?
这个框架 moophp 也是你写的
代码量少意味着工期可能会更短,这个~不太靠谱吧~
为什么MOOPHP不更新了啊!!!!