西安嘉瑞德网络公司
当前位置:网站首页 > 建站百科 > 网络公司做网站注重前后分离 返回列表

网络公司做网站注重前后分离

发布时间:2019-01-10来源:admin
网络公司做网站注重前后分离,什么是前后端分离,传统开发模式相信很多做过Web开发童鞋应该都会经历这样一种开发模式,利用后端语言提供的模版引擎编写HTML/XML页面,比如:

PHP 开发有 Smarty模板引擎

Java web工程有jsp页面

Python 各个Web框架都有各自的模板引擎

NodeJS 的express你懂得

都有一个共同的特点,服务器端后台语言生成解析后的HTML/XML格式返回给客户端,例如浏览器端访问直接返回解析好的HTML,浏览器直接就解释执行。

在传统的像ASP,JSP和PHP等开发模式中,前端是处在一个混沌的状态中,可以说是没有独立的“人格”可言。

前端负责切图和编写静态页面模板,后端将数据渲染到前端提供的页面模板中,最后将页面渲染到浏览器展示。

这个过程中,前端只提供页面模板或者写一些JavaScript脚本,有的甚至JS脚本都是后端来写,前端的作用只局限于切图和样式模板文件,这种角色就是传说中的“切图仔”。

前后端分离,不只是简单的代码的分离。

首先是要架构上分离解耦,逐渐摆脱前后端在架构上的依赖,前后端各司其职,分开部署在不同的服务器上,通过RESTful接口传递数据。减轻后端服务器的压力,后端服务器不再负责页面渲染,只负责输入数据,吞吐量提升了好几倍。

其次是逻辑分离,不分离的时候,对于业务代码的界限很不明确,业务逻辑基本都放在后端,分离之后,前端也承担了一部分不该后端来写的业务逻辑,数据处理更加清晰。

最后是系统分离,同一个后端系统,可以将同样的接口数据提供给PC端、Mobile端和Native端等不同的前端终端,不需要为每一种终端提供一套接口。同样,对于前端应用来说,可以更方便的调用多个后端服务器的接口,处理和展示多个系统间的数据。

为什么要前后端分离
前后端分离,让软件开发的流程更加清晰,解决了开发阶段的痛点。

从前,前端不止要学习后端的模板渲染语法,还要配置后端的开发环境,并不断同步后端的代码,这对于前端来说是非常痛苦的。

而现在,前端有自己的服务器,不需要再依靠后端服务器来支持项目运行,如果在开发阶段,还可以使用mock数据(要先和后端确定接口数据结构),摆脱对后端接口的依赖,这样极大的提高了开发效率,系统分工也更加明确。

前后端分离后,需要考虑哪些事情
分离后的前端,不再是一个简单的HTML文件,已经是一个独立的应用系统。除了要考虑页面的数据渲染展示,还要用工程化的思想来考虑前端的架构,前后端的交互和数据安全等事情。

架构
**前端应用部署在Nodejs、Nginx或者Nodejs和Nginx组合的服务器上,通过反向代理转发页面请求到后端服务器,相当于在传统的流程中加了Nodejs这一层。**当然,也可以用Nodejs服务器来承担一部分负载均衡的工作,业务逻辑也可以放在Nodejs这一层来处理,例如:通过判断请求是来自 PC 还是 APP ,将请求发到不同的后端服务器

Nodejs的架构中,分层如下

让我们来回想一下软件开发流程中的几个关键环节:

(1)产品经理提需求,画原型;

(2)UI设计师根据原型出设计图;

(3)测试团队根据产品原型编写测试用例,制定测试计划;

(4)架构师根据原型编写API文档;

(5)前后端工程师基于API文档完成业务开发;

(6)测试、改BUG、发布。

API文档环节直接关系到了前端和后端两个开发团队,也是整个软件开发流程中耗时最大的环节。

RESTful接口交互
前后端分离之后,更多的是采用 RESTful 风格的接口与后端进行数据交互。(如果你们的项目还在使用静态的API文档,比如word文档,那你们必定经历着巨大的痛苦)

REST是“呈现状态转移(REpresentational State Transfer)”的缩写,一种API的架构风格,在客户端和服务端之间通过呈现状态的转移来驱动应用状态的演进。

在 REST 样式的 Web 服务中,每个资源都有一个地址。资源本身都是方法调用的目标,方法列表对所有资源都是一样的。这些方法都是标准方法,包括 HTTP GET、POST、PUT、DELETE,还可能包括 HEADER 和 OPTIONS。
RESTful的API设计,使得后端通过接口向前端传递数据,数据的格式通常是JSON这种通用的格式。对前端来说,只要后端返回过来的是RESTful的数据就行,不管后端是用Java写,还是用python或PHP,拜托对后端的依赖,做到前端系统的独立。

REST服务的调试:Postman 和 Insomnia

使用模板引擎
前后端分离之后,前端工程师需要将通过API获取的数据呈现到页面上,虽然也可以通过jQuery对页面一个一个赋值,但是这种效率太低了,或者也可通过在JavaScript中拼接HTML,但是这种方式太难维护HTML代码了,也很难阅读。因此最好的方式就是使用模板引擎。

前端的模板引擎跟后端模板引擎很相似,比如JSP或cshtml(razor),他们的语法都非常相似,他们所实现的功能也几乎一样:将数据绑定到HTML模板。VueJs和react都可以充当这样的模板引擎。我们最终没有选用react而是选用了VueJs的原因只有一个,那就是VueJs是真正的响应式,而react改变model之后需要手工调用setState才会更新UI,这是完全无法忍受的。

因为这个原因,我们只能选择VueJS作为模板引擎。

工程化构建
Nodejs不止可以用来做前端服务器,在开发阶段,它也能发挥很大的作用。
前端生态的发展,是围绕着Nodejs进行的。用npm来管理项目依赖,可以很好的维护和运行在Nodejs环境上。
打包工具grunt、gulp、webpack和rollup等,都是运行在nodejs上,再结合语法编译、打包部署等插件,将应用输入成一个完整的应用。
如果你使用了Angular、React或Vue框架,或者你使用浏览器暂时还不兼容的ES6语法,还需要在应用打包前用babel将语法编译成浏览器可识别的ES5的语法。

SPA
SPA是单页Web应用(single page web application,SPA)的简写,就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。

像Angular、React或Vue就是为了SPA而设计的,结合前端路由库(react-router、vue-router)和状态热存储(redux、vuex)等,可以开发出一个媲美Native APP的Web APP,用户体验得到了很大的提升。

当然,SPA也不是完美的,也不是适合所有的web应用,需要结合项目和场景来选择。

SPA有如下缺点:

初次加载耗时增加。可以通过代码拆分、懒加载来提升性能,减少初次加载耗时。

SEO不友好,现在可以通过 Prerender 或 Server render 来解决一部分。

页面的前进和后端需要开发者自己写,不过现在一些路由库已经帮助我们基本解决了。

对开发者要求高,由于做SPA需要了解一整套技术栈,所以,要考虑后期是否有合适的人选进行维护。

mock(模拟数据)
前后端分离框架中的API mock思路
想要实现真正的前后端分离,那就必须得用好API mock(模拟数据)。使用mock数据的好处有两个:

前端开发人员可以基于API文档生成mock数据,在后端开发人员将API发布出来之前就可以完成整个业务流程的开发;

使用mock数据能够更低成本、更快速地,通过直接修改mock数据的方式,调试页面样式、调试页面功能。

全局的mock开关
为什么要设置这样一个全局的mock开关呢?主要基于以下两点考虑:

设置全局的mock开关之后就不再需要针对每一个页面设置mock开关,更容易维护,避免项目中有多个mock开关而难以统一开关状态;

如果发布时忘记将mock开关给关掉,那么发布之后一运行发布者就会发现mock开关忘了关,然后可以快速修复之后再重新发布,从而避免不小心将正式服更新为mock数据源。

正是由于以上两点考虑,我们的全局mock开关可以帮助程序开发者和发布者更不容易犯错。

解决请求问题
前后端分离后,我们只需要Server端告诉我们Api URL即可,那么这会产生一个问题:Ajax跨域。这里就不能使用一般的跨域解决方法去解决,比如jsonp,iframe信使等等,因为我们还有POST请求。

于是Http Proxy类工具就有用了,比如我就会在BrowserSync加入中间件判断每一个请求,如果是/api前缀就会代理到API Server端,API Server端收到数据后再返回给BrowserSync,BrowserSync再返回给浏览器端。这样就解决跨域请求的问题

生产环境有两种部署,一种是放到后台项目里,这就没啥说的,另外一种就是前后端分开部署,那就在前端WebServer处理端写点转发规则就好,如Nginx,Apache都支持。

静态资源路径问题
如果你的项目有上传资源功能,那自然就会产生用户资源,那前后端分离后,如何来处理这个问题呢?得先看模式。

资源与后台项目放一起,后台处理完后需要返回前台一个相对路径,如果资源时一台单独的服务器,那就需要返回资源的绝对URL即可。

会话
Web项目最头疼的就是无状态导致会话问题,传统的Web项目都使用Session/Cookie,但在前后端分离,集群部署模式下这Session明显缺陷太多。token方式已经是当前Web端解决会话的主流,并且有很多开源好用的token生成管理程序,基本上拿来就能用。

做网站公众平台每天为您分享原创Web开发资讯,开发经验,为您的技能充电。期待您的关注与分享,同时欢迎您留言,让我们每天进步一点点!
联系方式:18066528545   029-89298792

阅读过此文章的读者,还阅读过下面的文章

  • 在西安网站建设完成后需要进行维护吗

    现如今,网站依旧是大部分用户寻找相关信息,享受部分服务的主要方式。对于普通的小企业来说,建设网站无疑是一种非常重要的宣传方式。而在网站建设完成后,是否需要对网站进行维护成为了不少企业所思考的问题,毕竟网站维护是需要花费不少费用的。那么在西安网站建设完成后需要对网站进行维护吗?

    首先要明白网站维护对于网站来说是很重要的。一般来说网站维护所涉及到的范围是非常广泛的,像是内容更新、功能优化、网站安全、SEO优化等,都是网站维护的范围。

    内容更新是网站吸引用户的主要方式之一,只有网站更新新的内容了,才能够让搜索引擎收录网站的内容,让其他用户看到相应的内容,从而吸引新的用户进入网站浏览。通常来说网站内容的更新通常都是一些企业产品或是行业有关的新闻,或是一些项目案例之类的,其中相关的案例可能会对于用户更加具有吸引力一些。网站内容的维护通常都是比较简单的,很多情况下用户企业本事也是可以完成的,因此部分企业在完成网站建设后,基本上都是自己进行网站内容的更新维护。

    网站安全对于网站来说是相当重要的,一旦出现网站安全问题,对于网站和企业来说所造成的影响通常都是非常大的。通常影响网站安全问题的原因有很多,像是服务器漏洞,代码漏洞,SQL注入,黑客入侵等,每一种安全问题都有可能会对网站照成影响,轻则网站无法正常打开使用,重则泄露网站用户或是企业信息等。通常网站安全问题都是和技术代码方面有关的,大部分情况下企业自身都是很难自行完成网站安全维护的,因此大部分情况下网站安全问题最好是交给专业的网站公司来完成。

    当然了网站维护的范围是非常广泛的,通常情况下小企业是很难自行完成大部分网站维护工作的,而如果对网站不进行维护的话,网站所能够带来的效果无疑是非常小的。因此在网站建设完成后最好是找专业的网站建设公司进行网站维护工作。

  • 在西安企业为什么要选择定制网站开发呢?

    现如今网站依旧是大部分用户了解企业形象,选择相关产品的重要方式。对于企业来说建设网站依旧是最好的宣传和推广方式。而在进行网站建设时,选择定制还是还是模板却成了很大的问题。而现如今不少企业在选择网站开发时都选择了价格和成本都更高的定制网站,这其中究竟有什么理由呢?

    定制网站开发的关键在于其自由度,能够根据企业的需求和风格等,进行独特的设计,避免和其他网站产生相似性,让网站更容易脱颖而出,极大的提高了用户对于企业和网站的印象,方便更好的宣传推广。其次就是对于功能的需求了,大部分的模板网站往往受到多个方面的影响,很难满足企业对于定制化和多样化功能的需求。而定制网站因为一切都是从零开始,不会有其他方面的影响,能够完全按照企业的需求进行专门的定制开发,满足企业对于网站功能的各种需求。同时具有极大的扩展性,对于企业来说向前发展是必然的,随着不断的发展,网站的功能或是需求也是需要进行不断的升级和扩展的,通常模板网站在进行建设基本上是不会考虑太多后期扩展的事情的,导致有不少模板网站后期是很难在进行二次开发或扩展的,而定制网站在开发的过程中基本上都会考虑到后期的扩展等方面的事情,在进行代码编写的过程或多或少都会留下一些空间方面后期能够进行二次开发或扩展的。

    对于大部分企业来说,之所以会选择定制网站开发的部分原因,无疑是因为没有合适的模板或是模板的要求不达标导致。并且定制网站开发以其独特性、功能定制化、灵活扩展性等方面的优势,成为了不少企业选择的原因之一。

  • 在西安建设网站前都需要准备那些东西呢?

    现如今网站已经成为大部分企业或个人展示自身形象,宣传产品,扩展业务的重要方式,对于不少企业来说,建设网站已经是非常重要的了。但是有不少用户在进行网站建设时没有提前准备,导致网站建设进度缓慢或是出现问题。那么对于企业来说,建设网站都需要准备哪些东西呢?

    对于网站来说,最需要的无疑是确定好网站建设的目的。建设一个网站是为了展示企业产品,还是访问用户,又或是出售商品等。明确好建设网站的目的后才能够更好的规划网站的整体风格和定位等。

    其次就是选择网站的域名了。域名是网站的地址,在选择域名时最好是想一个和企业或是网站有关的域名,方便用户记忆。域名对于网站来说是非常重要的,只要是建设网站域名都是不可避免的。

    再来就是网站的服务器了。服务器是用来存放位置的数据,确保位置正常运行的重要工具。通常服务器的价格选对来说会贵很多,因此对于一些小型网站、企业或是个人来说,虚拟主机也是一种不错的选择,价格相对会低一些。

    然后就是网站的资料了。网站内容是吸引和留住用户的关键,因此在确定好建设网站的目的后,选择网站的内容也是非常重要的,像是网站都有的首页,介绍,新闻,联系等页面所需要放置的内容是非常关键的。提前准备好相应的内容不仅能够更好的进行网站的设计和制作,还可以在上线后快速吸引用户。

    对于大部分企业或个人来说,建设网站更多是委托网站建设公司来完成,就算是什么都没有准备的情况,网站建设公司也会帮助企业来完成的。当然了要是能够提前做好准备的话,也是能够极大的调高建设网站的效率的。

  • 西安网站公司的服务好与不好从哪些方面判断呢

    西安网站公司的服务好与不好从哪些方面判断呢?作为网站公司就是专门帮助客户做网站,做网站推广,以及一些定制软件开发,小程序开发的公司,但是最近几年西安市场上的网站制作公司突然少了很多,一方面由于大环境的不好受到了影响了,另外一些西安市场上的网站制作公司之前很多的,由于狼多肉少的局面很难维持住这样市场,所以,这也是市场发展的结果吧,也可以这样,这也是用户选择的结果吧,之前西安市场上的网站制作公司多,有一些劣质的公司对客户的服务不是很好,后来客户就慢慢的放弃了这部分网站公司,所以这部分公司也就消失了,但是存在下来的网站公司服务有待提升,毕竟做网站这个行业是一个典型的服务行业,只有对客户服务好了,网站制作好了,才能赢得更多的客户愿意跟你合作,接下来我们来听听西安网站公司的好坏从哪几个方面判断呢?

    第一西安网站制作服务公司的好与不好,最为重要的要看这家公司做网站的质量如何,如果做的网站可以,那就证明这家公司的硬实力还是过关的,如果连同网站做的都不咋样,更别说网站后期的服务了,毕竟网站公司的重点任何就是帮助不懂行的客户做网站的,这点要过关。

    第二西安好的网站服务公司不仅仅是网站制作的漂亮,网站后期的服务也是非常的到位,不仅能满足大众化的需求,一些个性化的需求满足标志着这家公司的服务的确很到位,这也是网站制作公司的立足之本,如果服务不到位,网站制作的再好,客户的六十是迟早的事情,所以,网站制作完毕后期的服务一定要跟上。

    第三西安好的网站公司一定要配合客户做好后期的维护续费工作,有写客户忙自己的工作,忘记了网站的域名和服务器的续费时间,于是网站制作公司要有专职的人员注这些方面的续费安排,只有这样才能尽可能的后期客户的流量,提升网站制作公司的客户留存,只有这样才能保证网站公司的长期的发展的,如果客户忘记续费,就提前给通知,对网站操作使用有哪些不清楚的,尽可能的协助客户去操作,只有这样才能提升网站服务公司的品质,让客户愿意跟你们合作,这才是根本所在。

  • 企业应该如何选择适合自己的电商网站开发方式?

    公司建网站,应该怎么选择合适的建站方式?最主要的,看老板愿意花多少钱来做了,这个是最主要的,其他方面我们一起来说一说。

    首先,看老板的预算,老板预算高,选择定制开发网站,定制开发通常费用较高,因为涉及到个性化的设计、开发和功能定制,从几万到几十万甚至更高都有可能,适合预算较为充足的企业。

    其次,如果预算有限,可以选择模板建站,开发成本相对较低,一般几百元到几万元不等,包括购买模板和一些基本的定制服务费用,适合预算有限的中小企业。
    再次功能需求,定制开发能完全按照企业的业务流程和独特需求进行开发,可实现复杂的功能,如个性化的产品推荐系统、特殊的促销活动规则、与企业现有系统的深度集成等。如果企业有独特的业务模式或对功能有很高的定制化要求,定制开发是较好的选择。而模板开发提供的是通用的功能模块,如基本的产品展示、购物车、支付等功能。虽然有些模板也支持一定程度的定制,但对于复杂的个性化功能实现起来可能比较困难或成本较高。如果企业的功能需求较为常规,模板开发通常可以满足。

    最后设计要求

    定制开发:可以根据企业的品牌形象和用户体验需求,进行独特的设计,打造个性化的界面风格,确保网站在视觉上具有独特性和吸引力,有助于提升品牌形象。

    模板开发:模板的设计风格相对固定,虽然有多种模板可供选择,但可能无法完全符合企业的品牌定位和个性化设计要求。不过,如果企业对设计的个性化要求不高,或者可以在现有模板基础上进行一些修改来满足需求,模板开发也可以考虑。
    开发时间
    定制开发:开发周期较长,因为需要从需求分析、设计、开发到测试等多个阶段,整个过程较为复杂,可能需要数月甚至更长时间才能完成。如果企业对时间要求不紧迫,有足够的时间来进行网站的开发和优化,定制开发是可行的。
    模板开发:由于模板已经有了基本的框架和功能,开发速度相对较快,通常可以在较短的时间内上线运行,适合那些希望尽快开展电商业务,对时间要求较高的企业。
    技术维护和支持
    定制开发:企业通常与开发团队建立长期合作关系,开发团队能够提供专业的技术维护和支持,及时解决网站运行过程中出现的问题,并根据企业的发展进行功能升级和优化。
    模板开发:模板提供商一般会提供一定的技术支持,但可能无法像定制开发那样提供全面和个性化的服务。企业在使用过程中可能需要自行解决一些技术问题,或者依赖第三方技术服务提供商。
    企业自身技术能力
    定制开发:如果企业自身有技术团队,能够对定制开发的网站进行后期的维护和二次开发,那么选择定制开发可以更好地与企业内部的技术体系相融合,便于后续的技术管理和升级。
    模板开发:对于技术能力较弱的企业,模板开发更为合适,因为其操作相对简单,不需要太多的技术知识,企业可以将更多的精力放在电商业务的运营上。

  • 西安创建公司网站复杂吗?有什么要求

    西安创建公司网站复杂吗?有什么要求,在西安创建公司网站其实是非常的简单的,主要的方向有两个,一个就是自己动手创建企业网站,如果你实在不会,那就找懂的,找西安网站建设公司帮助你创建网站,当然了,如果你自己创建的话,可以全程都是免费的,只需要购买好域名,服务器,至于网站创建成什么样,就看你的能力了,如果你需要创建的网站复杂的话,建议你还是找西安网络公司帮助你去做是比较不错的选择,因为网站公司就是专门帮助客户做网站的,讲出你的需求,然后把关就行了,但是创建公司网站的话,最低的要求就是具备公司的相关资质,比如个体户公司,或者有限责任公司,只要你具备了这两样了,就可以创建公司网站,如果不具备,个人是不能创建公司网站的,接下来我们来听听西安本地网站制作公司是怎么看待这个问题的。

    第一西安创建公司网站的最低要求就是公司了,如果你有公司,就用你的公司去大的平台上购买域名,服务器,就可以直接创建了,然后接下来就是做好网站的域名,服务器的备案工作,用你的公司资质以及法人相关信息就可以了,但是你在注册网站网址和域名的时候,要注意了,一定要把域名注册到你的公司名下才能备案的,如果域名注册到个人名下,是不是备案的,现在的公司网站备案要求高了,不仅仅域名要注册到公司名下,就连同备案的账号,认证都是需要做到备案的公司名下才行进行网站备案的。

    第二创建公司的公司的时候,建议你结合一下你行业的其他的公司网站是如何制作的,然后参考一下,毕竟一些用户对网站如果不是很了解的情况下,就很容易在网站创建这块出问题,确定好网站的栏目,网站页面,以及网站的详情页面等等,准备好这些网页相互之间做好链接,然后就可以等着网站备案下来上线了。

    第三西安创建网站才仅仅是出发,接下来要对创建的网站要定期的维护,更新内容等等,做好这些方面的东西,你创建的网站才会被搜索引擎收录,另外公司网站维护,网站运营对于网站来说是非常的重要的,要想你的公司网站起到作用,在搜索引擎上被用户搜索到的话,建议你没事了更细一下网站的内容,然后注重一下搜索引擎端的一些反馈,这样很快你的网站就在搜索引擎上就有了排名了。

网站地图 Copyright © 2015 西安嘉瑞德网络科技有限公司 陕ICP备2023001199号