少于 1 分钟阅读

本来是想直接写写大前端负责人的职责的,但是在查阅资料的时候,发现“大前端”的介绍文章还很少,大家对这个概念也还存在偏差,所以在写下一篇之前,有必要来谈谈什么是大前端。

什么是大前端

在2020年年初的时候,网易云音乐技术中心成立了大前端技术部,将原来的iOS、安卓、前端技术组融合成了一个部门。

所以,在云音乐,大前端是iOS、安卓、前端三者的总称,对于普通业务开发同学来说,工作职责并未发生变化,iOS工程师仍旧做iOS开发,安卓工程师仍旧做安卓开发,前端仍旧做前端开发,并且头衔也未发生变化。

根据搜索公开资料,国外应该没有“大前端”的说法,所以也没有对应的英文,这是国内业界人士发明的词汇,我这里也给它起个英文名字:Universal Frontend。

需要注意的是,很多人理解的大前端,其实是全栈工程师,国外称之为 full-stack engineer。全栈工程师是指既懂前端又懂后端的工程师,一般是由Web前端工程师转变而来,因为他们擅长的是JavaScript语言,而Node.js使用的就是JavaScript语言规范(ECMAScript),他们有天然优势成为全栈工程师。

我个人倾向于云音乐这种大前端组织架构,其他互联网大厂具体是如何划分的我也并不太清楚,但和一些同行交流下来的感受,不同的公司组织架构存在差异。

为什么叫大前端

大前端包括了iOS、安卓和前端,那为什么叫“大前端”呢?“大iOS”和“大安卓”这种叫法当然可笑不可能的,但iOS和安卓有个统一的叫法是“客户端”或者“移动端”,所以为什么不叫“大客户端”、“大移动端”,或者干脆叫“客户端”?

下面谈谈我的理解。

我们发现,iOS和安卓,都是一种操作系统,在特定平台上开发,需要投入巨大的学习精力,所以按照平台来划分工程师头衔是合理的。

我们通常称为的前端,特指Web前端工程师,是用Web技术(HTML、CSS、JavaScript等)实现基于浏览器的UI界面,浏览器可以在任意操作系统上运行,所以头衔就不会和操作系统平台挂钩。HTML、CSS和JavaScript是前端工程师必须掌握的三门语言,所以头衔也不会和开发语言挂钩。有些公司确实也设立了JavaScript开发工程师,但这不是主流的做法。只会JavaScript而不懂HTML和CSS,确实很难有作为。因为UI界面靠近用户侧,称之为“前端”也是合理的,对应的英文为 frontend,以区别于服务端,所以服务端也叫“后端”。

Web浏览器其实也是一种“客户端”,所以将iOS、安卓和前端统称为“客户端”也是合理的,但是一个头衔名词既然已经被大家认可理解,如果再赋予新的含义总会产生不必要的沟通麻烦,此时使用新名词是有必要的。所以“客户端”这个叫法并不合适。由于iOS和安卓也是一种UI界面,所以将iOS和安卓称为“前端”也合理。同样的原因,“前端”已经特指“Web前端”,没必要再赋予它新的含义。

另外,“大客户端”这种叫法我觉得也可以,但它有四个字,叫起来不如“大前端”顺口,就像大家都喜欢把移动端上的Web页面称之为H5页面一样。

有无必要成立大前端

一般来说,公司成立一个新部门,肯定是要解决一些已经暴露出来的问题,一般也不外乎是沟通和协作等问题。

据我去年整年的观察和思考,成立大前端技术部的优势有:

  • 大前端公共技术组的设立,可以推动较多基建的进展。客户端工程师有一个天然的短板,他们不擅长Web页面开发,JavaScript可能不是问题,但HTML和CSS确实需要较长时间的专业训练才能达到初级开发的水平,客户端的领域问题相对来说会比Web开发要复杂,很多客户端同学并不会对HTML和CSS产生浓厚的兴趣,所以很少见客户端工程师能产出平台技术产品。现在有了大前端公技小组,Web开发不是问题,相信只要充分沟通,优秀的前端工程师是可以实现客户端工程师想要的技术产品的。
  • iOS和安卓两端技术方案的一致性,这点虽然在合并前已经有了共识,也就是方案由一端出。但如果是在同一个组织下面,沟通和合作问题是可以保障的,如果出现了分歧,上面还有大前端负责人可以出面调解解决。
  • 跨端技术的推进会比较顺利。比如React Native技术的运用,需要Native和前端同学一起研究探索,形成技术知识点的闭环。
  • 利于通用人才的培养。在同一个组织下,耳濡目染,势必会引起一些同学的兴趣发生转变,比如Web前端同学对移动端开发产生了兴趣,此时他就有机会去参与一些移动端的开发工作,当然需要花费巨大的学习时间。另外,我建议组织可以提供明确的转岗机会,制度透明,做好转岗前后的保障工作等等,特别也建议资深前端工程师转岗移动端开发。
  • 和外部团队的沟通更加顺畅。以前产品、运营等发现一个问题时,可能都不知道去找谁解决,现在可以先统一收口到大前端负责人身上,沟通效率更高,对外口径保持一致。

成立大前端技术部的劣势有:

  • 对管理人员增加了挑战。因为像云音乐这样的组织架构,势必会影响旗下其他APP研发团队的组织架构,也就是其他项目团队也会走大前端的模式。所以,不管是在大前端技术部还是在业务技术团队,会有大前端负责人的管理职位,不管他是哪个端出身的,知识面必然存在局限性,当然,这是一个挑战,也是一个机遇。对于公司来说,需要这种通用人才。
  • 沟通成本。虽然成立大前端是为了解决沟通问题,但沟通本身也是有成本的,如何能保持以前团队的灵活性是一个挑战,千万不要陷入太细枝末节的问题上。

整体来说,成立大前端是非常有必要的。

留下评论