语雀桌面端技术架构实践( 四 )


文章插图
 
主要包括:
 

  • 日常观测:在开发模式下,建立观测性能指标能力,做到心中有数;
  • 自动化任务:日常也会有自动化任务,模拟真实用户长时间使用,及时发现内存泄露等问题;
  • 性能大盘:对于线上性能水位,能有一个全盘的感知能力,灰度发布过程中可重点关注 。
架构重点 - 稳定性 
相比较于 web 而言,桌面端的稳定性也是要求更高的 。
语雀桌面端技术架构实践

文章插图
 
从研发流程上看,我们主要有两块事情:
 
  1. 单测、集成测试:利用代码测试来辅助整体稳定性
  2. UIA:通过模拟用户行为的 UIA 自动化测试回归来提升稳定性,及时发现异常 。
 
语雀桌面端技术架构实践

文章插图
 
语雀桌面端技术架构实践

文章插图
 
注:UIA 是语雀工程师自研的自动化方案,详见 :Macaca MacOS:https://github.com/macacajs/macaca-macos
语雀桌面端技术架构实践

文章插图
 
另外建立了稳定性大盘和实时告警,来感知到线上性能情况 。
为了保证每次发布的稳定性,减少回归成本,我们利用每周一次预览版发布的敏捷研发模式,来分解大版本发布带来的集成风险 。
总结
语雀桌面端技术架构实践

文章插图
 
 
  • 针对当前的业务体量和团队经验,选择合适的技术架构;
    • 现在肯定有比 Electron 更新的桌面端架构,比如 flutter、tauri 等,要综合看比如团队积累以及稳定性,是否有成熟的商业化产品等;
  • 性能和稳定性优化是持续性的过程,先建立度量和感知;
  • 交付效率和交付质量最容易被忽视,但却是架构方案的重要考量;
    • 架构好坏的评判标准一定是由业务效果决定的,交付效率和交付质量是衡量业务效果的手段之一 。

【语雀桌面端技术架构实践】


推荐阅读