client框架实现

设计目标

  1. 用来测试tiger后端系统正确性的一个命令行工具
  2. 使用go所编写的sdk,便于今后集成到压测程序中去
  3. 使用命令行,可以进行跨网络对话实现IM功能
  4. 可使用单元测试运行,以便于自动化测试

约束条件

  1. 交互的简便性
  2. 灵活可扩展性
  3. 依赖简单,跨平台性

技术方案

  • CMD模块:命令解析模块,此模块会解析命令行参数,作为tiger的项目微服务化的部署入口,以此做到在一个仓库下开发多个进程程序,复用公共代码,简化部署过程。
  • CUI模块:命令行交互层模块,使用命令行生成简单的图形界面,用来高效的进行端到端调试。
  • SDK模块:IM客户端逻辑层,用来封装真实IM客户端行为,抽象出来方便复用,具体可以分为API/logic/net三个子层。

  • 使用cobra组件,作为命令行解析层,众多知名开源golang项目的首选,k8s等,扩展性好。
  • 使用gocui组件,用于绘制ui交互层,简单,代码好读,符合DDD策略,可以最小化开发成本。