摘要:总结我觉得,以后基于的全栈式开发的模式将会越来越流行,这也会引领前端步入工程化时代。欢迎继续关注本博的更新中间层实践一基于的全栈式开发中间层实践二搭建项目框架中间层实践三配置中间层实践四模板引擎中间层实践五中间层的逻辑处理
版权声明:更多文章请访问我的个人站Keyon Y,转载请注明出处。前言
近期公司有个新项目,由于后端人手不足,我果断的提议用node中间层的方案,得到了老大的支持,所以一次大单尝试就来了。
Node中间层允许前端来做网站路由、页面渲染、SEO优化,对以往从来不接触这些内容的前端选手来说,正是锻炼我们网站架构的好机会。
另外,这也是一次深入了解Node的好机会,准备好迎接即将到来的前端工程化时代。
在说这个话题之前,先给大家分享一篇文章(【探索】NodeJS中间层搭建),它让我对node中间层的理解更加深刻,特别是最后的来自淘宝的PPT。
现有开发模式的适用场景玉伯提到的几种开发模式,各有各的适用场景,没有哪一种完全取代另外一种。
比如后端为主的MVC,做一些同步展现的业务效率很高,但是遇到同步异步结合的页面,与后端开发沟通起来就会比较麻烦。
Ajax为主SPA型开发模式,比较适合开发APP类型的场景,但是只适合做APP,因为SEO等问题不好解决,对于很多类型的系统,这种开发方式也过重。
前后端分离从职责上划分,node中间层实现了前后端分离:
前端:负责View和Controller层
后端:只负责Model层,业务处理/数据等
拿我们公司来说,之前的网站前台的项目,是基于后端的MVC,在遇到同步和异步结合的页面时候,和后端频繁沟通,对前后端来说都是很痛苦的。
对前端来说,发挥的空间十分的有限,例如:性能优化,只在前端做是很有限的,是需要和后端配合才能实现的,比如 随后的部分我会写道的无刷新加载。
前端掌握了Controller,就可以做路由设计、网站目录结构、网站前端架构。
掌握了View,就可以通过后端模板引擎(jade/pug,Ejs,swig等),边写边绑数据。更别提,pug之流 还有mixin,让我们对 html进行函数化,大大提高效率。
NodeJS让前端无需学习一门新的语言,就能做到这些事情。
基于NodeJS“全栈”式开发下面的这张图很简单形象的说明了Node中间层
中间层的性能问题多加了一层通讯,肯定会有一定的性能损耗。但分层带来的损失,一定能在其他方面的收益弥补回来,而且合理的分层能让职责清晰、方便协作,大大提升开发效率。也可以通过优化通讯方式和协议,尽可能把损耗降到最低。
拿我公司的网站举例:一个静态化的详情页面上有很多(动态)的数据,用户资料、评论信息、订单等等,需要5、6个异步请求,node中间层可以代理这些请求,轻松实现Bigpipe。Node什么都能做,为什么还要JAVA/PHP?
在PC上你觉得发5,6个异步请求也没什么,但是在无线端,在客户手机上建立一个HTTP请求开销很大,有了这个优化,性能一下提升好几倍。
我们的初衷是做前后端分离,如果考虑这个问题就有点违背我们的初衷了。即使用Node替代Java/PHP,我们也没办法保证不出现今天遇到的种种问题,比如职责不清。我们的目的是分层开发,专业的人,专注做专业的事。基于JAVA/PHP的基础架构已经非常强大而且稳定,而且更适合做现在架构的事情。
前端的任务更重要了常见的前后端分离的开发模式中,后端为前端提供了路由结构和页面的数据绑定,前端只需要切页面和少量的逻辑。
在node中间层中,前端不仅仅要切页面和做页面逻辑,还要做url design、页面数据绑定、联调与沟通,还要考虑SEO的问题,伪静态页面、title/keyword设置、网站地图,甚至包括错误日志等等。
虽然前端的工作量增加了不少,但是基于模块化的开发,让总体的效率提升了。
对于后端程序员,接口整合的工作交给了前端服务器进行处理,同时和前端耦合度大大降低,工作量和工作效率都减少了。
另外,由于前后端分离,测试都可以分开来了,专门测试接口的和专门测试ui层。
总结我觉得,以后基于NodeJs的全栈式开发的模式将会越来越流行,这也会引领前端步入工程化时代。但是要把Node全栈开发变成一个稳定的、方便的开发工具,还有很多路要走。这次公司的交易平台项目就是一个很好的实践,接下来,请继续关注我对这个项目的总结,希望能给各位带来灵感。
欢迎继续关注本博的更新
Node中间层实践(一)——基于NodeJS的全栈式开发
Node中间层实践(二)——搭建项目框架
Node中间层实践(三)——webpack配置
Node中间层实践(四)——模板引擎pug
Node中间层实践(五)——express-中间层的逻辑处理
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/92711.html
摘要:的意思是,如果碰到不能的情况,就整页刷新首页路由开发环境中使用了,需要将每一个的配置中写上欢迎继续关注本博的更新中间层实践一基于的全栈式开发中间层实践二搭建项目框架中间层实践三配置中间层实践四模板引擎中间层实践五中间层的逻辑处理 版权声明:更多文章请访问我的个人站Keyon Y,转载请注明出处。 这里没什么可说的,webpack的配置和插件实在太多了,用的时候查文档就行了。 项目地...
摘要:项目地址脚手架使用过,的同学都清楚,官方推荐的安装方式是通过专用的来快速搭建一个由编译打包的项目框架。用在层的模块化,在中间层实现了模块化。这样,从中间层到前端都实现了热加载。 版权声明:更多文章请访问我的个人站Keyon Y,转载请注明出处。 项目地址:https://github.com/KeyonY/NodeMiddle 脚手架? 使用过angular2,vue2的同学都清楚,官...
Github上的脚手架实在太多,可能大多数都是只专注在前端的web开发,例如流行的React生态中的create-react-app和Vue生态中的Vue-cli, 但是可能作为像我一样的全栈开发,一个只关注在前端开发的脚手架满足不了所有的需求,我们可能需要开发更复杂的全栈JS的项目,所以这里介绍又一个基于NodeJS的全栈开发框架 koa-web-kit,不一定适合所有人,但至少又多了个选择?。...
摘要:技术栈觉得好的欢迎点个。前端后端部署演示全栈式的开发多人在线聊天室项目只适配了移动端,请使用浏览器的手机视图查看。之前删除了一个文件,但是没有删除中的对应值。编译时会报上面的错误。 技术栈 觉得好的欢迎点个star ^_^。 前端:Express & EJS & ES6 & Less & Gulp 后端:Express & SocketIO & MongoDB & REST API ...
阅读 2662·2021-11-25 09:43
阅读 2471·2021-09-22 15:29
阅读 983·2021-09-22 15:17
阅读 3627·2021-09-03 10:36
阅读 2222·2019-08-30 13:54
阅读 1739·2019-08-30 11:23
阅读 1162·2019-08-29 16:58
阅读 1290·2019-08-29 16:14