示意图


整体架构
- 前端以JavaScript为主;
- 后台以Java为主;
- Node适配层和Java接入层作为前后端的接口;
Node.js接口层
前后端接口调试,是目前移动开发中比较大的痛点。原因主要有几个:
- 前后端一般属于不同的部门,在工作中都会下意识地把麻烦推给对方,造成潜在的冲突风险。
- 前后端的思维模式不同,造成相互不理解。
- 在后端开发看来,接口层只是个二传手,没什么技术含量。
- 在前端开来,后台给的数据不是多了,就是少了,很少有称心如意的。
- 由前端的人来写接口,更理解需求
- 同一个部门,接口调试更加方便
- 前端多样性,有iOS,Android,小程序,PC,各种端;经过这一层包装之后,后端具体的服务,只要对接一层就可以了。
- Java,高并发要求比较高。Node.js,本身就是从异步高并发角度去设计的,比较适合做接口层
- 客户端的JS,PC端的JS,Node.js都可以部署在同一服务器上,解决同源问题
C/C++核心功能层
iOS和Android底层都是支持C/C++的,这也是一种跨平台方案。比如网络,硬件控制,视频等等,这些公用的基础功能。可以考虑放这一层。当然,这部分对人员要求比较高,有条件的可以考虑上。
Native组件层
不论是采用react native方案,还是weex方案,Native部分的工作重点都转向了提供组件。
组件也可以包含界面,比如照片,取本地照片,照片预览,图表展示等等,做成带界面的组件更方便使用。
业务层
HTML/CSS/JavaScript组合来写页面和业务逻辑,可以达到跨平台,热更新等优良特性。同时,在Native组件的支持下,性能也很不错。
网友评论