在这6个月的时间里最有价值的事情莫过于结识了一群人,融入了一个新团队。这段时间中无论是本团队还是外部团队都有合作,总体来讲我们相处愉快,并且完成了既定目标。
在技术方面,鉴于以前的客户端建立在云信demo之上,逻辑与界面糅杂,造成聊天室模块过于臃肿,在此基础之上的开发也变得困难重重,所以采取了以下措施:
1.开发了一套底层框架,用于解耦各个部分,框架包括3中机制:
通知机制,利用通知消息的方式提供了在各个模块间的沟通桥梁。
全局单例,区别于普通单例,能够在各个模块间共享此单例,而且使用方法简单,为逻辑开发提供了便利。
插件结构,插件机制本来就有利于应用的解耦,特别对于松耦合的系统更是如此。插件系统不仅利于开发,扩展还对后期的
更新等维护操作带来便利。
2.独立音频和聊天室模块。利用以上框架,完成了音频和聊天室的独立。音频模块可以单独测试,和使用。
3.本地缓存基础组件。鉴于以前并没有这样的机制,本地缓存方法各异,有用ini,有用xml的,缓存的位置也比较凌乱,对于后期的开发和维护带来了困难。因此在sqlite的基础之上开发了一套缓存系统,提供了简洁的键值对操作接口,方便了缓存的开发工作。
4.攻坚云信消息流显示卡慢的问题。基于云信的UI在高频绘制时会出现卡慢的问题。最终定位到是在UI框架内部。最终通过在外部对消息进行分流,优先处理了交互消息临时解决了这个问题。
5.QT框架迁移。由于云信框架下的种种问题,所以决定将客户端迁移至QT下。设计了新客户端的框架,独立底层,公共组件,音频和聊天室模块。所有的业务逻辑和界面全部建立在MVP模式基础之上。