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

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

发布时间: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

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

  • 西安网站定制开发项目的成败主要取决于那些方面呢

    西安网站定制开发项目的成败主要取决于那些方面呢,现在移动互联网发展的速度越来越快了,现在好多人对网站的需求以及要求正在下降,面对这样的形式和趋势,作为网站制作公司存空间和发展空间到底有多大呢,这个主要取决于你在这个领域的专业度以及积累的客户有多少了,有的网站制作公司做的时间并不是很长,不管是客户的积累方面还是技术层面的掌控力,都是比较弱的,在这样的大背景下,对于网站项目的定制开发来说,就是有一些后劲不足的情况的发生,面对这样的情况,在加上市场竞争越来越激烈的情况下,用户如何更好的把控网站定制开发项目的整体落地呢,这个主要取决于三大方面,

    第一作为用户来讲,既然想打造定制开发的平台项目,肯定是对于这个项目经过了无数次的讨论和验证之后,得出的一个结论,所以用户对于网站定制开发的项目的需求,功能,以及后期的要求都是非常的明确才行,这有这样才能保证项目的顺利推进和进行的,这也是用户和客户对于项目的把控和了解需要做到的。

    第二就是西安网站定制开发项目说明了这个项目的重要性,以及这个项目的独特之处,不然也不会有公司花费这么大的代价对该项目进行定制开发的,所以,作为网站开发公司而言,一定要做到及时的沟通和调整,只有做到这些的时候,我们才能确保项目的相关功能以及流程的完整玩下进行,只有这样才能确保项目的顺利落地,这也是当下网站定制开发公司必须要做到的一点,毕竟网站项目的开发始终是由网站开发公司来做,里面的流程和环节,以及功能都是需要进行系统性的沟通讨论才行。

    第三就是网站项目的后期运维和验收环节了,这些也是对于网站起到了直观重要的作用和价值的,毕竟网站质量的好坏,是由你找的网站制作公司决定的,整个项目开发的质量的好坏,也是由你找的网站公司的能力决定的,说到这里,我们也就清楚了,用户的需求决定了后期的网站的功能,用户对网站验收的整个过程是由前期的西安网站开发需求,要求,功能组成的验收的综合体,这一点是必须要明白的一点。

  • 怎么定制设计自己的公司网站
    定制设计自己的公司网站可以按照以下步骤进行:
    前期规划
    明确目标与定位
    确定网站的主要目标,例如是用于展示公司形象、推广产品与服务、进行在线销售还是提供客户支持等。同时,根据公司的业务性质、目标受众和市场定位,确定网站的风格和基调。
    市场调研
    研究竞争对手的网站,了解他们的优势和不足,寻找差异化的设计点。此外,关注行业内的最新设计趋势和技术应用,为网站设计提供灵感。
    内容策划
    梳理网站需要展示的内容,包括公司简介、产品或服务介绍、新闻资讯、案例展示、联系方式等。确保内容准确、清晰、有吸引力,并符合网站的整体定位。
    选择开发方式
    自主开发
    如果公司拥有专业的技术团队,自主开发可以实现高度的定制化。团队可以根据公司的特定需求和设计理念,从零开始构建网站。但这种方式需要投入大量的时间、人力和资金,并且对技术能力要求较高。
    外包给专业公司
    寻找有经验的网站开发公司,与他们沟通需求和设计想法。专业公司通常拥有丰富的开发经验和专业的设计团队,能够高效地完成网站的定制设计。在选择外包公司时,要查看他们的案例、客户评价和技术实力,确保能够满足公司的要求。
    使用自助建站平台
    一些自助建站平台提供了丰富的模板和定制功能,无需编写代码即可快速搭建网站。这种方式成本较低、操作简单,但定制化程度相对有限。适合对网站功能和设计要求不高、预算有限的小型公司。
    设计阶段
    原型设计
    创建网站的原型,展示网站的页面布局、导航结构和交互流程。原型可以是简单的线框图,也可以是可交互的模型。通过原型设计,可以让团队成员和相关利益者直观地了解网站的架构和功能,提前发现问题并进行调整。
    UI/UX 设计
    界面设计(UI):根据网站的定位和风格,设计网站的界面元素,包括颜色搭配、字体选择、按钮样式、图片处理等。确保界面美观、易用,符合用户的视觉习惯。
    用户体验设计(UX):关注用户在使用网站过程中的感受和需求,优化网站的交互流程和操作逻辑。例如,简化表单填写、提高页面加载速度、提供清晰的导航指引等,以提升用户满意度和转化率。
    视觉设计
    根据原型和 UI/UX 设计方案,进行网站的视觉设计,制作高分辨率的页面效果图。在设计过程中,要注意保持页面的一致性和协调性,同时突出公司的品牌特色。
    开发与测试
    前端开发
    使用 HTML、CSS、JavaScript 等技术,将设计稿转化为可在浏览器中显示的网页。前端开发要确保页面的兼容性、响应式设计和交互效果,提供良好的用户体验。
    后端开发
    根据网站的功能需求,选择合适的后端技术和框架,如 Python(Django、Flask)、Java(Spring Boot)、Node.js 等,开发网站的服务器端程序。后端开发要处理数据存储、业务逻辑、用户认证等功能。
    数据库管理
    设计和建立数据库,用于存储网站的相关数据,如用户信息、产品信息、订单信息等。选择合适的数据库管理系统,如 MySQL、MongoDB 等,并确保数据的安全性和可靠性。
    测试
    在网站开发完成后,进行全面的测试,包括功能测试、性能测试、安全测试、兼容性测试等。发现并修复潜在的问题,确保网站在各种环境下都能正常运行。
    上线与维护
    上线部署
    将开发和测试完成的网站部署到服务器上,并进行域名解析和备案等操作,使网站能够在互联网上正常访问。
    网站维护
    定期对网站进行维护和更新,包括内容更新、安全补丁安装、性能优化等。同时,收集用户反馈,不断改进网站的功能和用户体验。
  • 西安公司网站建设的优势和弊端详解

    西安公司网站建设的优势和弊端详解,一说到公司网站建设的优势和弊端这个问题,其实只要是实物都是具有两面性的,毕竟作为公司网站而言的话,不仅仅是用来宣传和推广公司的产品这么简单的,如果是公司都通过制作网站来宣传产品和服务的话,那么估计会有好多的公司去制作网站了,所以,没有你想象的这么简单的,通过公司网站来宣传推广公司的产品就跟我们做传统的市场是一个原理的,前期肯定是要对市场的培育和开发,这个阶段也是投入最大的一个阶段,也是对好多公司和商家的一种考验,于是好多公司多是在这个阶段就放弃了公司网站的推广和宣传,让他们去制作一个公司网站来说,是非常简单的,并且一个公司网站前期也是投入不了多钱的,而对于公司网站后期的运营和推广的话,这对商家的要求就高了,公司网站后期的推广和运营是一个持续不断投入的过程,需要常年累月的去投入,然后等网站培育到一定的程度了,这个公司网站也就慢慢的起作用了,就是这么个过程。

    说到这里相比你也明白了,西安公司网站制作的费用是不会太高,但是后期的网站运营维护这部分的投入一点都不低,这对于一般的公司来说就是一种挑战了,也不会有这么多的公司如花费这部分费用培育自己公司的网站了,这也是公司网站制作完毕最大的一个问题,如果对制作好的网站不进行推广宣传的话,那这个网站起到的作用几乎是非常的小的,从而,这样的公司网站就失去了它存在的价值和意义了。这也是制作公司网站最大的弊端了,公司网站好建设,但是到了网站后期的运营推广阶段这也是提升网站潜在价值的一个过程,对商家的投入要求是比较高的,但是一旦公司网站投资起来了,整个网站的价值也就慢慢的体现出来了,商家就可以通过公司的网站进行自己公司的产品和服务的宣传和推广了。这也是为什么好多公司制作公司网站,通过公司网站进行产品和服务的宣传的主要作用了。

  • 西安网页制作公司做网站设计是怎么一个过程呢?
    西安网页制作公司做网站设计是怎么一个过程呢?,其实网站制作公司在做网站之前,与客户的需求沟通肯定是少不了的,然后网站制作公司需要根据用户的需求以及要求对网站界面进行系统化的设计,当然了在这个设计的过程中,网站制作公司肯定是根据前期的需求沟通会出网站的圆形设计图的,这是一定的,毕竟网站的原型设计图也就代表了整个网站的布局一个网站内容的呈现方式,这个一点是非常的重要的,不同的公司对网站上的内容要求是不一样的,这个时候,就需要根据用户的需求将网站的内容制作成网站的原型图,让客户去过目查看,等网站的原型图出来之后,客户就能看到自己的网站大概是一个什么样子了,然后网站制作公司就可以做到按照网站原设计设计图做进一步的深化设计了,这是网站之前前期必须要经历的一个阶段,这个阶段也就告诉了网站设计师的设计方向,以及网站上要体现和传递出那些内容了,这一点是非常重要的,做完这些前期的准备工作之后,网站设计师就可以按照实现规划好的原型图,对网站进行设计了,网站设计方案也并不是一蹴而就的,是通过无数次的设计调整,完善,美化出来的结果,这也是为什么高端的定制网站是需要经过无数次的调整和完善的主要原因了。
    其实网站制作公司最喜欢的就是定制开发网站,但是作为定制开发网站要求跟模版网站有着直接的差异的,网站设计的独特性,以及专业性的要求会更高的,这就需要网站设计师在网站设计层面多多下功夫了,这也是高端定制网站必然要经历的一个阶段,作为现在的定制开发网站的难点就是网站的设计这块,如果这块的要求达不到的话,整个网站设计制作出来是没有灵魂的,就需要客户与网站设计制作公司多多的沟通,敲定网站上的内容,从事体现出定制开发的网站与普通的网站之前的区别了,这也是网页制作公司在设计网站的时候,必然要经历的一个环节和过程。
  • 什么是网站,网站都有哪些分类呢

    什么是网站,网站都有哪些分类呢,网站说白了就是一个通过域名能够打开和访问的网页链接而已,而这个网站上的所有页面都是由一个一个的网站组成的,不同的网站之间的网页链接都是有很大的差异的,而作为网站的话要想顺利上线运营的话,肯定是少不了网页,域名,服务器等做这些组成部分的,毕竟网站都是依赖于这些东西而存在的,接下来我们来听听西安网站制作公司的技术是怎么看待这个问题的。网站现在现在来定定义呢,现在主要是有两种,一种是p c端的网站,一种是短视频类的网站。这两这两种网网站呢最开始的时候,然后是啊主要是以p c端的网站为主。也就是当当时网站的构成是由域名空间,包括程序。现在就是短视频的网站呢,也叫也叫短视频的小程序。它这里面组成是由空间跟程序代码共同组成的。


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

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

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

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

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

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

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