① 前端工程师跟后台工程师有什么区别
前端工程师和后台工程师主要区别有:
1、工作内容
前端工程师主要负责处理用户点击页面上的请求,将请求转给后台,然后将后台传过来的数据组装并展示到页面上,将数据和设计出的页面元素结合展示给用户。
后台工程师主要负责接收前台传输的请求,从数据库中查找数据,更多的负责和数据库的交互以及业务逻辑处理。
2、所需技术
前端工程师必须掌握基本的Web前端开发技术,其中包括:CSS、HTML、DOM、javascript、Ajax等,在掌握这些技术的同时,还要清楚地了解它们在不同浏览器上的兼容情况、渲染原理和存在的Bug。
后台工程师需要掌握后台的数据库、开发语言如java、jdbc技术、缓存数据库redis、搜索引擎等。
3、工具软件
前端工程师需要用到的工具软件主要是书写html、css、js语言的工具,如webstorm,还需要切图工具如ps。
后台工程师需要用到的工具软件主要有如java语言的idea,链接数据库的sqlyog等。
② web前端与后端有什么区别
1、前端开发现在一般指的就是web前端开发工程师,其负责是网站前端页面也就是网页的页面开发,简单的说网站前端负责是东西是网站用户可见的东西,如网页上的特效、网页的布局、图片、视频等内容。
网站前端工程师的工作内容就是将美工设计的效果图的设计成浏览器可以运行的网页,并和后端开发工程师配合做网页的数据显示和交互。
2、后端开发一般也叫做后台,其负责是网站后台逻辑的设计和实现还有用户及网站的数据的保存和读取。
比如一般网站都是有用户注册和登录的,用户的注册的信息通过前端发送给后端,后端将其保存在数据库中,用户登录网站的时候,后端需要通过用户输入的用户名和密码是否与数据库中的一致来判断用户是否有权限登录,这是后台开发中的一个最简单的功能。
③ 前端开发和后端开发有什么区别
前端开发和后端开发都是干什么的?有哪些区别?通俗地讲,前端干的工作是用户可以直接看得见的,而后端开发的工作主要在服务端,用户不太能直接看到。虽然前端开发和后端开发的工作有巨大的区别,但是他们的工作都是相辅相成的,都是为了更好的用户体验。
1、前端开发:
网站的“前端”是与用户直接交互的部分,包括你在浏览网页时接触的所有视觉内容--从字体到颜色,以及下拉菜单和侧边栏。这些视觉内容,都是由浏览器解析、处理、渲染相关HTML、CSS、Java 文件后呈现而来。前端开发,就是要创造上面提到的网站面向用户的部分背后的代码,并通过建立框架,构建沉浸性的用户体验。为了实现这个目标,开发需要熟练运用下列语言、框架、工具库。
2、后端开发:
为了让服务器、应用、数据库能够彼此交互,后端工程师需要具有用于应用构建的服务器端语言,数据相关工具,PHP框架,版本控制工具,还要熟练使用 Linux 作为开发和部署环境。后端开发者使用这些工具编写干净、可移植、具有良好文档支持的代码来创建或更新 Web 应用。但在写代码之前,他们需要与客户沟通,了解其实际需求并转化为技术目标,制定最有效且精简的方案来进行实现。
3、前端开发和后端开发的区别:
(1)展示的方式不同
前端指的是用户可见的界面,网站前端页面也就是网页的页面开发,比如网页上的特效、布局、图片、视频,音频等内容。前端的工作内容就是将美工设计的效果图的设计成浏览器可以运行的网页,并配合后端做网页的数据显示和交互等可视方面的工作内容。
后端是指用户看不见的东西,通常是与前端工程师进行数据交互及网站数据的保存和读取,相对来说后端涉及到的逻辑代码比前端要多的多,后端考虑的是底层业务逻辑的实现,平台的稳定性与性能等。
自己是从事了五年的前端工程师,自己整理了一份2019最全面前端学习资料,从最基础的HTML+CSS+JS到HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴,有想学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴,需要可以私聊我哟,这是我的前端开发qun,【六零三】【九八五】【九九三】,对于学习web前端有任何问题(学习方法,学习效率,如何就业)都可以问我,最后可以点一波关注哟!
(2)所用的技术不同
前端开发用到的技术包括但不限于html5、css3、javascript、jquery、Bootstrap、Node.js 、Webpack,AngularJs,ReactJs,VueJs等技术。
后端开发 以java为例 主要用到的 是包括但不限于Struts spring springmvc Hibernate Http协议 Servlet Tomcat服务器等技术。
比如做一个登陆页面,用户在前端页面上输入了账号密码,然后用鼠标点击了登陆按钮,这时候前端会将账号密码通过请求接口发送给后端做处理,后端收到数据会先检查此账号是否存在,如果不存在,则返回给前端一条类似于这样的信息:“你输入的账号不存在,请重新输入”,用户再次重新输入账号,此时后端查询账户存在,密码也正确,则后端返回登陆成功的信息给前端。现代计算机领域的难题如大规模负载,海量数据处理,实时计算也是后端的,前端集中在表示层。
④ 程序员分前端与后端,那么后端程序员都做些什么看完就知道了
我刚开始做Web开发的时候,根本没有前端,后端之说。
原因很简单,那个时候服务器端的代码就是一切: 接受浏览器的请求,实现业务逻辑,访问数据库,用JSP生成HTML,然后发送给浏览器。
即使后来Javascript在浏览器中添加了一些AJAX的效果,那也是锦上添花,绝对不敢造次。因为页面的HTML主要还是用所谓“ 套模板 ”的方式生成:美工生成HTML模板,程序员用JSP,Veloctiy,FreeMaker等技术把动态的内容添加上去,仅此而已。
那个时候最流行的图是这个样子:
在最初的J2EE体系中,这个 表示层 可不仅仅是浏览器中运行的页面,还包括Java写的桌面端,只是Java在桌面端太不争气, 没有发展起来。
每个程序员都是所谓 “全栈”工程师 ,不仅要搞定HTML, JavaScript, CSS,还要实现业务逻辑,编写访问数据库的代码。等到部署的时候,就把所有的代码打成一个WAR包,往Tomcat指定的目录一扔,测试一下没问题,收工回家!
不差钱的公司会把程序部署到Weblogic,Websphere这样的应用服务器中,还会用上高大上的EJB。
虽然看起来生活“简单”又“惬意”,但实际上也需要实现那些多变的、不讲逻辑的业务需求,苦逼的本质并没有改变。
随着大家对浏览器页面的 视觉和交互 要求越来越高,“套模板”的方式渐渐无法满足要求,这个所谓的表示层慢慢地迁移到浏览器当中去了,一大批像Angular, ReactJS之类的框架崛起,前后端分离了!
后端的工程师只负责提供接口和数据,专注于业务逻辑的实现,前端取到数据后在浏览器中展示,各司其职。
像Java这样的语言很适合去实现复杂的业务逻辑,尤其是一些MIS系统,行业软件如税务、电力、烟草、金融,通信等等。 所以剥离表示层,只做后端挺合适的。
但是如果仅仅是实现业务逻辑,那后端也不会需要这么多技术了,搞定SSH/SSM就行了。
互联网,尤其是移动互联网开始兴起以后,海量的用户呼啸而来,一个单机部署的小小War包肯定是撑不住了,必须得做分布式。
原来的单个Tomcat得变成Tomcat的 集群 ,前边弄个Web服务器做请求的 负载均衡, 不仅如此,还得考虑状态问题,session的一致性。
(注:参见文章《小白科普:分布式和集群》)
业务越来越复杂,我们不得不把某些业务放到一个机器(或集群)上,把另外一部分业务放到另外一个机器(或集群)上,虽然系统的计算能力,处理能力大大增强,但是这些系统之间的通信就变成了头疼的问题, 消息队列 (MQ), RPC框架 (如Dubbo)应运而生,为了提高通信效率,各种 序列化的工具 (如Protobuf)也争先空后地问世。
单个数据库也撑不住了,那就做数据库的 读写分离 ,如果还不行,就做 分库和分表 ,把原有的数据库垂直地切一切,或者水平地切一切, 但不管怎么切,都会让应用程序的访问非常麻烦,因为数据要跨库做Join/排序,还需要事务,为了解决这个问题,又有各种各样“ 数据访问中间件 ”的工具和产品诞生。
为了最大程度地提高性能,缓存肯定少不了,可以在本机做缓存(如Ehcache),也可以做 分布式缓存 (如Redis),如何搞 数据分片 ,数据迁移,失效转移,这又是一个超级大的主题了。
互联网用户喜欢上传图片和文件,还得搞一个 分布式的文件系统 (如FastDFS),要求高可用,高可靠。
数据量大了,搜索的需求就自然而然地浮出水面,你得弄一个支持全文索引的 搜索引擎 (如Elasticsearch ,Solr)出来。
林子大了,什么鸟都有,必须得考虑 安全 ,数据的加密/解密,签名、证书,防止SQL注入,XSS/CSRF等各种攻击。
前面提到了这么多的系统,还都是分布式的,每次上线,运维的同学说:把这么多系统协调好,把老子都累死了。
得把持续集成做好,能自动化地部署,自动化测试(其实前端也是如此),后来出现了一个革命化的技术 docker , 能够让开发、测试、生成环境保持一致,系统原来只是在环境(如Ngnix, JVM,Tomcat,MySQL等)上部署代码,现在把代码和环境一并打包, 运维的工作一下子就简化了。
公司自己购买服务器比较贵,维护也很麻烦,又难于弹性地增长,那就搞点虚拟的服务器吧,硬盘、内存都可以动态扩展(反正是虚拟的), 访问量大的时候多用点,没啥访问量了就释放一点,按需分配,很方便,这就是 云计算 的一个场景。
随着时间的推移,各个公司和系统收集的数据越来越多,都堆成一座大山了,难道就放在那里白白地浪费硬盘空间吗?
有人就惊奇地发现,咦,我们利用这些数据搞点事情啊, 比如把数据好好分析一下,预测一下这个用户的购买/阅读/浏览习惯,给他推荐一点东西嘛。
可是这么多数据,用传统的方式计算好几天甚至好几个月才能出个结果,到时候黄花菜都凉了,所以也得利用分布式的技术,想办法把计算分到各个计算机去,然后再把计算结果收回来, 时势造英雄, Hadoop 及其生态系统就应运而生了。
之前听说过一个大前端的概念,把移动端和网页端都归结为“前端”,我这里造个词“大后端”,把那些用户直接接触不到的、发生在服务器端的都归结进来。
现在无论是前端还是后端,技术领域多如牛毛,都严重地细分了,所以 我认为真正的全栈工程师根本不存在,因为一个人精力有限,不可能搞定这么多技术领域,太难了 。
培训机构所说的“全栈”,我认为就是前后端还在拉拉扯扯,藕断丝连,没有彻底分离的时候的“全栈”工程师。
那么问题来了, 后端这么多东西,我该怎么学?
之前写过一篇文章叫做《上天还是入地》,说了学习的广度和深度,在这里也是相通的。
往深度挖掘,可以成为某个技术领域的专家,如搜索方面的专家、安全方面的专家,分布式文件的专家等等,不管是哪个领域,重点都不是学会使用某个工具和框架, 而是保证你可以自己的知识和技术去搞定这个领域的顶尖问题。
往广度发展,各个技术领域都要了解,对于某种需求,能够选取合适的软件和技术架构来实现它,把需求转化成合适的技术组件,让这些组件以合适的方式连接、部署、运行,这也需要持续地学习和不断的经验积累。
最后,以一张漫画来结束吧!
C/C++高级工程师学习路线图:
⑤ Web 前端和后端工程师的具体职责分别是怎样的
一、Web前端主要工作:x0dx0aWeb前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/Flash等各种Web技术进行客户端产品的开发。完成客户端程序(也就是浏览器端)的开发,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验。x0dx0a二、后端工程师x0dx0a会写Java、php、c++等系列的一种语言代码,会写SQL语句,能做简单的数据库设计,会x0dx0aSpring和iBatis,懂一些设计模式等。x0dx0a主要做的就是网站或者软件,手机app后台的交互和互动,以及数据库体系;让其展现在前台;x0dx0a三、二者区别x0dx0aweb前段工程师主要就是做外观开发,主要是通过特效展现给用户非常炫酷的形象,让用户有更好的视觉冲击;x0dx0a后端工程师主要是做功能,做交互和数据库,让用户不仅体验到了视觉和炫酷的风格,而且还要能够起到实用的功能。x0dx0a一个是台前人物,一个是幕后人物。
⑥ 前端与后端那个工资更高
从各个大厂可以比较清楚的了解到,前端和后端工程师在技术水平相当的情况下,薪资水平也并没有特别大的差别。但是随着工作时间的年限增加,后端工程师一般的薪资水平是要比前端工程师要高的。前端和后端的差别:
前端主要的工作内容是用户能够看见的页面相关的,比如说页面上的特效、视频、等等展示出来的内容,并配合后端做网站的数据等其它工作。后端则是主要是数据交互和网站数据。底层业务逻辑的实现、平台的性能等工作。所涉及的工作方面和技术也是完全不相同的。
所以说如果觉得自己逻辑能力不是特别强的话,前端也是一个比较好的选择,前期的薪资水平并不定,并且现在对前端页面的需求也是越来越多,各种小程序、精美的网页页面需求都是对前端工程师的考验。
⑦ 前端跟后端哪个更好就业
前端和后端都是一样的,就业情况好不好,取决于你能力所达到的层次。
不论是前端还是后端,最差的程序员都是不缺的,越高级的程序员就越缺。能力才是决定“前景”最重要的因素。建议根据自己的兴趣来选择比较好,这对你长久的发展是很有帮助的。
只要它是一个Internet客户端接口,就需要前端来完成生产。前端开发的编程量很小,但是需要一些编程。开始很容易,但需要一个深入学习的过程。与前端开发相比,后端开发人员在业务逻辑上有更高的要求,因此如果之前没有相关基础,则相对较难选择前端开发。