一、前端架构:
方案 | 技术 | 优点 | 缺点 | 案例 |
---|---|---|---|---|
MPA-前后端不分离 | 1、传统MVC架构,后端主导 2、服务端通过模板引擎渲染,如jsp、Freemarker | SEO | 1、服务端渲染压力(可以通过缓存静态页解决) 2、前后端职责不清晰 | CicadasCms |
MPA-前后端分离 | AJAX、jquery、vue等新兴前端框架 | 1、前后端分离职责清晰 2、减轻服务端渲染压力 3、做简单SEO 4、首屏加载速度适中 | 1、页面间数据传递麻烦 2、页面转场动画无法实现 3、页面资源不重用 | renren-fast |
SPA | vue、react、AngularJS、webpack | 1、前后端分离职责清晰 2、减轻服务端渲染压力 3、统一管理页面状态 4、转场动画 | 1、做SEO困难(可以通过SSR) 2、首屏加载慢(可以通过拆分解决)LsLoader拆分缓存 | vue-element-admin |
SPA+Node | SPA、Node服务端渲染、Java服务端提供数据(这里的Node服务端渲染和BFF不是一回事,BFF理论上还是属于BackEnd) | 1、需要SEO的页面使用Node服务器渲染(前端人员维护Node.js工程) | ![此处输入图片的描述][1] |
总结:SPA适合后台系统、移动Web项目等非内容型、非强依赖SEO型的网站应用。
二、后端架构:
最近在写 无线交付平台 后端代码,起初使用nodejs、express,后来有朋友问我Springboot的问题,我在刚毕业的时候研究过Struts2、SpringMvc,但Springboot却还没有接触过,最近一段时间通过renren-fast了解了Spring Boot、Shiro的开发流程,并将其修改为gradle构建,使用Intellj作为IDE进行开发。
以前仿站的经验看,国内还是Discuz比较方便,模板插件比较多,java版的bbs 或cms没有找到跟Discuz媲美的。所以建议做外包或者SideProject的朋友可以考虑如下搭配:
- Discuz:发挥其擅长的前台模板和交互插件。
- renren-fast:作为java后端系统,提供数据接口,也可以做Discuz的辅助后端,如文章采集、定时任务等。
- vue-element-admin:作为后台管理系统,提供后台UI交互。
参考链接
https://github.com/lifesinger/blog/issues/184
[1]: https://camo.githubusercontent.com/ed895cf7561cb3ec07ef74aa2dea573b57dbe219/687474703a2f2f696d672e68622e616963646e2e636f6d2f3430303931653637316230626465653236653531366163303530633663616563383038383562386131326238372d374a676646685f6677363538