WTF Full-Stack Engineering

作者:张新

我从来不相信有所谓的全栈工程师,在过往多年工作经历中,我只见过一个人,可以配得上全栈工程师这个头衔,因为他可以轻易地在后端和前端工作中自由行走,以他资深的专业知识深深地打动着我,让我久久不能忘怀. 😃 而对于大多数人来说,能做到这种程度确实是不容易的,或者是不可能的。

想知道什么是全栈,得先知道什么是前端开发?我相信一个合格的前端开发工程师应该包含下面这些技能:

  • JavaScript/HTML/CSS
  • Web Performance
  • Web Security
  • Web Accessibility
  • Node/React/Vue/Angular/Jest/Webpack/...
  • Design/Tools/Architecture/UT/...

如果你有一定的计算机基础,我相应学会这些东西是没有什么大问题的。但是,学是学会了,能灵活运用它吗?能运用好它们吗?除了掌握好这些技术之外,你还得有足够的技术热情和专注,保持在一个领域足够长的时间,你才能去了解到别人所不知道的冰山下的那些东西。就像我司常常说的,昨日的成就也只是今日的最低标准而已。而且,你不太可能有足够的时间去跟进所有最新的技术,我们目前所能看到,也只是它的冰山一角而已。

那么什么是全栈呢?或者那些自称全栈的人,他们其实想表达的是什么呢?对于大多数人来说,全栈意味着你至少对以下领域是精通的:

  • 前端所有技能
  • 服务端、网络层和各种各样的运行环境(Linux/Windows/Mac/...)
  • 数据库、API 设计、移动端开发、安全和底层性能等等
  • 设计、用户体验、商业产品化思维等等
  • ...

有幸经历过几家大公司,也看过和经历过很多产品的迭代,有发现到一个现象,那就是大家普遍对于交互设计和用户体验是不重视的,甚至是忽视的,我曾经听到一个产品经理告诉我说,只要求功能 OK,能完成整个流程就好了,至于长什么样,用户是不会关心的(其实是他不关心而已)。从这背后折射出的是对整个 Web 开发领域的忽视,他们并不关心用户的想法,也不会去考虑那一群视力有障碍的人会如何使用他们的产品,他们并不会去关注每一个用户的痛并去解决它。导致这一问题的其中一个原因是,HTML/JS/CSS 的常年被忽略,其它领域的开发者始终会觉得它们只是浏览器中运行的脚本而已,或者认为它们只是可以帮助我在浏览器中实现动画的一个玩具语言而已,没有真实地去体会过它所带来的乐趣,所以常常会见到代码库中充斥着 copy-paste。而在我接触它们以来,才逐渐感受到它们的强大,也只有你去细细体会过,方才知不同。如果你觉得它们很简单,或者只是因为你对它缺乏最基本的敬畏和尊重而已吧。

目前来说,前端开发仍然是很重要的一块领域,至少在未来的五年内都会是这样,随着大家对富交互要求越来越高,大家也会越来越重视它,这也是越来越多的公司会成立专门的前端团队的一个重要原因,术业有专攻嘛。

但是,对于开发者来说,前端开发应该是需要时刻保持专注并全身心投入的一份专职工作。有太多的公司招聘所谓的全栈工程师或是没有代码经验的设计师,只会让事情一团糟。见过太多的 Web App 慢如蜗牛,但是没有人去优化它;也见过很多完全不考虑 Web Accessibility 规则的,连一个 focus 状态都没有的输入框,更不用说去支持键盘导航。很多人会以为前端是没有架构的,这在目前来看,是很荒缪的,不管是经典的 MVC,还是到最近的 JAM Stack,都代表的是一种先进的思想或是架构模式。这所有的一切还是源于自己的不了解和不专业,缺乏对技术和未知事实的一种敬畏,这其实是很可怕的,是阻碍我们成长的关键。

所以呢,这世界上根本就不存在所谓的全栈的,有的只是专注。

网站内容许可证:公共领域(public domain)

Build by Loppo 0.6.15