转转质检桌面应用程序的架构演进

质检是转转履约体系中的重要一环,通过对手机、平板、笔记本、耳机、手表等品类商品的软硬件功能、外观成色等进行全方面检测,为买家、卖家把好质量关,让二手交易变得更透明、更靠谱,促进绿色消费。

在质检环节中,通过标准化产线,结合自动化设备、质检 APP、桌面应用程序等,最终输出全面可信的“质检报告”呈现给用户。其中,桌面应用程序发挥着举足轻重的作用,本文将重点介绍桌面应用程序架构的演进及其落地。

1 背景

转转质检的桌面应用程序,前期主要由 Qt 构建,C/C++提供底层支持。这些桌面应用的视图层、应用层、以及底层能力支持,均由 C/C++开发人员承担全部开发迭代工作。其次随着业务的不断发展,部分桌面应用程序逐渐暴露出拓展性差、迭代难的问题。

在转转质检技术团队,除了 C/C++开发同学外,还有配套成熟的前端和 Java 后端,综合来说:对于视图层,前端的技术生态、以及开发人员的技术经验,在视图层开发方面具有很大的优势;在应用层方面,Java 技术生态的优势不言而喻,同时 Java 后端同学对整体业务和系统都有着相对全面深入的了解,简而言之,Java 同学在应用层架构设计和落地方面,是非常合适的。

综上,基于团队实际,笔者团队对桌面应用程序,提出了新的技术架构——EJC(Electron、Java、C/C++)。该架构的主要优势在于:

  • 让 C/C++开发同学更偏向于底层能力的研究,发挥更大的价值。
  • Electron 本质是前端技术栈,Java 同学更理解整体业务,在应用层设计经验方面更擅长;且前端和 Java 资源更容易灵活调配。
  • Electron 和 Java 本身是跨端的,对于后续质检桌面应用各端的整合(Windows&Mac),具有不错的优势。

2 EJC 架构

简单说,EJC 技术架构即:Electron(视图层/用户层),Java(应用层),C/C++(基础能力层)。

2.1 Electron

Electron 是一个基于 Chromium 和 Node.js 的框架,一套多端生成 Windows、macOS 和 Linux 的跨平台桌面应用程序。

  • 本质是前端技术栈,内置了 Chromium 内核使得应用程序具有最新的 web 标准,开发人员可以专注应用程序的逻辑和界面设计,不用再束手束足做浏览器兼容性操作。
  • 整包更新和热更新,使程序保持最新的状态,类似混合移动应用(Hybrid APP)的快感。
  • 安全的跨平台运行环境,可以有效地降低程序崩溃和系统错误的机率,实现更加可靠和稳定的应用程序。
  • 丰富的 API 在 C/C++能力的加持下,让软硬件结合更加丝滑,扩展能力更进一步。

2.2 Java

Java 应用层,主要包括:

  • 通讯模块:提供基于 HTTP、WebSocket 等协议的通信能力。
  • 底层交互模块: 封装了 Java 调用本地代码(动态库)的技术(JNI/JNA)。
  • 数据存储:使用轻量级数据库 SQLite 来持久化数据,为数据的高可用及容错提供基础能力。
  • 事件监听:基于 Spring 的事件和监听机制实现了基于事件驱动的编程模型,有松耦合、高扩展性和可测试性等优点。
  • 业务模块:必要的业务逻辑处理。
  • 监控模块:对客户端的实时运行参数、硬件异常情况等数据进行记录,定时上报云端。
  • 配置管理:定时从云端拉取最新的配置,覆盖本地配置。
  • 调度策略:根据设备的历史状态ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值