前提情况
目前公司团队遇到了新的问题,在开发过程中,往往遇到了项目开发瓶颈,前后端互相之间合作变得越来越困难。
总结有一下几点:
1.前端没有话语权
这里说的没有话语权是指,在传统的MVC模式下,前端只能作为一个静态页面的工人。对于任何的HTTP/HTTPS、CSRF、XSS防范攻击等控制都无法良好的处理。由于服务端控制了所有的页面的渲染,甚至于有些公司更是要求页面的一些参数由服务端来控制,这些本来是无可厚非的问题,<h4>但是</h4>,由于前端不能够对于架构的页面进行良好的设计和组装,导致问题出现的时候,定位非常复杂。这种情况出现往往是因为在架构设计之初,对于前端工程师的建议没有认真的考虑。
严格来讲,没有人会愿意做重复无用且异常繁琐的工作,既没有效率,也没有成就感。
前端所需要的开发环境体验
未分离前后端开发 | 已经分离前后端开发 | |
---|---|---|
IDE使用 | 不懂、但是要用 | 短 |
服务器部署启动 | 不懂、将就着学吧 | 短 |
项目热部署 | 不懂、甚至有的服务端人员都不会 | 支持 |
接口对接 | 复杂(不仅仅是json/xml)还有el表达式,各种java对象要查看) | 简单(http协议),文档就可以完成 |
开发体验 | 混乱、需要前端工程师也懂得各种服务端的知识(话说我都懂了,干脆我一个人写得了) | 简单、爽快 |
开发速度 | 慢 | 块 |
项目部署 | 不懂、看服务端的同志了 | 打包交给nginx代理(快) |
这里看来,要让前端工程师支持未分离的界面开发,首先要懂的技能:(java为例)
- java IDE的使用
- web服务器的部署启动(tomcat、jboss之类)
- web容器的热部署
- jsp页面的语法:包括可能会出现的 jsp指令以及el表达式
- 一旦使用了jsp页面的表达式,就需要前端去看MVC中的控制器层,来观察返回了那些对象注入到页面中。
- 又因为使用了 jsp页面,各种Import页面的文件以及JSP语法要学习。
2.接口对接牵扯不清
由于MVC模式有众多模板语法、freemarker、JSP(java servlet Page)、等等模板语法。模板语法最初的设想是让开发者更快速的完成自己的页面,和现在的 vue angular react 模板有异曲同工之处,但是前端工程师的出现让这种模式不再适合开发(不懂服务端语言)、(在这里也不能说前端工程师垃圾,一门语言都不会,就会画页面),三人行必有我师,前端工程师与我们的侧重点不同,深度和广度也有不同,这里只能说不适合,
服务端与前端分离
在这里已知的分离,是有许多社区和大企业提供了解决方案的,但是大致分为两种实现方案。
node.js 中途岛模式
有哪些好处?
- node.js 在做代理服务器的作用,承包了所有的UI组件渲染和数据的封装处理
- 服务端也得以从JSP的魔咒中摆脱出来(当然如果你是全栈工程师,当我没说)
- 利用这种模式实现前后端分离的开发工作都是没有问题的。
无node.js中间服务器模式
有哪些好处?
- 前后端工作方式分离了,效率也会进一步提高。
- 打包文件利用nginx代理,开发调试