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

前端LSP真是越來(lái)越多了

開(kāi)發(fā) 前端
LSP是編輯器和語(yǔ)言工具(例如linter、靜態(tài)類(lèi)型檢查、代碼風(fēng)格檢查)之間進(jìn)行通信的標(biāo)準(zhǔn)協(xié)議。

[[416399]]

大家好,我是卡頌。

前端領(lǐng)域發(fā)展多年,不僅沒(méi)有式微,反而勢(shì)力逐漸擴(kuò)大。

一個(gè)直觀(guān)的現(xiàn)象:市場(chǎng)上「前端」、「后端」崗位需求一直居高不下,與「前端」同樣偏「前」的原生開(kāi)發(fā)(IOS、安卓)則逐漸式微。

雖然「前端」發(fā)展迅猛,但是太陽(yáng)底下沒(méi)有新鮮事,web前端終將走過(guò)「原生應(yīng)用程序」曾經(jīng)走過(guò)的路。

如果以史為鑒,那么一個(gè)趨勢(shì)是不可阻擋的 —— 前端會(huì)越來(lái)越「左」。

本文內(nèi)容參考Language Servers are the New Frameworks[1]以及Compilers are the New Frameworks[2]

什么是“左”?

IBM曾發(fā)明一個(gè)計(jì)算機(jī)術(shù)語(yǔ)Shift Left[3](左移)。

對(duì)開(kāi)發(fā)者來(lái)說(shuō),「開(kāi)發(fā)」這一行為可以分為不同階段:

Read(肉眼看到我們編寫(xiě)的代碼出現(xiàn)在屏幕上時(shí))

  • Save(保存代碼時(shí))
  • Commit(提交代碼時(shí))
  • Build(編譯代碼時(shí))
  • Run(運(yùn)行代碼時(shí))
圖片

當(dāng)開(kāi)發(fā)者的注意力越向左,越能盡早發(fā)現(xiàn)bug(即「左移」)。舉兩個(gè)極端例子:

  • 對(duì)于Read,依賴(lài)于TS的靜態(tài)分析,在編寫(xiě)代碼的同時(shí)就能知道類(lèi)型推導(dǎo)相關(guān)的錯(cuò)誤
  • 對(duì)于Run,某些bug可能要運(yùn)行好幾天,用戶(hù)反饋過(guò)來(lái)才知道

所以,對(duì)于成熟的開(kāi)發(fā)體系,開(kāi)發(fā)者的注意力肯定會(huì)更多放在「左邊」。

為了賦予開(kāi)發(fā)者更多支持,前端「基建」會(huì)越來(lái)越偏左。

從Run到Build

「前端框架」的發(fā)展是個(gè)明顯的例子:

中世紀(jì)

作為前端領(lǐng)域第一大框架,jQuery是絕對(duì)的運(yùn)行時(shí)方案,他幫助開(kāi)發(fā)者在代碼運(yùn)行時(shí)抹平瀏覽器的差異。

[[416400]]

jQuery yyds

近代

到了React、Vue,都需要引入編譯能力。

React需要編譯JSX,Vue需要編譯模版語(yǔ)法。

現(xiàn)代

前段時(shí)間StackOverflow公布的《2021年開(kāi)發(fā)者報(bào)告》中最受歡迎的前端框架Svelte更是打出了「零運(yùn)行時(shí)」的口號(hào)。

圖片

從Build到Read

但是,Build畢竟不是最偏左的,有沒(méi)有從Build直接往Read(最左邊)發(fā)展的呢?

有,這就是LSP(Language Server Protocol,即語(yǔ)言服務(wù)協(xié)議)。

圖片

當(dāng)然,不是這個(gè)LSP

LSP是編輯器和語(yǔ)言工具(例如linter、靜態(tài)類(lèi)型檢查、代碼風(fēng)格檢查)之間進(jìn)行通信的標(biāo)準(zhǔn)協(xié)議。

沒(méi)有LSP,不同語(yǔ)言需要實(shí)現(xiàn)這些工具與不同編輯器的通信。

圖片

有了LSP,他就能作為語(yǔ)言與編輯器之間溝通的橋梁。

對(duì)于前端領(lǐng)域,不同前端框架都在積極探索LSP方面的可行性,比如:

  • Vetur[4]作為Vue針對(duì)VSCode的工具集,是Vue開(kāi)發(fā)者的標(biāo)配
  • 相比Vue的模版語(yǔ)法,React直接寫(xiě)JS可以獲得更好的靜態(tài)類(lèi)型分析。

雖然Hooks在書(shū)寫(xiě)上有些規(guī)則限制,但是React通過(guò)Hooks相關(guān)lint很好規(guī)避了開(kāi)發(fā)者書(shū)寫(xiě)錯(cuò)誤Hooks的可能性。

同時(shí),所有Hooks有統(tǒng)一useXXX的前綴也為未來(lái)進(jìn)一步的編譯時(shí)分析提供可能。

  • Angular也提供了Angular Language Service[5]
  • TailwindCSS提供了Tailwind CSS IntelliSense
圖片

總結(jié)

這些趨勢(shì)對(duì)于普通業(yè)務(wù)開(kāi)發(fā)同學(xué)來(lái)說(shuō),意味著:未來(lái)會(huì)有越來(lái)越多前端工具提供「編譯工具」、「IDE插件」,現(xiàn)在有「webpack配置工程師」,未來(lái)可能需要團(tuán)隊(duì)專(zhuān)屬「IDE配置工程師」。

對(duì)于想錯(cuò)位競(jìng)爭(zhēng)的前端同學(xué),可以學(xué)習(xí)LSP相關(guān)知識(shí),未來(lái)走大廠(chǎng)基建崗位。

參考資料

[1]Language Servers are the New Frameworks:

https://dev.to/dx/language-servers-are-the-new-frameworks-1lbm

[2]Compilers are the New Frameworks:

https://tomdale.net/2017/09/compilers-are-the-new-frameworks/

[3]Shift Left:

https://devops.com/shift-left-can-you-be-left-out/

[4]Vetur:

https://github.com/vuejs/vetur

[5]Angular Language Service:

https://github.com/angular/vscode-ng-language-service

 

責(zé)任編輯:姜華 來(lái)源: 魔術(shù)師卡頌
相關(guān)推薦

2013-10-21 09:09:14

惡意App安全軟件手機(jī)病毒

2018-08-23 22:00:18

編程語(yǔ)言PythonHTML5

2024-01-24 09:02:45

React版本Next.js

2021-07-16 23:33:08

IT計(jì)算機(jī)薪資

2021-08-03 10:40:24

Kubernetes容器公有云

2024-11-20 16:14:53

2021-03-22 16:02:47

程序員大數(shù)據(jù)軟件

2018-02-28 14:51:05

AI人工智能機(jī)器人

2020-12-25 10:14:26

人工智能AI深度學(xué)習(xí)

2012-12-17 15:02:34

Linux操作系統(tǒng)

2022-05-07 07:47:23

SpringJava開(kāi)發(fā)

2010-04-02 16:28:41

2013-06-14 09:40:34

扁平化設(shè)計(jì)iOS7

2015-12-28 13:37:14

云通信

2022-04-26 07:18:14

Tailwindcscss

2022-11-01 13:30:08

云托管云計(jì)算

2013-06-14 09:41:58

扁平化扁平化設(shè)計(jì)UI設(shè)計(jì)

2009-02-27 13:58:10

2018-03-16 15:31:50

2019-12-22 14:25:09

vivo手機(jī)銷(xiāo)售量
點(diǎn)贊
收藏

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