正文
怪现象一:谁都可以指手画脚的前端开发
我职业生涯很长一段时间都在做前端开发,我也做过后端开发,两者一对比,给我影响最深的不是技术差异,而是——前端开发者听到的『需求修改意见』要比后端多得多。
后端这东西,毕竟是藏在后面的,外行不懂就是不懂,装不出来,他们也不好自取其辱乱比划,但是,前端嘛……谁都能看得见,没吃过猪肉还没见过猪跑,所以,谁都可以指手画脚提一点意见。
只看得见界面的产品经理可以提一些意见。
项目经理可以有一些意见。
啥也不懂的老板也可以提一些意见。
甚至连后端都可以来提一些意见。
……
正因为前端的产出是看得见摸得着的,所以造成了谁都可以『提一些意见』的现象。
前端开发最大的痛啊!
怪现象二:被鄙视但又十分抢手的前端
前端开发者,你懂的,居于开发者鄙视链的低端,业务逻辑大多都居于后端,超大并发量是后端实现的,超牛逼的AI、大数据分析、商业逻辑都在后端,前端要做的只是一个功能展示,所以,后端开发普遍看不上前端开发的工作,直到……到了公司举办黑客马拉松活动的时候。
黑客马拉松,就是让程序员自行结队,在几天之内快速开发出来一个小型项目,到活动结束的时候,每个队要演示自己的产品,于是,问题来了,平时你可以鄙视前端开发者,你可以把前端开发贬得一文不值,但是,到了黑客马拉松的时候,才知道前端开发的必不可少,因为没有前端你无法『演示』你的想法。
这时候,后端开发者也会发现,平时觉得前端开发很简单,但是自己写一个最简单的AJAX form表单提交也要学半天,不管你的后端想法多么牛,如果最后没有熟练的前端开发者,最后到了演示环节也要抓瞎。
所以,每到黑客马拉松时,平时居于鄙视链最低端的前端开发者,突然就变成了最炙手可热的红人。
谁都觉得前端开发不重要,但是又离不开前端开发。
是不是很讽刺?
怪现象三:苦不堪言的多端开发
一个正经的产品,为了满足用户不同设备上使用的要求,需要提供多客户端,最起码要有网页端、iOS端和安卓端,现在大部分产品还要考虑小程序端,这还没算iOS要分iPhone和iPad,安卓也要考虑手机和平板,甚至要考虑机顶盒设备的界面……
各种设备、各种安卓版本、各种浏览器都有各自的特(bu)点(g),每个前端开发者都有体会,很多精力都消耗在处理某个特定平台/版本/浏览器的bug上,唉,说到这里真想流泪……
因为要支持这么多不同的客户端,一个产品的前端开发者种类也不止一个,要有网页开发者、iOS开发者和安卓开发者,大一点的项目,靠一个人支撑一种客户端就不行了,需要的是网页开发团队、iOS开发团队和安卓开发团队。
其实,不同客户端实现的都是同一种功能,完全是因为这个世界存在这么多种客户端,所以我们才被迫为各个客户端写一套代码。
虽然多端的存在,增加了不少程序员的就业机会,但是,干过实际项目的都知道,这其实很麻烦,很麻烦很麻烦!为了给用户最好的体验,肯定希望各端提供一致的功能界面,如果有新功能,要上一起发布上线,但是,不同团队之间开发周期肯定不同,很难保证同时完成任务,最后,花费开发时间最长的那一端的开发团队就成为整个产品的短板。
每每想到这里,就缅怀秦始皇,秦始皇你要是不光把度量衡统一,把所有客户端也统一了多好。
前端开发难在哪里?
好了,看完上面这三种行业怪现象,不难看出,前端开发很真的很有难度,我这里只列出最关键的两点:
-
当需求发生变化的时候,第一线中枪的往往就是前端,而且很多需求变化和后端无关,单纯就是前端的改变。这些需求改变有的是不合理的瞎折腾,但是,客观来说,也有不少是有必要的需求改变,应该用户是上帝,用户的喜好会变化,用户的喜好我们也要反复揣摩,必须要伺候好用户,也就是要适应需求变化,所以,难点就成了——如何让前端开发适应快速变化的需求?
-
前端的学习曲线其实挺陡,很多后端开发者以为前端只是玩一玩HTML,到了自己上手的时候发现其实要学很多,下面只是一个简化了的网页前端学习路线图。
如果要做到高性能,要考虑CDN优化、JavaScript Profiling、打包策略……
如果要做到安全,要防止注入攻击,要防止XSS攻击,要防止CSRF攻击……
这说的还只是网页前端,没说安卓和iOS开发、小程序开发,如果把这些都带上,需要学习的知识量又要翻倍。
而且,前端也不是说读几本书就可以上手做真实项目的,如果没有对这个领域长时间的浸淫,做出来的东西很可能就是漏洞百出,这个难点就是——如何让前端学习曲线变得不陡?
总结一下:
如何让前端开发适应快速变化的需求?
如何让前端学习曲线变得不陡?
长期以来,虽然无数仁人志士想要解决这些问题,也取得了一些成果,但是,前端是个被普遍低估了难度的开发活动!
前端开发的出路在何方?
最后
基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。
什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽
x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。
什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽