web前端分为网页设计师、网页美工、web前端开发工程师
首先网页设计师是对网页的架构、色彩以及网站的整体页面代码负责
网页美工只针对UI这块儿的东西,比如网站是否做的漂亮
web前端开发工程师是负责交互设计的,需要和程序猿进行交互设计的配合。
web前端需要掌握的有脚本技术javascriptDIV+CSS现下最流行的页面搭建技术,ajax和jquery以及简单的后端程序等。后端的话可供开发的语言有asp、php、jsp、NET这些后端开发语言的话搭建环境都不一样,具体如果你想学的话看是想从事前端部分还是后端程序部分。后端开发如果有一定的条件的话可以转为软件开发。不过要有一定的语言基础,类似java语言。C等。关键是看你的兴趣爱好。。
这个到后期不会区分这么细,做前端到后期也会懂一些后端的技术,反之,后端也是。
在我们实际的开发过程中,我们当前这样定位前端、后端开发人员。
1)前端开发人员:精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发。
2)后端开发人员:会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等。
现在来看,我们对前后端的要求还是蛮低的,尤其是后端,新员工经过培训之后都是可以参与到后端开发的,没有太高的技术门槛,唯一需要做的就是先变成熟练工种,这个阶段没有涉及到设计模式、架构、效率等一些列问题。
还是先google一下,看看网上对Web前端开发、Web后端开发分别是什么?
Web前端:顾名思义是来做Web的前端的。我们这里所说的前端泛指Web前端,也就是在Web应用中用户可以看得见碰得着的东西。包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。
我们再来看看大公司对前后端人员招聘的要求,通过这个角度看看前端、后端的技术要求:
Web前端:
1)精通HTML,能够书写语义合理,结构清晰,易维护的HTML结构。
2)精通CSS,能够还原视觉设计,并兼容业界承认的主流浏览器。
3)熟悉JavaScript,了解ECMAScript基础内容,掌握1~2种js框架,如JQuery
4)对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案。
5)对性能有一定的要求,了解yahoo的性能优化建议,并可以在项目中有效实施。
6)
Web后端:
1)精通jsp,servlet,javabean,JMS,EJB,Jdbc,Flex开发,或者对相关的工具、类库以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解
2)练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力
3)熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑
4)精通面向对象分析和设计技术,包括设计模式、UML建模等
5)熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力
从几个公司的招聘要求可以看到,做Web开发,对前端和后端的要求是各自所不同的。而我们目前的实际情况,也和这个差不多,但是,我们无论在知识的掌握程度上,还是知识掌握的宽度上,都是不够的。
首先,我们在前端缺乏积累,没有沉淀,专业的前端技术的积累是从去年才开始的,同时,在前端也缺乏支撑与高手,所以,走起来比较困难。同时,前端人员培养的较少,一个原因是对前端了解太少,另外一个原因就是对前端与后端的工作比例估计不足。所幸,我们在这一年也在前端有了很快的进步,培养了几个优秀的开发人员,有意识的解决了前端的用户体验,这都是可喜的。今年,需要更进一步,专业化。
其次,我们在后端发展的不够宽,后端的知识体系已经比较完善,但是,很多应用点都没有涉及到。同时,对现有技术框架的理解都不够深入,太浮躁。我们目前的设计团队在解决互联网高并发、大数据量的存取上经验与能力都还不足,需要正视这些问题。后端技术的发展需要更加的精进,以解决实际存在的问题为主。
服务端和客户端可以归位一类,都是指的计算机及相关程序,是无生命的。而前端和后端可以归为一类,他们指的是开发人员,有生命的。其中开发服务端的人叫做后端,开发客户端程序的人叫前端。
前端人员所做的基本都是你在客户端(通常指浏览器)看的到的UI层面的,如网页的效果,动画,交互等等。
但是浏览器上的网页还有很多数据需要展现,这时候就需要后端处理了,后端人员编写的程序运行在服务器端,然后查询服务器的数据,返回给客户端,客户端拿到数据后,前端开发的程序就可以把获取到的数据给展示出来了。
这四端是谁也离不开谁的,总结一句话就是:前端开发的客户端向后端开发的服务端请求数据,客户端拿到数据通过前端程序进行渲染。
web后台开发需要学习的知识有HTML、CSS、JavaScript、DOM、Web服务器、服务器脚本语言、数据库及SQL语言以及web框架。
web后台开发学习步骤:
1、学习HTML和CSS。HTML(超文本标记语言)是网页的核心,学好HTML是成为Web开发人员的基本条件。学习CSS了,它可以帮你把网页做得更美观。利用HTML和CSS模拟一些你所见过的网站的排版和布局(色彩,,文字样式等等)。
2、学习javascript,了解DOM。JavaScript是一种能让你的网页更加生动活泼的程序语言。学习JavaScript的基本语法,学会用javascript *** 作网页中dom元素。接着学习使用一些javascript库,比如jquery是大部分WEB开发人员都喜欢用的,通过Jquery可以有效的提高JavaScript的开发效率。
3、了解Web服务器。学习一点Unix和Linux的基本知识,因为大部分Web服务器都运行在Unix和Linux平台上。
4、学好一门服务器端脚本语言。目前流行的服务器脚本语言有:php、aspnet、jsp、ruby、python等。可以选一个自己喜欢的进行学习。
5、学习数据库及SQL语法。要构建动态页面通常会使用到数据库,常用的数据库有SQLServer、Oracle、MySQL等,它们都会遵循标准的SQL原则。通常aspnet程序使用SqlServer数据库,PHP、java使用Oracle、MySQL数据库。
6、学习使用Web框架。当你掌握了HTML,CSS,JavaScript和服务器端脚本语言后,就应该找一个Web框架加快你的Web开发速度,使用框架可以节约你很多时间。
我刚开始做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等)上部署代码,现在把代码和环境一并打包, 运维的工作一下子就简化了。
公司自己购买服务器比较贵,维护也很麻烦,又难于d性地增长,那就搞点虚拟的服务器吧,硬盘、内存都可以动态扩展(反正是虚拟的), 访问量大的时候多用点,没啥访问量了就释放一点,按需分配,很方便,这就是 云计算 的一个场景。
随着时间的推移,各个公司和系统收集的数据越来越多,都堆成一座大山了,难道就放在那里白白地浪费硬盘空间吗?
有人就惊奇地发现,咦,我们利用这些数据搞点事情啊, 比如把数据好好分析一下,预测一下这个用户的购买/阅读/浏览习惯,给他推荐一点东西嘛。
可是这么多数据,用传统的方式计算好几天甚至好几个月才能出个结果,到时候黄花菜都凉了,所以也得利用分布式的技术,想办法把计算分到各个计算机去,然后再把计算结果收回来, 时势造英雄, Hadoop 及其生态系统就应运而生了。
之前听说过一个大前端的概念,把移动端和网页端都归结为“前端”,我这里造个词“大后端”,把那些用户直接接触不到的、发生在服务器端的都归结进来。
现在无论是前端还是后端,技术领域多如牛毛,都严重地细分了,所以 我认为真正的全栈工程师根本不存在,因为一个人精力有限,不可能搞定这么多技术领域,太难了 。
培训机构所说的“全栈”,我认为就是前后端还在拉拉扯扯,藕断丝连,没有彻底分离的时候的“全栈”工程师。
那么问题来了, 后端这么多东西,我该怎么学?
之前写过一篇文章叫做《上天还是入地》,说了学习的广度和深度,在这里也是相通的。
往深度挖掘,可以成为某个技术领域的专家,如搜索方面的专家、安全方面的专家,分布式文件的专家等等,不管是哪个领域,重点都不是学会使用某个工具和框架, 而是保证你可以自己的知识和技术去搞定这个领域的顶尖问题。
往广度发展,各个技术领域都要了解,对于某种需求,能够选取合适的软件和技术架构来实现它,把需求转化成合适的技术组件,让这些组件以合适的方式连接、部署、运行,这也需要持续地学习和不断的经验积累。
最后,以一张漫画来结束吧!
C/C++高级工程师学习路线图:
1、前端开发:
网站的“前端”是与用户直接交互的部分,包括你在浏览网页时接触的所有视觉内容_从字体到颜色,以及下拉菜单和侧边栏。这些视觉内容,都是由浏览器解析、处理、渲染相关HTML、CSS、Java文件后呈现而来。前端开发,就是要创造上面提到的网站面向用户的部分背后的代码,并通过建立框架,构建沉浸性的用户体验。为了实现这个目标,开发需要熟练运用下列语言、框架、工具库。
2、后端开发:
为了让服务器、应用、数据库能够彼此交互,后端工程师需要具有用于应用构建的服务器端语言,数据相关工具,PHP框架,版本控制工具,还要熟练使用Linux作为开发和部署环境。后端开发者使用这些工具编写干净、可移植、具有良好文档支持的代码来创建或更新Web应用。但在写代码之前,他们需要与客户沟通,了解其实际需求并转化为技术目标,制定最有效且精简的方案来进行实现。
1WEB服务器:理解WEB服务器,首先你要理解什么是WEBWEB你可以简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就叫WEB服务器,如IIS、apache。 WEB服务器与客户端打交道,它要处理的主要信息有:session、request、response、HTML、JS、CS等。
2应用服务器:
应用服务器如JSP,处理的是非常规性WEB页面(JSP文件),他动态生成WEB页面,生成的WEB页面在发送给客户端(实际上当应用服务器处理完一个JSP请求并完成JSP生成HTML后它的任务就结束了,其余的就是WEB处理的过程了)。
网站的前端技术指:网站的视觉设计及网站的前台代码实现,包括基本的HTML和CSS以及JavaScript/ajax等。而网站后端技术则指:web服务器上编写程序的相关技术。
前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互。
服务端编程是指在web服务器上编写程序并使之正常运行。在B/S模式下,当用户下载一个网页时,如果网页中包含服务端脚本程序,web服务器将首次执行网页中的脚本程序,然后把执行的结果网页发送到客户端浏览器显示。
扩展资料:
前端涉及的关键技术:
1、 HTML技术
HTML是一种标记语言,能够实现Web页面并在浏览器中显示。HTML5作为HTML的最新版本,引入了多项新技术,大大增强了对于应用的支持能力,使得Web技术不再局限于呈现网页内容。
2、CSS技术
级联样式表(Cascading Style Sheet)简称“CSS”,是用来进行网页风格设计的。比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。
3、JavaScript
是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。通过JavaScript实现相应的效果和交互。
参考资料来源:百度百科-前端开发
参考资料来源:百度百科-服务端编程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)