web前端开发工程师简介
Web前端一直占据着重要的地位。尤其是近几年HTML5技术的快速发展,使得Web前端技术得到了更好的发展。Web前端开发人员的薪资也一路飙升。下面我们来了解一些web前端开发工程师的简介,欢迎大家参考!
Web前端和后端的区别
功能差异
首先要分清网页设计师和网页开发者的区别。两者的区别主要表现在:一个是关于网站的视觉或审美方面,这叫?前端?;另一种是隐形编码设计,称为。后端?。总之,漂亮的网站界面出自网页设计师之手,而强大的功能则是网页开发者的杰作。
除了功能上的区别,两者还有很多其他的区别。国外设计网站Downgraf专门做了一个图表来展示?网页设计师和网页开发者(程序员)都有茬,一个没钱,一个没时间;两人都喜欢内涵t恤,一个走字体设计路线,一个走代码风格;两个都是自带设备,一个必须带MacBook Pro,一个只挑小键盘?除了以上的不同,他们还有一个共同点:都怕mm,好像都是?房子?麻烦来了。
技术差异
从技术方面,我们来看看各大企业在实际招聘中,前端人员和后端人员都需要具备哪些能力。
Web前端:
1.精通HTML,能够编写语义合理、结构清晰、易于维护的HTML结构。
2.精通CSS,能够还原视觉设计,兼容业界公认的主流浏览器。
3.熟悉JavaScript,了解ECMAScript的基本内容,掌握1~2 js框架,如JQuery。
4.对常见的浏览器兼容性问题和可靠的解决方案有清晰的认识。
5.有一定的性能需求,了解雅虎的性能优化建议,并在项目中有效实施。
Web后端:
1.精通jsp、servlet、java bean、JMS、EJB、Jdbc、Flex开发,或者非常熟悉相关工具、类库和框架,如Velocity、Spring、Hibernate、iBatis、OSGI等,并对Web开发的模式有深刻的理解。
2.熟练使用oracle、sqlserver、mysql等常用数据库系统,具有较强的数据库设计能力。
3.熟悉maven项目配置管理工具、tomcat、jboss等应用服务器,有高并发处理下负载调优相关经验者优先。
4.精通面向对象的分析和设计技术,包括设计模式和UML建模。
5.熟悉网络编程,有设计开发外部API接口的经验和能力,有跨平台API规范设计和API高效调用设计的能力。
总而言之,两者的区别在于
功能上,前端主要负责界面设计;后端主要是做好界面后的功能。
形象上,前端注重形式美;后端注重功能和实用性(为此我还专门去了乔布通R&D部门实地考察,发现我们前端工程师买了两个Macbook,后端工程师买了两个键盘。惊人的匹配!)
在企业招聘中,前端工程师需要精通JS,熟练使用JQuery,了解CSS,并熟练运用这些知识开发交互效果;后端开发人员需要会写Java代码,SQL语句,会做简单的数据库设计,会Spring和iBatis,会一些设计模式。
前端和后端都属于软件开发的范畴。所以写简历的时候可以参考软件开发工程师,这对童鞋很有帮助!
要成为一个高效的Web开发人员,你需要做大量的工作来改进你的工作方式,提高你的劳动成果。但是,在发展中不可避免地会遇到一些困难。那么,前端和后端分别面临的主要挑战是什么?来和我一起看看吧!
Web前端开发面临的挑战
前端开发的五大挑战
第一大挑战:兼容性
浏览器有很多种,比如IE,Firefox,Chrome,Opera,还有很多IE外壳浏览器,比如搜狗,傲游,360,再加上这些浏览器的移动终端版本。Web标准是需要的,大部分前端知识是所有浏览器通用的,但还是有历史遗留的问题,不同版本的浏览器有不同的问题。尤其是市场占有率最高的IE系统,虽然IE 9/10看起来挺标准的,但是在之前的版本之间有自己的问题,向前兼容是个很头疼的问题。不积累一些经验,面对疑难杂症就会无所适从。
第二个挑战:交互的复杂性
CSS和DOM提供的界面层次太低,而BOM提供的控件只是最基本的、略复杂的UI效果,应该由前端自己用CSS和DOM组合创建。看到一个需求,脑海中的第一步就是如何将CSS、DOM等基础部分组合成最终的效果。最后的效果其实是一个吗?创造?看似常见的组件TabView、Treeview、Rich Editor、Color Picker等流程,实际上是前端没有的,需要自己实现。
前端语言的胶水需求太强了。CSS、DOM、JS是三种不同的技术,也是前端知识体系中最需要掌握的三个最重要的基本功。前端效果最终通过CSS、DOM、JS的配合呈现。没有任何技术,寸步难行,要时刻同时考虑多个方向的知识点。前端编程就像同时运行三个线程,复杂度成倍增加。
第三个挑战:代码可维护性
复杂度的提高直接影响代码的可维护性。CSS+DOM+JS的组合如此强大,以至于同样的效果可以用很多完全不同的方式实现,每种方式都会有不同的开发难度、扩展性和可维护性。解决方法太多了。当你看到一个效果时,你首先会想到如何用CSS和DOM中的那些底层接口来实现。是这个吗?创造?这个时候我脑子里可能会有很多不同的实现方式。创造?你做完后想要吗?比较?权衡各种方案的优缺点,过一段时间,你就可以选择最合适的方案了。当然,并不是所有的前端都是完美主义,所以一定要选择最好的方式,但是因为前端是GUI编程,直接面对用户,是产品呈现最直接的部分,是门面。正因为如此,前端也是最容易被修改的部分。反复?修改?每个程序员都知道这有多可怕。如果可维护性不好,那就是噩梦。所以前端不得不注重可维护性,不注重可维护性直接等于自虐。
第四个挑战:性能
第五个挑战:个人成长
开发者的思维很重要。
前端开发,如果没有整体的设计思路,就会变成一个碎片化的程序,一堆代码的效果,一滩脚本的功能,一个需求的芯片逻辑。曾经遇到过,由于ue的调整,除了核心的数据处理功能,整个前端代码都被修改了。前端开发基本上是三个部分:DOM操作、数据处理和数据交互。如果这三个部分的功能分配合理,前端代码就容易扩展和调整。
真正的前端开发挑战在于开发者的思维。兼容性、布局、CSS、JS都不是问题,而是如何合理组织语言逻辑的问题。如何正确抽象需求中的模块;如何用代码来处理,用代码清晰的表达想法和写笔记,给后续维护人员一个可读的思路。前端的变化量是后端的好几倍。前端不是绝对的,而是根据需求不断修改的。
Web后端开发面临的挑战
后端开发的五大挑战
第一个挑战,后端开发最重要的挑战,来自规模。
规模的扩大,比如访问量的扩大,文件存储的扩大,数据量的扩大,服务器数量的扩大。一个前端看起来一模一样的网站,如果某个指标扩大十倍,几乎会面临一大堆问题和挑战。另一方面,规模扩大后,后端系统架构会比较复杂。原来只有一台服务器,LAMP都是一起装的。然后数据库被分离,反向代理,负载均衡,子数据库与子表,Memcache,消息队列,事务处理,CDN,NOSQL,各种架构,服务器逐渐演变。架构的复杂自然会带来更多的问题和更多的挑战。
第二大挑战来自安全。
安全问题层出不穷,防不胜防。需要技术手段和管理制度。
第三个挑战来自效率。
能否提供足够的处理速度,能否提供足够的带宽,能否保证响应性,这些都是外部效率。能不能少用服务器,能不能用便宜点的服务器,能不能多用节能点的服务器,都是内部效率。
第四个挑战来自需求的变化。
无论前端还是后端,都会面临需求变化。只要是软件开发,都是很大的挑战。然而,当一个系统已经稳定高效地运行时,需求就会发生变化。符合要求后,没有问题的部分会突然崩溃吗?一旦崩溃,就是后端工程师的噩梦。
第五个挑战来自教条。
这个世界上有无数的IT公司。他们都非常开放,愿意分享他们的架构和技术。那么,为了什么?开阔眼界?对于后端工程师来说,难点不在于如何解决,而在于如何从众多解决方案中选择。框架和实践不断涌现,成功的案例也是如此。人们很好地使用它。你敢用吗?尝鲜是勇敢还是保守?这个很难。
后端开发的三个原则
故障设计
相当比例的后端代码的存在并不是为了在一般情况下正确,而是为了保证系统在特殊或极端情况下的可接受响应。这里要做很多妥协:渐进式改进还是高级设计?横向扩张,业务优化,前台还是后台处理?很多妥协都是根据变化的环境和需求来权衡的,所以很容易出错。
建筑是关于抽象的
为什么抽象?因为抽象概念适应性更强,更容易重用,更灵活地适应变化。但是,抽象是很难的,不恰当的抽象更是有害的。可怕的是没有好的方法论,大部分都是靠一套基本原理和经验。但是Web后端开发很长一段时间都不太关注这些。很多网站都是粗放式的设计开发,补丁重叠的结构自然成为主流。
建筑是产品
因为架构本身就是产品,一个软件产品包含不同的视角,其中最重要的包括用户看到的视角和软件骨架就是架构的视角。但产品就是产品,所有这些视角必须统一一致,这就要求架构必须理解产品的灵魂,产品要理解架构的难点,否则很容易出现未能如愿或以巨大的架构成本实现某个角落功能等悲剧。
;