• 前端开发的七宗罪


    前端开发在最近几年逐渐走红,越来越多的开发者加入前端开发队伍。但前端在大学中没有课程体系,而且知识也在不断更新着。大家对它的认识也各不相同。博主有过技术经理,项目经理,面试官,前端开发的经历,参与过较多的前端开发项目,也结识了较多前端开发人员。基于这些因素我对前端有些较深刻的认识,和大家分享下。

    本文取名七宗罪是有些噱头之意,还请大家见谅,实则想为大家阐述前端开发的误区。

    罪一:前端只是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时代,我们有必要和他们科普一下新知识。

    本文是博主Arfei Zhang原创,欢迎转载。转载请注明转自博客园,并附上本文链接http://www.cnblogs.com/arfeizhang/p/7mistakes.html  ,谢谢!

  • 相关阅读:
    SVN_Clean up Error: Previous operation has not finished; run 'cleanup' if it was interrupted 。
    20220311T07:45:56.000Z中的T和Z分别表示什么
    Android Studio手动配置Gradle的方法
    fontvariantnumeric属性来实现数字的等宽
    修改mysql root 密码
    gitea 常用命令
    Oracle LOB字段
    kafka(java客户端)消费者取不到消息,生产者消息也没发送成功
    DIY 2.4G Expreless PWM 5通道迷你接收机
    吐槽:牛客网上的js编程笔试题
  • 原文地址:https://www.cnblogs.com/osimly/p/5920717.html
Copyright © 2020-2023  润新知