重温Web开发及技术选型
一、前端架构:
方案 | 技术 | 优点 | 缺点 | 案例 |
---|---|---|---|---|
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服务端提供数据 | 1、需要SEO的页面使用Node服务器渲染(前端人员维护Node.js工程) |
总结: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交互。