Laravel 负责服务器端业务
Cordova 负责移动端多端打包
Vue 负责前端代码实现
Electron 负责桌面端多端打包
选择这个架构的原因是:
- 团队比较熟悉 Vue2 + Laravel5 的 web 开发架构
- Vue2 Laravel5 都已经比较稳定
- 产品具有移动端和桌面端的需求,所以使用 Cordova 和 Electron 的解决方案
为此目标所引入的新技术:
- Cordova:一个移动端开发的 JavaScript 框架,一套前端代码可以多端打包
- 部分的 Android、iOS 原生开发
- Vue2 的 SPA 全家桶
暂时不使用的技术:
- GraphQL:太注重前端业务,对后端业务和搜索效率有影响
- Lumen:等出现性能问题的时候再迁移
- Electron:等web端和移动端稳定以后再使用
继续使用的技术和工具:
- 服务器:LNMP
- 云服务:阿里云、七牛云
- UI框架:Element UI、Framework7
- 前端打包工具:Webpack
- 调试工具:Chrome、Postman、Slack
- KV数据库:Redis
- 版本管理:Github
- 项目管理:Phabricator
- 原型图设计:Axure(web端) + 墨刀(移动端)
- DevOps:Ansible
相关规范:
PHP 规范:《PHP Standards Recommendations》
JavaScript 规范:《Vue 官方推荐的 ESLint 配置》
文档规范:《中文文案排版指北》
备注
此架构由于使用 Vue2 的缘故,放弃了对于 IE8 的支持,截止目前,IE8 的市场占有率,NetMarketShare 的统计结果是 1.62%,百度统计 的统计结果是 7.95%,这无疑是一个艰难的决定~
Element UI 需要 IE10+ 的支持,不再兼容 IE8 和 IE9,按照百度统计的结果,需要放弃 16.15% 用户的兼容性~
程序结构细节
Web端 和移动端是两套不同的前端代码,两个不同的 Github 地址,共用后端的数据接口