中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

使用全新的Joy編譯器將Go轉換為JavaScript

發(fā)布于:2021-01-15 14:42:33

0

332

0

Go JavaScript 編譯器

全新的Joy編譯器使用可在每種瀏覽器中使用的JavaScript,將Go的經(jīng)典設計帶到了前端。使用此簡單的Go編譯器,代碼只需編寫一次即可在任何地方讀取。

Joy編譯器承諾通過一個非常簡單的工具將Go的簡潔性帶給JavaScript?,F(xiàn)在,您可以使用Go的穩(wěn)定性,但仍然使用JavaScript執(zhí)行,使構建大型web應用程序變得越來越容易。

至少可以說,編寫和維護持久的JavaScript是非常耗時的。多虧了JavaScript語言在過去幾年里的巨大變化,主要的突破性變化以及隨之而來的工具和庫問題。雖然JavaScript不會有任何發(fā)展,但它與Joy編譯器一起使用變得簡單多了。

歡樂世界

基于這一理論,類型化代碼更容易維護和更新,更少的語法比更漂亮的語法更好,Joy翻譯成JavaScript。因此,您可以使用簡單的Go編寫代碼,但仍然可以使用非常有用的JavaScript進行部署。

Joy是一個快速的1:1的JavaScript編譯器,旨在從慣用的Go創(chuàng)建簡潔的JavaScript。它使用Go的靜態(tài)分析工具來消除無用代碼,并創(chuàng)建適用于所有瀏覽器的JavaScript。它包含一個簡單的宏系統(tǒng),用于與現(xiàn)有JavaScript集成。Joy還對React和Preact等虛擬DOM框架提供了一流的支持。

Joy是GitHub上的開源軟件,提供零成本類型的DOM和虛擬DOM包。它只在需要的時候提供最小的運行時,并盡可能避免未使用的代碼。Joy擁護使用標準庫和工具。

它是如何工作的

Joy編譯器有5個步驟:解析、索引、繪圖、翻譯和匯編。

解析將Go代碼轉換為抽象語法樹(AST)。這主要是使用Go團隊提供的x/tools/loader庫來完成的。

索引處理這些Go ast,使我們能夠回答有關程序的深層次問題。

Graph使用索引創(chuàng)建依賴關系圖。該圖按拓撲順序排序并進行修剪,結果產(chǎn)生一個包含程序中使用的函數(shù)、變量、結構和接口的節(jié)點列表。

Translate使用圖中的節(jié)點和索引中的知識將Go AST翻譯成JavaScript AST。

Assemble接受生成的JavaScript AST并生成JavaScript代碼。

下面是一個簡單的睡眠路徑經(jīng)過Joy編譯器后的樣子。

package main   import (   "time" )   func main() {   time.Sleep(1 * time.Second) }

現(xiàn)在看看它在JavaScript中的樣子:

(function() {   var pkg = {};   pkg["58-time-sleep"] = (function() {     async function main () {       await new Promise(function(resolve, reject) { setTimeout(resolve, 1 * 1000) })     };     return {       main: main     };   })();   return pkg["58-time-sleep"].main(); })()