client框架实现
设计目标
- 用来测试tiger后端系统正确性的一个命令行工具
- 使用go所编写的sdk,便于今后集成到压测程序中去
- 使用命令行,可以进行跨网络对话实现IM功能
- 可使用单元测试运行,以便于自动化测试
约束条件
- 交互的简便性
- 灵活可扩展性
- 依赖简单,跨平台性
技术方案
- CMD模块:命令解析模块,此模块会解析命令行参数,作为tiger的项目微服务化的部署入口,以此做到在一个仓库下开发多个进程程序,复用公共代码,简化部署过程。
- CUI模块:命令行交互层模块,使用命令行生成简单的图形界面,用来高效的进行端到端调试。
- SDK模块:IM客户端逻辑层,用来封装真实IM客户端行为,抽象出来方便复用,具体可以分为API/logic/net三个子层。
- 使用cobra组件,作为命令行解析层,众多知名开源golang项目的首选,k8s等,扩展性好。
- 使用gocui组件,用于绘制ui交互层,简单,代码好读,符合DDD策略,可以最小化开发成本。