关于前端的那些事

好吧,最近有些人又在讨论“前端是不是一个低级工种”、“前端这个职位是不是有存在的必要”等类似的问题了。这里说“又”是有原因的,因为这类话题出现的频率虽不似月经贴,但每隔一段时间年也总会出来秀一下下。

作为一个立志于为前端布道的从业者,有些个体的声音需要发出。

【1. 前端的尴尬】

目前,前端的地位及受重视程度,相比前几年有了极大的提升。但尴尬之处仍存在,具体体现为:国内大部分有互联网业务的企业确实不需要专业前端,专业前端的就业面及需求量相比JAVA、PHP等开发工程师而言明显局限。

对大部分有互联网业务的企业而言,它们的互联网产品,开发工程师或者视觉设计师自己写一写table可能就够了,甚至其产品都是外包公司做出来的。即便需要前端也只是充当切图的页面仔,涉及到JS也只是实现一些简单交互。有的从业者甚至通过搜索引擎,搜出一些模板、代码片段,修改一下来满足需求、应付老板。这导致了相当一部分从业人能力平庸,被一些程序员同行概括认为前端技术难度有限,职位可有可无。

前端地位的尴尬返回来也导致学校教育上的漠视,在互联网技术快速发展的当下,迟迟不开设前端对应的专业课程。我在大二时就被当时拥有博士学位的数据结构老师点名批评:“就你天天研究的那些网页的东西,一点技术含量都没有,随便找个同学培训他一周 DreamWeaver 就能全学会!”微博微信上大学同学众多,堂主不会说谎话。

不过现在似乎有点改观,自从学校知道我这个挂科大户、反面典型来到淘宝工作后,我就变成了就业典型。甚至毕业前几个月院长还专门咨询过我,开设前端对应的课程,哪些书籍是适合作为教材的。能通过自己的就业对学院的教学改革产生一点点布道的作用,我现在还感到高兴和欣慰。

那么,前端的技术含量到底怎么样?是不是真的像其他人说的那样,企业不值得为其单独设立一个职位呢?

【2. 企业中的前端】

个人观点,其互联网业务仅作展示窗口作用的,可能确实不需要设立专业的前端职位。如企业展示类网站、政府网站等,其运营业务的核心渠道不基于互联网,其互联网产品更多承载的是品牌推广手段多样性的作用,其网站产品的开发完全可以通过外包来实现,顶多只需要设置1、2位运营编辑人员即可。

而对于那些核心营生基于互联网的企业而言,专业前端的职位就是必须的。因为前端作为一个职业存在的价值主要体现在:“叫专业的人干专业的事,解放并提升了产品方的生产力”。翻译成人话就是,前端解放了交互、解放了视觉、解放了开发,并用其专业技能提升了客户端的用户体验。

说解放了交互及视觉,是因为从此交互只专注于操作体验,视觉只聚焦于艺术呈现,而不用附带还要做切图切页面的事,且你叫交互、视觉去写要具备专业编程能力的 Javascript 语言他们也很难搞定。

说解放了开发是指开发可以将精力都投入在诸如底层系统架构、算法优化、数据处理等核心业务上,而不同再去写页面套页面,且你叫专业开发去捣鼓需要具备极强人文修养的 HTML 和 CSS,他们多半也会崩溃的。

说提升了客户端的用户体验,是因为,你找出一个能同时搞定HTML语义性、CSS兼容性、JS优异交互、整体性能经过优化、结构样式及脚本具备优异扩展性支持、且界面还原精确到1像素的交互、视觉或专业开发给我看看,有一个我们团队要一个

【3. 前端的工作内容及技术含量】

作为前端开发工程师,我们中的绝大部分(极少部分的前端工程师的工作内容是面向底层库的开发,为其他前端提供更便捷的开发工具),在日常的开发实践中,确实鲜有要用到算法的情况。如此好似低端,却不意味着做好就容易。

相比字面意思理解性较差的F2E (Front End Engineer,前端开发工程师),我们中绝大部分的工作性质更准确的形容应该是UIE(User InteractiveEngineer,用户界面开发工程师)。我们要处理的事务包括但不限于:产品界面的在浏览器端的展现、前后端数据的通信以及基于 DOM 操作的交互体验。

因前端编码手段过于灵活,质量参差的HTML、CSS和Javascript可能都可以满足当前的产品需求。可若一旦涉及可用性、扩展性、细节控、性能优和兼容性,质量不佳的代码劣势立现。如,对很多人最不重视的、认为最没技术含量的HTML:一个优异的HTML结构,且不论其本身就具备的高优雅性及可读性,更可以节省一大半的 DOM 操作;且具备良好的可扩展性,避免未来因需求变化而导致的大规模结构重构;更能避免绝大部分的CSS兼容性问题 —— 我就不提什么模块化复用性、搜索引擎优化和盲人阅读器的那些事了。

另外因前端职业成型晚,技术迭代快(且这种迭代属于技术累加式而非替换式,使得越往后入门的新人需学习的东西越多),产品兼容问题多(想做到 “write once, run anywhere" 是F2Er共同的梦),校园教育缺失,自学成本高、最佳实践积累少、职业思维模型需跨技术与人文等种种因素,都导致前端职业修养的养成成本更高,靠谱的人才稀少。

所以说,“糙活也能用,细活养成难”的现实一是阻碍了很多从业者的进步,二也造成了行业上认为前端“没难度级别低”的错觉。

但错觉终究是错觉,互联网的快速发展会帮助大家逐渐纠正这一认知。前端现在不论作为一个职业,还是其背后代指的一干技术与思维,都依然显得青稚,需要积淀与成熟。但请相信前端成熟的路不会更类似其他职业的开发——我会告诉你一个好的前端应该具备很强的人文气息么?人文这东西说不清道不明,但可以肯定它属于是感性的一类,正如HTML和CSS,看似简单,却绝非简单,一如文学创作,语境的形成不取决于语法,却依赖于开发者自身。

原文地址:http://www.osmn00.com/personal/244.html

时间: 2024-11-05 12:36:41

关于前端的那些事的相关文章

laravel 中 与前端的一些事2 之使用Gulp编译sass

下载所有依赖npm的packagist: 下载了前端laravel  elixir编译所需要的全部工具: gulp编译scss文件: scss文件的默认存放位置: 输入命令gulp 开始编译scss文件: 编译成功后 存放在public/css/app.css 使用场景二:

vue前端开发那些事——vue开发遇到的问题

vue web开发并不是孤立的.它需要众多插件的配合以及其它js框架的支持.本篇想把vue web开发的一些问题,拿出来讨论下.  1.web界面采用哪个UI框架?项目中引用了layui框架.引入框架的好处就是解决界面风格统一的问题,良好的布局(自适应不同的设备),提供了大量基础组件及模块,如form提交.上传.弹出层.我觉得前台框架的引入,解放了美工的一些工作.以前有bootstrap.现在有layui.element ui(基于vue 2.0). <body> <div id=&qu

2018 浅谈前端面试那些事

虽然今年没有换工作的打算 但为了跟上时代的脚步 还是忍不住整理了一份最新前端知识点 知识点汇总 1.HTML HTML5新特性,语义化浏览器的标准模式和怪异模式xhtml和html的区别使用data-的好处meta标签canvasHTML废弃的标签IE6 bug,和一些定位写法css js放置位置和原因什么是渐进式渲染html模板语言meta viewport原理 2.CSS 盒模型,box-sizingCSS3新特性,伪类,伪元素,锚伪类CSS实现隐藏页面的方式如何实现水平居中和垂直居中.说说

laravel 中 与前端的一些事4 之合并压缩静态文件

合并压缩多个静态文件到一个文件里面,可以减少网站的http请求,稍微优化性能,提高网站的用户体验 使用elixir来实现: 敲命令 合并并压缩js和css文件

laravel 中 与前端的一些事3 之使用Gulp编译less

更多关于less的使用方法,参考上一篇scss的使用,两者大同小异

laravel 中 与前端的一些事5 之解决缓存问题:version

Version的主要目的就是解决浏览器的缓存问题,在这个方面,Elixir给出的解决方案很完美 应用场景:当我们的css或者js重新更新了,我们需要告诉浏览器我们不要缓存的css或js静态文件样式时,使用version 比较麻烦的方法就是在引入文件中直接插入版本代码: 一般我们都是在编译文件时就使用version()函数来生成一个有唯一版本号的编译后的css文件,存放在public/build/下面: 然后使用laravel的函数elixir()引入:

前端托牵效果

上文说到,想将移动端的拖拽说一说,那现在趁有时间,就将这个福利文带来了,哈哈! 在我还不知道怎么做移动端的手势操作的时候,我觉得这TM实在是太难了,这是多么高深的学问啊,手势操作耶,上滑下滑左滑右滑的,手机怎么知道我是怎么滑的,我要怎么告诉手机,我用手滑了一下,于是我就默默的找资料看看, 到底是什么样的原理可以实现这一点,于是,我找到了移动端手势操作原生事件: touchstart:     //手指放到屏幕上时触发 touchmove:      //手指在屏幕上滑动式触发 touchend:

程序员别迷茫,通往牛逼的道路有很多

有个网友给我留言,说看了我的上篇文章<三个月不工作,我才转行成了程序员>,感触很深,自己和奶爸的经历类似,也是从其它行业,转到IT圈做了一名程序员.如今已有2年时间,大大小小也参与了一些系统开发项目,可如今感觉机械化的重复写程序很没有意思,再转一次行成本太大,如今年龄也不小了,不想再折腾.不知道下一步该怎么办? 看到他的困惑,如同看到了当年奶爸自己,自己也是摸着石头过河,才一步步走上岸来.我想对有类似困惑的朋友说,不要完全怀疑自己当初的选择,因为IT这条路很宽,一条路走不通,试试其它的,通往牛

数据库日期时间显示在页面上格式错误的解决方案

做项目过程中肯定会碰到这样一个问题:在数据库中存的是date或datetime类型的值,从数据库里取出来遍历到页面上显示的是long类型或是GTM类型的日期时间.对于这个问题,经过研究之后有以下结论: 1.hibernate不会出现这样的问题,而mabatis则会出现这个问题. 2.数据库使用date类型的在页面上会显示long类型日期时间,使用datetime类型的在页面上会显示GTM类型日期时间. 因为我用的是mysql数据库,其他的数据库没测试过,所以也不知道其他数据库是怎样的情况,这里就