Skip to content
鱼竿钓鱼干 edited this page Jun 21, 2022 · 10 revisions

fishjoy C++ 服务器框架

关于 fishjoy

关于 fishjoy 这个生造出来的词,你可以将其翻译为鱼乐或渔乐

前者来自《庄子·秋水》的鱼乐之辩:”子非鱼,安知鱼之乐?“

后者则是来自小时候玩 Minecraft 时加入的一个游戏服务器名字“渔乐“,在其中被大佬们教授了许多有意思的技术。

因此 fishjoy 这一名字大抵有两层含义,其一:fishjoy 不过是我的鱼之乐罢了,其中很多东西可能显得幼稚、过时入不了大佬们的眼,还请各位在指正缺点的同时口下留情;其二:“授人以鱼不如授人以渔”,在 fishjoy 的编写过程中参考和模仿了很多优秀的教程和开源仓库,从前辈们的教程中可以体会到他们对后辈的关切,希望有朝一日我也能成为像他们一样的人,感受一下授人以渔的乐趣。

fishjoy 的定位

image

fishjoy 定位为 C++ 服务器框架,因此 fishjoy 需要做下面这些事情

  1. 对操作系统提供的原始 API、机制、数据结构封装成易于调用和理解的基础组件(如将 pthread 封装成简易线程类)
  2. 编写管理组件对基础组件进行管理(如协程调度器)
  3. 基于管理组件实现基本功能组件(如基于协程调度器实现 IO协程调度器的IO多路复用功能)
  4. 将多个功能组件集成到一个框架中( fishjoy 就完成啦!)

fishjoy 概要设计说明

基础设施层

管理组件层

功能组件层

框架层

fishjoy 详细设计说明

关于 fishjoy 的详细设计可以在该 wiki 的其他页面中了解,在此简单说明阅读方式

详细设计分为下面几部分:

  • 背景说明:需求分析、概念介绍、背景调查
  • fishjoy 详细设计:类、方法API设计,流程设计
  • fishjoy 实现:关键代码实现
  • 使用案例:简单案例、注意事项(反面案例)
  • 其他:性能对比、测试数据、参考资料

大方向

  • 提高性能
  • 提高观测性
  • 提高扩展性
  • 简化业务代码
  • 增加调试机制