vscode 整理————開篇之力(一)

敖毛毛 發表於 2021-11-28
VSCode

前言

作為一個開發為什麼對一個vscode 這樣的工具進行整理呢,因為vscode 非常的常用,它包含很多編輯器共同有的特徵,這些特徵幫助我們瞭解其他編輯器。

這裡可能就有人疑問了,我們需要去非常的關注去了解一個編輯器嘛,不應該去關係併發問題嗎。

對於這個問題現在的我是不疑惑的,現在動不動廣告就是什麼什麼技術怎麼樣的,什麼千萬級併發,什麼大資料啊。

有一個東西叫做網際網路造詞,以前難道就沒有大資料嗎?難道已經就沒有人處理大資料嗎,也是有的,以前好像就叫資料處理吧,然後就開始造詞大量的進入ppt了。

同樣千萬級併發,一言不和就是千萬級併發的,給你一臺一核一G併發一個看一下。資料併發不僅僅涉及到開發,還設計到運維和測試,他們能夠得出我們一臺機器對於我們某個業務的承載量,需要多少機器,提升曲線是什麼。

現在很多廣告,或者為了吸引眼球的標題,往往給人一種設計了一款千萬級的應用,只差一個程式設計師的感覺。

其實個人覺得程式碼的優化空間並不大,只有寫的不過分的話,主要還是業務設計的優化空間大,複雜業務可以拆分成多個簡單的業務,那麼這些業務如果能拆分開負載到不同機器上,那麼可以橫向擴充套件來滿足需求是比較好的,橫向擴充套件上升也是有曲線的。還有一個是資料庫設計問題。

併發問題同樣看的是業務的複雜性,比如說解壓業務,併發上萬就很了不起了。那你要是說log業務,那麼複雜度比較低,那麼就是比較好處理的了。

似乎有點偏離主題了,前面提及的這些僅僅是為了說明一下或許不是那些聽起來高大上的能幫助自己更好的工作,或許是一些我們不是那麼關心的事情。

正文

vscode 是一款免費開源的輕量級編輯器,為什麼說其輕量呢?因為其沒有針對某一門語言進行設計,所以安裝狀態,它是輕量的,我們需要安裝我們所需要的外掛,然後啟用,那麼輕鬆就能獲取intelisentse,debug 和git 倉庫支援。

vscode 基於electron 進行開發,那麼electron 是跨平臺的,所以vscode 也是跨平臺的。

elecrtron 接觸過一段時間,感覺可以替換一下展示類的桌面開發,因為其開發效率還是很高的,然後生態還是可以的。當時還開發過能夠提示開發效率的工具。

https://www.electronjs.org/ 這是electron 地址,更新比較快把,2018年的時候還是5版本,現在都14或者15了。文件也不錯,當然有一些坑了,大部分可以看原始碼解決一下,如果真的是bug,那麼就要思考一下是否拉一個分支,該一下用上去了。

electron 開源地址: https://github.com/electron/electron

monaco editor 是vscode 的核心元件,是基於瀏覽器的程式碼編輯器。那麼知道這個有什麼用呢? 因為monaco editor 是開源的,我們也可以基於這個編輯器,製作相應的工具。可能有人說了vscode 不就行嗎?

為啥還要開發工具呢?因為有的公司的是允許外人開發的,公司提供開發環境,在該環境下使用者允許的程式碼,才能在該公司的平臺上完美執行。

同樣vscode 擁有利用LSP提供了諸多語言的自動補全、定義跳轉、程式碼格式化等於變成語言相關的問題。

同樣vscode 體用debug adapter protocol 協議來提供對諸多語言的支援。

那麼vscode解決了語言開發問題,語言除錯問題,同樣一個還差一個終端工具,這個終端工具就是Xterm.js。

Xterm.js 支援業界主流的瀏覽器,包括Chrome、Edge、FireBox和Safari。Xterms.js 可以與Electron開發的應用進行無縫整合。

xterm.js github 地址:https://github.com/xtermjs/xterm.js,有興趣可以看一下。

vscode 是用typescript開發的,tyepscript和c# 的語法非常像,這是為什麼,畢竟是同一個設計師————anders,所以作為c# 開發者開發typescript幾乎只要過一遍語法就好,當然了同樣需要一些js或者nodejs的基礎。

知道了vscode 的一些開發元件或者一些思想,那麼自己也能開發一些小工具。

下一節,介紹一些vscode的主要功能,或者編輯器的主要功能和用法。