前端概念

前端是一切直接与用户交互的页面或软件(用户看得见、摸得着)的统称,比如各种网站网页、andorid 手机各种 App、苹果手机各种 app、微信小程序、网络游戏客户端等。所以,普通人使用计算机打交道最多的就是前端了。既然有这么多种前端交互形式,其背后当然涉及大量的前端开发技术了。

如果有人对你说自己是前端开发工程师,其实这是一个很笼统的说法,就好比说我是一名老师。如果你是懂行的,肯定会追问他是做哪方面前端开发呢?这就好比问一个老师,你是教语文还是数学或其他学科。

那么,按照前端技术可以将前端大致分为五大类,分别是前端 Web 网页开发、前端Android手机App开发、前端苹果手机App开发、以及微信小程序开、客户端网络游戏开发。当然,使用不同的前端开发技术,在公司也对应有不同的前端开发岗位。目前用得最多的前端开发技术主要是 Web 网页开发技术了,具体而言就是html、css、js、jquery、vue、react 等(还有很多技术没写)。记得 android 智能手机出来时,因为对手机 app 需求量很大,所以从事 android app 前端开发非常火爆,但是现在 app 已经开发得差不多了,所以 android 前端开发工程师需求量就没那么多了。

一个人要想精通前端所有开发技术,这几乎是不可能的,这就好比一个老师想要能够教授所有学科一样。能够精通一两门前端开发技术,其实都已经很牛逼了。

后端概念

后端是一切不直接与用户交互的软件或程序的统称(用户一般感受不到后端的存在)。那后端是干嘛的呢?后端的作用就是保存用户数据和处理前端发送过来的各种请求。说白了,后端是为前端提供服务的,所以后端一般称为后端服务器。如果前端是游戏客户端,那么后端就是游戏服务器端。如果前端是 Web 网页,那么后端就是 Web 服务器啦。如果前端是 App,那么后端就是 app 服务器哈。

和前端技术相比,后端涉及的开发技术更多,遇到的问题也更复杂。想一想就明白了,前端好比顾客,后端好比服务员,谁更累一些嘛。所以,从事后端开发相对而言,待遇也会高一些哈。如果你是想要踏入 IT 行业,首选就要面临选择学习前端还是后端,这个需要根据自己的兴趣还有条件掂量一下哈。

前面说过目前前端开发主要是针对 Web 页面开发,那么后端开发主要也就是针对 Web 服务器开发。而 Web 服务器开发技术哪家强?首先,你得知道有多少家技术嘛?比如 node.js、php、python 、asp、asp .net、ruby、 java 等。既然有这么多家呀,到底哪家强呢?只能告诉你,各有各的美。当然,我也得告诉你,目前大型企业级 Web 服务器开发使用最多的技术就是 Java,称为 JavaEE。这也是 Java 技术的主要应用方向,很多童鞋学习 Java 就是为了以后出来从事 JavaEE 企业级开发。当然,Java 技术还有一个重要应用方向,那就是大数据啦。

前后端分离概念

现在我们对前端和后端有一些基本概念了吧。简单说,前端就好比电影里的演员,后端就好比电影里的导演。在你眼前晃来晃去、风光无限的是演员就好比前端,而默默无闻的幕后英雄是导演就好比后端。

那前端和后端哪个重要呀?就好比电影,有了好的演员,如果没有好的导演和剧本,那也白搭;有了好的导演和剧本,如果遇到票房毒药演员,也是毁三观。所以,前端和后端都很重要,缺一不可。

那前后端分离是怎么回事?是不是演员和导演要分家。当然不是,前后端分离是一种演员和导演合作的方式罢了,可以让演员和导演更好的配合,共同完成一部电影。所以,前后端分离是一种架构模式,能够更好的开发企业级 Web 项目。

前后端分离已成为互联⽹项⽬开发的业界标准使⽤⽅式,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器 ,⻋载终端,安卓,IOS等)打下坚实的基础,这个步骤是系统架构从猿进化成⼈的必经之路。

前后端分离的核心思想是前端 html 页⾯通过 ajax 调⽤用后端的 restuful api 接⼝并使用 json 数据进行交互。

前后端分离带来开发人员分离

以前的 JavaWeb 项⽬⼤多数都是 Java程序员自编自导,也就是既搞前端,⼜搞后端。

随着时代的发展,渐渐的许多⼤大⼩小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,⼀个⼈如果什么都会,那么他毕竟什么都不不精。

⼤中型公司需要专业⼈才,⼩公司需要全才,但是对于个⼈职业发展来说,专才比全才会更有市场竞争力。

  1. 对于后端 Java 开发工程师:

应该把精⼒放在 Java 基础,设计模式,JVM 原理,spring、springmvc 以及 mybatis 原理及源码,linux,mysql 事务隔离与锁机制,mongodb,http/tcp,多线程,分布式架构,弹性计算架构,微服务架构,Java 性能优化,以及相关的项⽬管理等。

记住后端追求的是:三⾼(⾼并发,⾼可⽤,⾼性能),安全,存储,业务等。

  1. 对于前端 Web 开发工程师:

应该把精⼒放在 html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,webpack,less/sass,gulp,nodejs,Google V8 引擎,javascript 多线程,模块化,⾯向切⾯编程,设计模式,浏览器兼容性,性能优化等。

记住前端追求的是:页⾯表现,速度流畅,兼容性,⽤户交互体验等。

这就是所谓的术业有专攻,这样你的核⼼竞争力才会越来越强,正所谓你往生活中投⼊什么,生活就会反馈给你什么。并且前后端的发展都越来越⾼深,技术越来越复杂,你想什么都会,那你毕竟什么都不可能精。

通过公司将团队分成前后端团队,让两边的开发⼯程师更加专注各⾃的领域,独⽴治理,然后构建出⼀个全栈式的精益求精的团队。

前后端分离的优势

  1. 可以实现真正的前后端解耦。前端服务器使⽤ nginx。前端/WEB服务器放的是 css,js,图片等⼀系列静态资源,前端服务器负责控制⻚⾯引用、跳转、路由,前端⻚⾯异步调用后端的接口,后端/应⽤服务器使⽤ tomcat,加快整体响应速度。

  2. 发现 bug 可以快速定位是谁的问题,不会出现互相踢皮球的现象。⻚⾯逻辑,跳转错误,浏览器兼容性问题,脚本错误,⻚⾯样式等问题,全部由前端⼯程师来负责。接⼝数据出错,数据没有提交成功,应答超时等问题,全部由后端⼯程师来解决。双⽅互不⼲扰,前端与后端是相亲相爱的⼀家人

  3. **在高并发情况下可以同时水平扩展前后端服务器 **。⽐如淘宝的⼀一个⾸⻚就需要 2000+ 台前端服务器做集群来抗住日均多少亿+的⽇日均pv

  4. 减少后端服务器 的并发/负载压力。除了接⼝以外的其他所有 http 请求全部转移到前端 nginx 上,接口的请求调⽤tomcat,参考 nginx 反向代理tomcat。且除了了第一次页面请求外,浏览器会大量调用本地缓存

  5. 后端服务暂时超时或者宕机了,前端页⾯也会正常访问,只不过数据刷不出来⽽已

  6. 支持多段应用。如果你需要有微信相关的轻应用,那样你的接⼝完全可以共用,如果也有 app 相关的服务,那么只要通过⼀一些代码重构,也可以⼤量复用接口,提升效率

  7. ajax 异步加载。⻚⾯显示的东西再多也不怕

  8. nginx 支持⻚面热部署,不⽤重启服务器 ,前端升级更无缝

  9. 增加代码的维护性他易读性(前后端耦合在一起的代码读起来相当费劲)

  10. 提升开发效率,因为可以前后端并⾏开发

  11. 前端⼤量的组件代码得以复用,组件化使开发效率得以提升

前后端分离的劣势

  1. 要求前后端开发工程师配合更加密切。在开需求会议的时候,前后端工程师必须全部参加,并且需要制定好接⼝⽂档,后端⼯程师要写好测试⽤例

  2. 加重了前端团队的工作量,减轻了后端团队的⼯作量,这一点可能只对前端工程师来说是劣势吧:)

总结

  1. 前后端分离并⾮仅仅只是⼀种开发模式,⽽是⼀种架构模式(前后端分离架构)。千万不要以为只有在撸代码的时候把前端和后端分开就是前后端分离了了,需要区分前后端项⽬。前端项目与后端项目是两个项目,放在两个不同的服务器 ,需要独⽴部署,两个不同的工程,两个不同的代码库,不同的开发人员。

  2. 前后端工程师需要约定交互接⼝,实现并行开发,开发结束后需要进行独立部署,前端通过 ajax 来调⽤ http 请求调⽤后端的 restful api。前端只需要关注页面的样式与动态数据的解析和渲染,⽽后端专注于具体业务逻辑等。

关于前后端分离的概念,作用,优缺点相关推荐

  1. 1. nodejs基础 ,api,前后端分离-耦合概念,后端爬虫

    1. vs code 里面如何切换自定义终端? 2. 浏览器 vs node 异: node里面没有 BOM DOM node多了很多自带的api 同: 都是chrome v8 都支持js 都支持 E ...

  2. 【Gorho】springboot整合Shiro+jwt 前后端分离 超级详细的shiro+jwt鉴权过程

    shiro+jwt+springboot 说在前面 简介 项目环境(pom.xml) 项目结构(各种包和类) 鉴权流程 具体代码 配置Shiro 配置JWTUtils 定义JwtFilter 定义Jw ...

  3. 一次前后端分离的实践

    前后端分离该如何做? 这个问题,不同的技术人员,由于所处的岗位不一样,给出的答案都不一样. 前后端分离的问题,不仅仅是技术上的选型问题,还涉及到整个团队在认知.职责.流程上面重新定义的问题,这也是为什 ...

  4. SSM框架中的前后端分离

    认识前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端. ...

  5. 视频教程-前后端分离与性能优化-JavaScript

    前后端分离与性能优化 中国实战派HTML5培训第一人,微软技术讲师,曾任百合网技术总监,博看文思HTML5总监.陶国荣长期致力于HTML5.JavaScript.CSS3.jQuery以及HTML5跨 ...

  6. 理解:什么是前后端分离开发

    在前端或者后端的学习过程中,我们一定或多或少听说过前后端分离开发,但是相信不少人对于前后端分离这个概念仍然不是很清楚,因此本文就对什么是前后端分离开发做一个介绍. 一.什么是前端和后端 在理解前后端分 ...

  7. php分前后端吗,前后端分离和不分离的区别是什么

    区别:前后端不分离中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,即后端需要控制前端的展示,前端与后端的耦合度很高.前后端分离中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制 ...

  8. 前后端分离开发的理解以及和前后端不分离的区别

    一.前后端分离的概念 前后端分离 前后端分离是一种架构模式,说通俗点就是后端项目里面看不到页面(JSP | HTML),后端给前端提供接口,前端调用后端提供的 REST 风格接口就行,前端专注写页面( ...

  9. 【最新】SSM框架中的前后端分离

    文章目录 1.认识前后端分离 2.分离的四个好处 3.利用Swagger UI来规范书写API文档 1.认识前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中 ...

最新文章

  1. python读取excel部分值存入另一个excel-python3读取excel文件只提取某些行某些列的值方法...
  2. 新风系统风速推荐表_家用新风常用管道规格和对应风量推荐值
  3. Java中List的排序
  4. 记一次在西部数码上买域名的悲催经历
  5. 矩池云上安装及使用Milvus教程
  6. 【ECSHOP插件】ECSHOP商品相册批量上传插件
  7. usb网卡android驱动win7+64,万能USB驱动 for win7 64bit v2017.11.15.955
  8. petalinux设计流程
  9. 自定义CardView
  10. iOS 屏幕旋转的实践解析
  11. 微信小程序canvas简单使用
  12. 色域空间 sRGB Adobe RGB Pro Photo RGB
  13. 高鸿业微观经济学第8版笔记和课后答案
  14. 再谈异常处理try-catch-finally
  15. h5--块级元素与行内元素
  16. linux qt地图开发教程,基于QT的电子地图的设计与实现
  17. python读取两路ip摄像头实时直播监控
  18. 吴恩达斯坦福CS230第一名:图像超级补全,效果惊艳(附代码)
  19. numpy高级索引(二维矩阵的索引是二维矩阵)
  20. 5个Linux常用的系统检测工具

热门文章

  1. python基金预测分析_基金定投选星期几更划算?[python统计分析]
  2. 利用freemarker模板导出复杂excel可带图片
  3. python中列表的声明,查询,修改,删除 del 和添加 append,insert
  4. 虚拟ip+keeplalived+nginx 负载实现
  5. 英语不好能学会python吗_英语不好可以学习python编程吗?老男孩python入门
  6. SQL——try catch 定义解析 处理sql错误处理
  7. 解决maven下载jar包失败的几种方法
  8. C#,电话数字键盘问题(Mobile Numeric Keypad problem)的算法与源代码
  9. php小程序 100行左右,微信小程序 左右分类滚动列表
  10. 雅虎财经api_雅虎! 发布音乐API