自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

前端工作的五層,你工作在哪一層?

開發(fā) 前端
現(xiàn)在前端的工作遠不只切圖那么簡單,工作內(nèi)容豐富了許多:有的前端工程師會做前端框架、做 SDK,有的會做搭建平臺,有的會做工程化工具鏈,有的會做業(yè)務(wù)開發(fā),還有的會參與引擎層,定制 js 引擎和實現(xiàn)渲染引擎等。

[[432189]]

本文轉(zhuǎn)載自微信公眾號「神光的編程秘籍」,作者神說要有光zxg。轉(zhuǎn)載本文請聯(lián)系神光的編程秘籍公眾號。

現(xiàn)在前端的工作遠不只切圖那么簡單,工作內(nèi)容豐富了許多:有的前端工程師會做前端框架、做 SDK,有的會做搭建平臺,有的會做工程化工具鏈,有的會做業(yè)務(wù)開發(fā),還有的會參與引擎層,定制 js 引擎和實現(xiàn)渲染引擎等。

這么多種類型的前端工作內(nèi)容,它們是什么關(guān)系呢?前端工作一共有哪些類型呢?

這篇文章就來探究下這個問題:前端的工作內(nèi)容都有哪些,之間的關(guān)系是什么。

前端工作的五層

前端的工作大概可以分為五層,從下到上分別是引擎層、runtime 層、工具層、業(yè)務(wù)層、搭建層。

 

我們分別來看一下:

引擎層

現(xiàn)在前端代碼的運行容器不只是瀏覽器了,也有了很多別的容器,比如可以用 electron 做桌面端的跨平臺開發(fā),通過前端技術(shù)棧開發(fā)桌面應(yīng)用,比如 react native、weex、或者自研跨端引擎可以用前端的技術(shù)棧來開發(fā)安卓和 ios 的 app,比如小程序引擎也支持前端技術(shù)棧來開發(fā)跨平臺的小程序。

這些容器的實現(xiàn)基本都是擴展了 js 引擎,比如 v8、javascriptcore,給它們注入了一些 dom api 和設(shè)備能力的 api,也實現(xiàn)了渲染引擎,由不同的平臺實現(xiàn) css 的渲染。從而支持了前端代碼運行在不同的平臺。

js 引擎的定制和渲染引擎的實現(xiàn)都是基于 c++, 有一些懂 c++ 的前端同學會參與這些事情,比如阿里的 kraken 渲染引擎就是前端同學開發(fā)的。

runtime 層

引擎或者說容器實現(xiàn)了 w3c 標準的一些 api 后,上層就可以用前端技術(shù)來開發(fā)應(yīng)用了。但是 w3c 的 api 過于原始,我們一般都會引入一個前端框架、一些 sdk。

前端框架實現(xiàn)了組件化、實現(xiàn)了數(shù)據(jù)驅(qū)動的渲染,讓我們不用直接調(diào)用 dom api,只管理好數(shù)據(jù)即可。數(shù)據(jù)變動會自動調(diào)用 dom api 來重新渲染。

有一部分前端同學的工作就是維護前端框架和 sdk,比如百度的前端框架 san、阿里的跨端用的前端框架 rax 等,還有各種各樣的 js sdk。

工具層

引擎支持了 js 的執(zhí)行、css 的渲染,但是我們開發(fā)時可能不會直接寫 js、css,而會使用 typescript、es next 等,css 也會用 less、sass 等預(yù)處理器,所以需要經(jīng)過編譯。而且為了更好的分發(fā)代碼,還會做代碼的打包。在編譯之前還會對代碼做 lint。

這些就是工程化的工具鏈,有一部分同學是做這些工作的,比如包裝一下 webpack 或者 vite,做成開箱即用的 cli,比如我上家公司的自研編譯器。比如字節(jié)剛開源的 mordern.js 就是這個范疇。

業(yè)務(wù)層

引擎提供了前端代碼的執(zhí)行能力,runtime 層提供了易用的前端框架和 sdk,工具層提供了開箱即用的編譯打包工具鏈,那業(yè)務(wù)開發(fā)同學就可以基于這些快速的完成業(yè)務(wù)需求了。

大多數(shù)前端開發(fā)是工作在這一層,其他層也都是為這一層來服務(wù)的。畢竟,業(yè)務(wù)才是公司存在的基礎(chǔ)。

搭建層

為了提高交付效率、解放業(yè)務(wù)層前端開發(fā),現(xiàn)在越來越多的公司會做可視化搭建的平臺,供非開發(fā)人員來自己實現(xiàn)一些需求,從而使得前端開發(fā)有更多的時間去做一些其他層的更有挑戰(zhàn)性的事情。

很多公司都會有一部分前端來做這個搭建投放的平臺,試圖直接解決掉一類需求。

五層的完善度

上面的五層基本涵蓋了前端的絕大多數(shù)工作內(nèi)容了,但是不同的公司這五層的完善度不同,有的公司可能只會有業(yè)務(wù)層和工具層的工作,而有的公司會做搭建層的事情,也有的公司會做 runtime 層甚至引擎層的事情。

我上家公司做了這全部的五層的事情:

  • 引擎層:有自己的跨端引擎,自己實現(xiàn)了引擎層的 dom api、設(shè)備 api、渲染引擎。
  • runtime 層:有自己的前端框架和其他一些 runtime 庫。
  • 工具層:有自研編譯器、調(diào)試工具、lint 工具。
  • 業(yè)務(wù)層:各業(yè)務(wù)線在跨端引擎上,基于前端框架和工具鏈做業(yè)務(wù)開發(fā)
  • 搭建層:活動頁和其他一些場景已經(jīng)落地了搭投平臺

這五層的完善度決定了前端可以做的事情的范圍。上家公司前端工作內(nèi)容涉及全部的五層,縱深比較大,所以在那里可以做的事情就比較多。

總結(jié)

前端的工作內(nèi)容種類比較多,但是總體可以劃分為五層:

引擎層、runtime 層、工具層、業(yè)務(wù)層、搭建層。

不同層的關(guān)注點不同。

這五層的完善度也決定了前端可以做的事情的縱向深度,這五層越完善,前端可以做的事情越多。

 

細想一下,你的工作是在哪一層呢?或者更想做哪層的工作呢?

 

責任編輯:武曉燕 來源: 神光的編程秘籍
相關(guān)推薦

2009-06-10 09:58:14

程序員職場層次

2019-01-18 16:39:08

系統(tǒng)層中間件層應(yīng)用層

2018-04-10 12:04:25

程序員互聯(lián)網(wǎng)網(wǎng)絡(luò)

2010-11-10 10:39:19

2022-02-28 18:05:00

程序員編程語言操作系統(tǒng)

2018-04-11 23:26:44

2010-08-02 11:04:25

Flex程序員

2010-01-06 09:36:59

2020-09-07 06:38:54

HA高可用協(xié)議

2019-10-23 08:46:26

物理層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層

2017-11-17 06:06:23

交換機ASIC路由器

2025-02-05 09:46:13

OracleDBA投資

2022-04-20 07:52:01

HTTPTCPWireShark

2018-03-19 10:00:26

IT工程師等級

2014-08-18 14:54:54

Git

2023-04-26 13:55:00

Python開發(fā)技能

2023-07-31 08:00:19

2017-12-18 12:45:41

前端高薪IT行業(yè)

2010-03-19 13:50:48

三層交換機

2024-04-09 09:02:06

Node.jsJavaScript單線程
點贊
收藏

51CTO技術(shù)棧公眾號