前端开发在最近几年逐渐走红,越来越多的开发者加入前端开发队伍。但前端在大学中没有课程体系,而且知识也在不断更新着。大家对它的认识也各不相同。博主有过技术经理,项目经理,面试官,前端开发的经历,参与过较多的前端开发项目,也结识了较多前端开发人员。基于这些因素我对前端有些较深刻的认识,和大家分享下。
本文取名七宗罪是有些噱头之意,还请大家见谅,实则想为大家阐述前端开发的误区。
罪一:前端只是JS
有这么一部分朋友,只看犀牛书(《JavaScript权威指南》),每天研究JS这JS那的,认为这样就算是前端开发了。
但我要说的是:前端不只是JS。
何谓前端开发?我认为,一切以展现为目标的工作,都是前端开发工作。在前端开发中,除了JS,还有很多需要去掌握的,比如浏览器原理,html5,css3等。之前在面试别人时,问他,怎么做一个触摸屏上的转盘。他摇头。我退了一步,和他说谈谈你的想法也可。他想了一下,还是不会。
做转盘,是我经常面别人的一道题(我在后期会对这道题给大家解说),看似简单,但代表了前端知识的综合应用。你没有触摸屏开发经验,不知道CSS3或canvas,不了解网页优化,是做不出来的。前端是综合技术的应用,只会JS是解决不了问题的。
罪二:我现在能HOLD住一切,不用学新东西了
我面过的人中,有60%的人没有h5和CSS3的实际工作经验,甚至只听过一些名词,没有研究过。问他们原因,大部分回答之前的工作用不上,小部分回答没时间。当问到一些动画的实现时,有部分面试者还在用频繁改DOM的CSS2属性来实现。
这种状况的原因可能和工作内容有关,目前国内的一些移动端网页还是比较中规中矩的,产品经理对前端实现很少有非常规的要求。一些前端开发者的任务是把后端的数据给呈现出来即可,这些确实CSS2也能实现。但这些也不是不学不用新技术的理由,啃老本总有一天被淘汰。让页面的用户体验更好,是前端的责任。
罪三:前端不需要了解后端知识
也是,前端好好的弄前端呗,管后端干嘛。
但行业在发展着,前端的功能越来越强大。离线数据库能提供数据存储和管理的功能,但不会写SQL语句能玩得转吗?WebSocket能提供即时通信,但不了解socket和WebSocket的区别,能和后端开发(很多后端开发只会socket技术)一起搭建吗? 加快页面展示速度不只是要从前端分析,后端也要考虑到,使用keep alive、 缓存等后端技术能使页面更快地打开。
罪四:设计师或产品经理太异想天开了,他们要的好难实现呀,干脆回复实现不了吧
不要排斥他们的非常规需求,他们的这些奇怪需求也许会成为企业的重要竞争力。(好吧,这一点切换到公司经营者的视角了。)用户越来越注重表现效果了,不要再以简单的列表页和详情页来打发用户了,他们可能会因为良好的用户体验而成为网站的忠实用户。遇到非常规需求时,首先想下怎么运用前端知识来实现,如果想不出来,就和同行讨论下。总之,实现需求是开发者的责任,不要轻易说这个需求我们实现不了。
罪五:不考虑极端情况或性能,页面出来就行
大部分前端呈现使用DOM,但DOM用得多了会有性能问题。现在很流行列表页页底上拉加载更多,但很少有前端关注加载的极端问题,如果一个页面我下拉了很多次,加载了几千个DOM,会发生什么问题?答案是轻则页面响应缓慢,重则浏览器闪退。
另外举个例子:LocalStorage使用起来确实方便,很多企业的前端重度依赖它,甚至知名的前端开发框架也依赖它。但它有个缺点——有容量限制(2.6M-10M),我们得考虑极端情况,当LocalStorage空间快满时,怎么处理。或在架构上避免这种极端情况的发生。
罪六:页面只是给用户看的,用户能正常使用就行
来看你页面的,不只是用户,还有机器人。
Web App一直在觊觎Native App的位置,有的Web App和Native App 根本看不出差别。Web App大红大紫,各种前端MVC框架也风声水起,但它们都有个问题,几乎没法做SEO,因为搜索引擎无视JS。流量是企业的立命之本,SEO做得好能引来大量的流量,所以前端还是得考虑SEO问题。(会在后面和大家讨论Web App的SEO方案)
罪七:不使用/不推动 新技术
上帝给了你一双翅膀,你却把它给烤了。
问自己几个问题,网页用了CSS3动画吗?网页支持多点触摸操作吗?距离感应器,动作感应器,你用了没有?这里并不是说为了用而用这些新技术。而是想表明,我们已经有新的技术了,不要把它们浪费了,是时候对以前的网页和以前的操作方式进行变革了。使用这些特性,能让用户体验更佳。一些产品经理或设计师对前端的认识还停留在html4时代,我们有必要和他们科普一下新知识。
转载链接