构架如下图:
Design1对比Design2需要太多额外复杂度,如下:
1. 技术多样,design1需要具备python + DJango技能
2. 通信协议多样
a. 客户端进程间调用和通信,跨进程激活可能会用到枚举进程,枚举窗口(app1 和 app2)。
b. http(app2 client 和 app2 server间), QT的http请求发送skill。
c. python sdbus协议(app1 server 和 app2 server 间)。
3. app1 和 app2需维护两套QT UI风格
4. app1 和 app2需维护两套QT 公共组件
5. app2 server部署复杂,需要安装python + DJango + python DB driver。
6. 维护性差,需要具备基本的python skill, 如果c++,可team任何成员。
在app2合入app1后,扣除app1崩溃对app2的影响,对于整个团队来说,Design2完胜Design1.