Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
于喜歡寫技術(shù)博客的同學(xué)來(lái)說(shuō),一定對(duì)代碼高亮組件非常熟悉。一款優(yōu)秀的JavaScript代碼高亮插件,將會(huì)幫助你渲染任何一種編程語(yǔ)言,包括一些關(guān)鍵字的著色,以及每行代碼的縮進(jìn)等。今天我們要來(lái)分享一些高性能的JavaScript代碼高亮插件,這些JavaScript代碼高亮插件將非常有效地幫你實(shí)現(xiàn)在網(wǎng)頁(yè)上的代碼編輯和展示。
SyntaxHighlighter 是一款完全基于JavaScript的代碼高亮插件,SyntaxHighlighter 可以對(duì)大部分編程語(yǔ)言進(jìn)行著色渲染,而且代碼高亮的性能也非常不錯(cuò)。SyntaxHighlighter 可以自定義主題文件,在初始化的時(shí)候指定自己喜歡的主題即可。
官方網(wǎng)站:http://alexgorbatchev.com/SyntaxHighlighter/
Google Code Prettify是一款由Google推出的JavaScript代碼高亮插件,Google Code Prettify可以對(duì)C/C++, Java, Python, Ruby, PHP, VisualBasic, AWK, Bash, SQL, HTML, XML, CSS, JavaScript, Makefiles和部分Perl編程語(yǔ)言代碼高亮著色。
官方網(wǎng)站:http://code.google.com/p/google-code-prettify/
highlight.js是一個(gè)用于在任何web頁(yè)面上高亮著色顯示各種示例源代碼語(yǔ)法的JavaScript項(xiàng)目。具有以下特色:
官方網(wǎng)站:https://highlightjs.org/
Prism.JS是目前最為輕量級(jí)的JavaScript代碼高亮插件,他壓縮后只有2KB的大小,Prism.JS也支持大部分流行的編程語(yǔ)言,并且支持多種主題樣式,開(kāi)發(fā)者只需要引用CSS文件和JS文件即可完成。
官方網(wǎng)站:http://prismjs.com/
這款代碼高亮插件是基于jQuery的,同樣也是輕量級(jí)的,渲染速度非常快。同時(shí)jQuery.Syntax還具有wordpress的插件應(yīng)用,對(duì)于個(gè)人博主來(lái)說(shuō),使用wordpress和jQuery.Syntax可以完美實(shí)現(xiàn)0代買的高亮功能。
官方網(wǎng)站:http://www.codeotaku.com/projects/jquery-syntax/index.en
DlHighlight是基于JavaScript的代碼高亮插件,非常簡(jiǎn)單,目前只支持JavaScript, CSS, XML, HTML。
官方網(wǎng)站:http://mihai.bazon.net/projects/javascript-syntax-highlighting-engine
Rainbow 是JavaScript開(kāi)發(fā)的語(yǔ)法高亮工具。被設(shè)計(jì)為輕量級(jí)(壓縮后僅1.4 kb),使用簡(jiǎn)單,可擴(kuò)展。語(yǔ)法高亮主題完全通過(guò)CSS定義。基于正則表達(dá)式實(shí)現(xiàn)。
官方網(wǎng)站:http://craig.is/making/rainbows
這幾個(gè)JavaScript代碼高亮插件都是比較常用的,如果你有更優(yōu)秀的代碼高亮插件,歡迎告訴我們。
本文作者:碼農(nóng)網(wǎng)– 小峰
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯
TML編輯器是一種用于創(chuàng)建、編輯和預(yù)覽HTML(超文本標(biāo)記語(yǔ)言)代碼的工具或應(yīng)用程序。它提供了一個(gè)直觀的界面,使用戶能夠輕松地編寫和設(shè)計(jì)網(wǎng)頁(yè)內(nèi)容。本文主要介紹HTML 常用編輯器(Visual Studio Code、Sublime Text、Atom、Notepad++和Dreamweaver)。
參考文檔:https://www.cjavapy.com/article/3299/
Visual Studio Code(簡(jiǎn)稱VS Code)是一款由微軟開(kāi)發(fā)的跨平臺(tái)源代碼編輯器,支持Windows、macOS和Linux等多種操作系統(tǒng)。它被廣泛用于Web開(kāi)發(fā),包括編輯HTML、CSS、JavaScript等前端技術(shù)。VS Code是一款輕量級(jí)的代碼編輯器,啟動(dòng)迅速,占用資源少。VS Code提供了豐富的擴(kuò)展和插件,可以根據(jù)需求安裝插件來(lái)增強(qiáng)編輯器功能。
1)安裝和配置
官網(wǎng)地址:Visual Studio Code - Code Editing. Redefined
根據(jù)操作系統(tǒng)下載并安裝相應(yīng)版本的VS Code。打開(kāi)VS Code后,可以根據(jù)自己的喜好配置編輯器設(shè)置,如主題、字體等。
2)新建HTML文件
在 VS Code 安裝完成后,選擇" 文件(F)->新建文件(N) ",在新建的文件中輸入以下代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>編程之路(cjavapy.com)</title>
</head>
<body>
<h1>我的第一個(gè)標(biāo)題</h1>
<p>我的第一個(gè)段落。</p>
</body>
</html>
3)編輯HTML文件
在VS Code中,點(diǎn)擊左上角的"文件"菜單,選擇"打開(kāi)文件",或者使用快捷鍵Ctrl+O(Windows)或Cmd+O(macOS)來(lái)打開(kāi)HTML文件。
在編輯器中可以直接修改HTML文件的內(nèi)容。VS Code會(huì)自動(dòng)識(shí)別HTML標(biāo)記,并提供代碼高亮和智能提示功能。編輯完成后,使用快捷鍵Ctrl+S(Windows)或Cmd+S(macOS)來(lái)保存HTML文件。
4)插件推薦
HTML CSS Support:提供對(duì)HTML和CSS的支持,包括代碼片段、自動(dòng)補(bǔ)全等功能。
Live Server:啟動(dòng)一個(gè)本地開(kāi)發(fā)服務(wù)器,實(shí)時(shí)預(yù)覽HTML頁(yè)面的效果。
Prettier:格式化HTML代碼,使代碼結(jié)構(gòu)更整潔。
Auto Close Tag:自動(dòng)閉合HTML標(biāo)簽,提高編碼效率。
Bracket Pair Colorizer:對(duì)成對(duì)的括號(hào)進(jìn)行著色,方便識(shí)別代碼塊。
Sublime Text是一款流行的跨平臺(tái)源代碼編輯器,支持Windows、macOS和Linux等多種操作系統(tǒng)。它被廣泛用于Web開(kāi)發(fā),包括編輯HTML、CSS、JavaScript等前端技術(shù)。
Sublime Text的界面非常簡(jiǎn)潔,沒(méi)有多余的菜單和工具欄,更便于專注于代碼編輯。Sublime Text支持多種編程語(yǔ)言,包括HTML、CSS、JavaScript、Python、Java等。Sublime Text擁有強(qiáng)大的插件系統(tǒng),用戶可以根據(jù)需要安裝插件來(lái)擴(kuò)展編輯器功能。用戶可以自定義快捷鍵、主題、顏色方案等,以滿足個(gè)性化需求。Sublime Text啟動(dòng)迅速,響應(yīng)快速,適合于快速編輯代碼。
1)安裝和配置
官網(wǎng)地址:Sublime Text - Text Editing, Done Right
根據(jù)操作系統(tǒng)下載并安裝相應(yīng)版本的Sublime Text。打開(kāi)Sublime Text后,可以根據(jù)自己的喜好進(jìn)行編輯器設(shè)置,如字體、主題等。
2)新建HTML文件
在Sublime Text 安裝完成后,選擇" File->New File ",在新建的文件中輸入以下代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>編程之路(cjavapy.com)</title>
</head>
<body>
<h1>我的第一個(gè)標(biāo)題</h1>
<p>我的第一個(gè)段落。</p>
</body>
</html>
3)編輯HTML文件
在Sublime Text中,點(diǎn)擊左上角的"File"菜單,選擇"Open File",或者使用快捷鍵Ctrl+O(Windows)或Cmd+O(macOS)來(lái)打開(kāi)HTML文件。在編輯器中可以直接修改HTML文件的內(nèi)容。Sublime Text會(huì)自動(dòng)識(shí)別HTML標(biāo)記,并提供代碼高亮和智能提示功能。編輯完成后,使用快捷鍵Ctrl+S(Windows)或Cmd+S(macOS)來(lái)保存HTML文件。
4)插件推薦
Emmet:提供HTML/CSS快速編寫和自動(dòng)完成功能,可以大大提高編碼效率。
Sublime Linter:對(duì)代碼進(jìn)行實(shí)時(shí)語(yǔ)法檢查,幫助發(fā)現(xiàn)潛在的錯(cuò)誤和警告。
Color Highlighter:對(duì)CSS中的顏色進(jìn)行高亮顯示,方便調(diào)試和修改樣式。
SideBarEnhancements:增強(qiáng)側(cè)邊欄功能,提供更多文件操作選項(xiàng)。
Dreamweaver是由Adobe公司開(kāi)發(fā)的一款全球知名的網(wǎng)頁(yè)設(shè)計(jì)和開(kāi)發(fā)工具。它為開(kāi)發(fā)人員和設(shè)計(jì)師提供了一個(gè)可視化的界面,可以直觀地創(chuàng)建和編輯網(wǎng)頁(yè)內(nèi)容,同時(shí)也支持手動(dòng)編輯代碼。Dreamweaver提供可視化界面,可以直觀地拖拽和編輯網(wǎng)頁(yè)元素,無(wú)需手動(dòng)編寫代碼。除了可視化界面,Dreamweaver也支持手動(dòng)編輯代碼,適合于開(kāi)發(fā)人員和設(shè)計(jì)師。Dreamweaver可在Windows和macOS等多個(gè)平臺(tái)上運(yùn)行。Dreamweaver集成了代碼編輯器、預(yù)覽窗口、文件管理器等功能,提供全面的開(kāi)發(fā)環(huán)境。
1)安裝和配置
官網(wǎng)地址:Website design software | Adobe Dreamweaver
根據(jù)操作系統(tǒng)下載并安裝相應(yīng)版本的Dreamweaver。打開(kāi)Dreamweaver后,,根據(jù)需要進(jìn)行編輯器設(shè)置,如界面語(yǔ)言、字體、代碼顏色等。
2)編輯HTML文件
在Dreamweaver中,點(diǎn)擊左上角的"File"菜單,選擇"New",然后選擇"HTML",即可新建一個(gè)空白的HTML文件。內(nèi)容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>編程之路(cjavapy.com)</title>
</head>
<body>
<h1>我的第一個(gè)標(biāo)題</h1>
<p>我的第一個(gè)段落。</p>
</body>
</html>
使用可視化界面,可以直接拖拽頁(yè)面元素、調(diào)整布局、插入圖片等。若需要手動(dòng)編輯HTML代碼,可以在下方的代碼編輯器中進(jìn)行修改。Dreamweaver會(huì)自動(dòng)提供代碼補(bǔ)全和語(yǔ)法高亮功能。在Dreamweaver中,可以實(shí)時(shí)預(yù)覽網(wǎng)頁(yè)效果,點(diǎn)擊右上角的"Live View"按鈕即可。
3)CSS和JavaScript支持
Dreamweaver也支持CSS和JavaScript的編輯和預(yù)覽,可以幫助創(chuàng)建更豐富的網(wǎng)頁(yè)效果。在編輯器中可以直接編輯CSS樣式和JavaScript代碼,并實(shí)時(shí)查看效果。
4)網(wǎng)頁(yè)上傳和發(fā)布
Dreamweaver集成了FTP功能,可以直接將編輯好的網(wǎng)頁(yè)上傳到服務(wù)器。點(diǎn)擊"Site"菜單,選擇"Manage Sites",配置好站點(diǎn)設(shè)置,即可進(jìn)行上傳和發(fā)布。
5)Dreamweaver模板和庫(kù)
Dreamweaver提供模板和庫(kù)功能,可以保存和復(fù)用常用的網(wǎng)頁(yè)元素和樣式,提高開(kāi)發(fā)效率。
參考文檔:https://www.cjavapy.com/article/3299/
里記錄每周值得分享的 Go 語(yǔ)言相關(guān)內(nèi)容,周日發(fā)布。
歡迎投稿,推薦或自薦文章/軟件/資源等,請(qǐng)提交 issue[1] 。
由于頭條不允許外鏈,文中大量鏈接,可以通過(guò)文末「了解更多」查看。
鑒于大部分人可能沒(méi)法堅(jiān)持把英文文章看完,因此,周刊中會(huì)盡可能推薦優(yōu)質(zhì)的中文文章。優(yōu)秀的英文文章,我們的 GCTT 組織會(huì)進(jìn)行翻譯。
題圖:GopcherCon 2019 合成
刊首語(yǔ)
Go 1.13 在 8 月份還是沒(méi)有發(fā)布,Delay 了。堅(jiān)持了 10 年的按時(shí)發(fā)布,這次沒(méi)有按時(shí),大家覺(jué)得跟 Brad 的老婆生二胎休假有很大關(guān)系,少了核心開(kāi)發(fā)者。Go 1.13 在 Module 上花的精力也很大。
目前 1.13 的 issue 列表:https://github.com/golang/go/milestone/83
Go 1.13 畢竟沒(méi)有帶來(lái)泛型,所以,大部分人對(duì)它的期待其實(shí)沒(méi)有多少。當(dāng)然,也有人很期待,主要在 Module 方面的改進(jìn)和完善。
說(shuō)實(shí)話,堅(jiān)持了這么多年按時(shí)發(fā)布,這個(gè)時(shí)候不能按時(shí)發(fā)布,內(nèi)心還是有一點(diǎn)遺憾,當(dāng)然無(wú)傷大雅!
1、Go 語(yǔ)言調(diào)試器 Delve 發(fā)布 1.3.0[2]
Go 語(yǔ)言實(shí)現(xiàn)的 Go 語(yǔ)言調(diào)試器,發(fā)布 1.3.0,支持 Go 1.13。
2、GoLand 2019.2.1 發(fā)布,JetBrains 打造的 Go 語(yǔ)言 IDE[3]
這是對(duì) GoLand 2019.2 的 bug-fix 更新版本。更新內(nèi)容包括對(duì) UI 的修復(fù)、對(duì)自動(dòng)補(bǔ)全代碼功能的改進(jìn)、對(duì)導(dǎo)入功能的優(yōu)化、改進(jìn) SQL 注入功能以及改進(jìn)代碼格式化工具等。
另外,GoLand 公布了 2019.3 Roadmap[4],有望引入遠(yuǎn)程開(kāi)發(fā)功能。
3、GKTemplate v0.0.4,采用 Go 開(kāi)發(fā)的 DedeCMS 模板解析器[5]
GKTemplate 是一個(gè) Go 語(yǔ)言開(kāi)發(fā)的模板引擎,由于 Go 語(yǔ)言內(nèi)置的模板引擎自由度過(guò)高,導(dǎo)致開(kāi)發(fā)使用相對(duì)比較困難,對(duì)界面模板制作要求會(huì)比較高,GKTemplate 是一款基于標(biāo)簽、屬性機(jī)制的模板引擎,在犧牲部分自由度、性能的前提下,優(yōu)化模板語(yǔ)義機(jī)制,使得開(kāi)發(fā)、制作模板變得更為輕松簡(jiǎn)單。
4、go-fastdfs v1.3.2 發(fā)布,修正跨域 options 方法[6]
go-fastdfs是一個(gè)基于http協(xié)議的分布式文件系統(tǒng),它基于大道至簡(jiǎn)的設(shè)計(jì)理念,一切從簡(jiǎn)設(shè)計(jì),使得它的運(yùn)維及擴(kuò)展變得更加簡(jiǎn)單,它具有高性能、高可靠、無(wú)中心、免維護(hù)等優(yōu)點(diǎn)。
項(xiàng)目 GitHub 地址:https://github.com/sjqzhang/go-fastdfs
5、Consul 1.6 GA 發(fā)布[7]
Consul 是 HashiCorp 公司推出的開(kāi)源工具,也是主流的用于實(shí)現(xiàn)分布式系統(tǒng)服務(wù)發(fā)現(xiàn)與配置的方案。HashiCorp 對(duì) Consul 的介紹是一個(gè)多云服務(wù)網(wǎng)絡(luò)平臺(tái),用于在跨任何運(yùn)行時(shí)平臺(tái)和公共云或私有云的場(chǎng)景連接和保護(hù)服務(wù)。
本次更新主要集中在 Consul Connect(為其增加了一些主要新特性)和 Consul 的服務(wù)網(wǎng)格解決方案方面,此外還有一些改進(jìn)和錯(cuò)誤修復(fù)。
6、Go 語(yǔ)言開(kāi)發(fā)工具 LiteIDE X36.1 發(fā)布[8]
在目錄管理窗口中加入了文件復(fù)制/粘貼功能,修復(fù)了以 _ 開(kāi)始符號(hào)查找錯(cuò)誤,更新了 gotools & gocode。
7、Gorilla WebSocket: Go 語(yǔ)言的 WebSocket 實(shí)現(xiàn),發(fā)布 1.4.1 版本[9]
這次版本主要修復(fù) DoS 的問(wèn)題,建議升級(jí)。
1、如何閱讀Golang的源碼?[10]
學(xué)習(xí)go語(yǔ)言的過(guò)程中,覺(jué)得源碼寫的很棒,但是有點(diǎn)晦澀,該怎么閱讀?本文給出建議。
2、在循環(huán)中 append map 到 map slice,map slice 中的數(shù)據(jù)全部為最后一次 append 的數(shù)據(jù)[11]
map 是引用類型,即使 slice 通過(guò) append 賦值了多份 map 變量,但是其內(nèi)部指向是同一個(gè)地址。
3、golang 等值比較是不是直接比較地址呢?[12]
首先要說(shuō) Go 的等值比較的是值,而不是地址。Go 中變量的可比較類型是內(nèi)置的,所有基本類型都可以進(jìn)行比較,另外 interface 和 struct 也可以比較。兩個(gè)變量可比較的提前必須是相同類型。但有一點(diǎn)需要說(shuō)明的是,interface 是不確定的類型,所有它不但會(huì)比較值,還會(huì)比較具體的類型。
4、golang 中如何禁止一個(gè)導(dǎo)出類型直接構(gòu)造,必須通過(guò)new函數(shù)來(lái)構(gòu)造?[13]
其他的 oo 語(yǔ)言實(shí)現(xiàn)題主要求是非常簡(jiǎn)單的,只要定義相應(yīng)的私有成員屬性并通過(guò)構(gòu)造函數(shù)控制輸入的參數(shù)即可。
那么 Go 該如何實(shí)現(xiàn)呢?其實(shí)也很簡(jiǎn)單,思路與 oo 是類似的。只是我們把 oo 語(yǔ)言中的構(gòu)造函數(shù)換成了 Go 中的工廠方法,私有變量變成了 Go 包級(jí)別的私有成員屬性。我們只需要通過(guò)定義指定的可導(dǎo)出的工廠方法創(chuàng)建實(shí)例即可。
5、Golang中 fmt.Println 和直接 println 有什么區(qū)別?[14]
println 主要是 Go 自己使用,比如源碼、標(biāo)準(zhǔn)庫(kù)等,而 fmt 才是給 Go 開(kāi)發(fā)人員使用的。而且要提的是 println 不能保證兼容性,可能在未來(lái)的某一天就不存在了,但 fmt 中的函數(shù)就不存在著這樣的問(wèn)題。
當(dāng)然,兩者的使用和效果上也是有區(qū)別的,如 println 輸出是到標(biāo)準(zhǔn)錯(cuò)誤的,而非標(biāo)準(zhǔn)輸出。
此外,Go 語(yǔ)言中文網(wǎng)微信群有人提出了一個(gè)詭異的問(wèn)題,我為知識(shí)星球用戶做了詳細(xì)的分析解答:由群里討論的關(guān)于 println 和 fmt.Println “詭異”問(wèn)題的思考總結(jié)[15]。
1、使用 Go Modules(模塊)進(jìn)行依賴項(xiàng)遷移[16]
本篇文章是 Go Modules 系列官方博客文章的第 2 部分。第 1 部分請(qǐng)參閱:Go Modules 的使用方法(中文翻譯版)[17]。
2、GCTT 出品 | Go 的調(diào)度器追蹤
我喜歡 Go 語(yǔ)言的一個(gè)原因就是因?yàn)樗梢陨煞治龊驼{(diào)試信息。當(dāng)程序在執(zhí)行的時(shí)候 Go 有一個(gè)特殊的環(huán)境變量 GODEBUG,它在運(yùn)行階段可以生成調(diào)試信息。你可以獲取程序回收器和調(diào)度器的概要信息以及詳細(xì)的信息。更主要的是你不需要添加任何的額外工作重新編譯就可以完成調(diào)試
在這篇文章里,我將通過(guò)一個(gè)簡(jiǎn)單的 Go 程序演示如果使用調(diào)度跟蹤信息。如果你對(duì)調(diào)度器有一定的了解那么它對(duì)你是用的。
3、使用 GitHub Actions 自動(dòng)化構(gòu)建 Golang 應(yīng)用[18]
GitHub Actions 是前段時(shí)間推出的自家的自動(dòng)化構(gòu)建工具。允許構(gòu)建一個(gè)完整的 CI/CD Pipeline,與 GitHub 生態(tài)系統(tǒng)深度集成。目前還未開(kāi)放,開(kāi)通過(guò) https://github.com/features/actions/signup 申請(qǐng)。本文介紹用該功能構(gòu)建 Go 應(yīng)用。
對(duì) GitHub Actions 感興趣的進(jìn)一步看看此文:使用Github Actions教程[19]。這里還有一篇英文文章:使用 GitHub Actions 對(duì)Go項(xiàng)目持續(xù)集成[20]。
4、如何在 Golang API 中避免內(nèi)存泄漏?[21]
建議你在將 Golang API 投入生成之前閱讀此文,此文是基于真實(shí)的線上問(wèn)題修復(fù)經(jīng)歷,如有巧合,純屬踩雷!
5、go 學(xué)習(xí)筆記之萬(wàn)萬(wàn)沒(méi)想到寵物店竟然催生出面向接口編程?[22]
講故事的方式講解面向接口編程。
6、Hi, 使用多年的 go pprof 檢查內(nèi)存泄漏的方法居然是錯(cuò)的?![23]
本文介紹一下 Go pprof 工具查找內(nèi)存泄漏的一個(gè)不太常用的方法。
7、明白了,原來(lái) Go web 框架中的中間件都是這樣實(shí)現(xiàn)的[24]
這篇文章想談?wù)?Go 的裝飾器模式、pipeline(filter)模式以及常見(jiàn) web 框架中的中間件的實(shí)現(xiàn)方式。
8、Golang實(shí)現(xiàn)單機(jī)百萬(wàn)長(zhǎng)連接服務(wù) - 美圖的三年優(yōu)化經(jīng)驗(yàn)
美圖長(zhǎng)連接服務(wù)歷時(shí)三年,在內(nèi)存優(yōu)化上積累比較豐富的實(shí)踐經(jīng)驗(yàn),本文將會(huì)介紹我們團(tuán)隊(duì)這些年在內(nèi)存優(yōu)化道路上做的一些嘗試。
9、Go 語(yǔ)言測(cè)試驅(qū)動(dòng)開(kāi)發(fā)[25]
Go 語(yǔ)言對(duì)測(cè)試的原生支持以及完善的測(cè)試類庫(kù)框架使得 TDD 的實(shí)施成本相對(duì)較低,這相當(dāng)于放大了 TDD 的收益。在此向廣大 gopher 們安利一波,說(shuō)不定你也會(huì)愛(ài)上它。本篇將從實(shí)際業(yè)務(wù)視角觸發(fā),通過(guò)一個(gè)示例來(lái)演示如何運(yùn)用TDD來(lái)構(gòu)建我們的Go程序。
10、Go 組件學(xué)習(xí)——database/sql 數(shù)據(jù)庫(kù)連接池你用對(duì)了嗎[26]
通過(guò)實(shí)際 case 講解連接池的一些概念和使用。
11、Go 內(nèi)存泄漏?不是那么簡(jiǎn)單![27]
最近遇到一個(gè)Go內(nèi)存不釋放的問(wèn)題,記錄一下測(cè)試和調(diào)研的情況。我到不把它歸為Go內(nèi)存泄漏的問(wèn)題,因?yàn)樗鸵话愕膬?nèi)存泄漏的方式不同。
12、golang goroutine 和 線程[28]
本文由進(jìn)程、線程進(jìn)而引出 goroutine。這些操作系統(tǒng)相關(guān)的概念,我們都是需要掌握的。
13、Go進(jìn)階:如何開(kāi)發(fā)多彩動(dòng)感的終端 UI 應(yīng)用[29]
終端(Terminal)是計(jì)算機(jī)系統(tǒng)的輸入輸出設(shè)備,由于歷史的原因終端這個(gè)概念非常混亂,終端的發(fā)展經(jīng)歷了字符終端、圖形終端 和 網(wǎng)絡(luò)終端 三個(gè)階段。如果你酷炫的終端 UI 有要求,此文很適合你。
14、Go語(yǔ)言學(xué)習(xí)——如何實(shí)現(xiàn)一個(gè)過(guò)濾器[30]
基于 Go 語(yǔ)言造輪子實(shí)現(xiàn)一個(gè)過(guò)濾器的雛形,通過(guò)實(shí)現(xiàn)一個(gè)相對(duì)優(yōu)雅可擴(kuò)展的過(guò)濾器熟悉了 type 的用法,Context.WithValue 的作用。
15、通過(guò)布局屬性來(lái)減少結(jié)構(gòu)體尺寸(英文)[31]
關(guān)于在定義結(jié)構(gòu)時(shí)內(nèi)存如何工作的快速但有用的提示。
1、Lute: 一款結(jié)構(gòu)化的 Markdown 引擎,為未來(lái)而構(gòu)建[32]
完整實(shí)現(xiàn)了最新的 GFM[33]/CommonMark[34] 規(guī)范,對(duì)中文語(yǔ)境支持更好。Go 語(yǔ)言中文網(wǎng)計(jì)劃將網(wǎng)站改為使用它。
2、script: 在 Go 中輕松編寫類似 shell 的腳本[35]
如果不喜歡 shell 腳本,不妨試試這個(gè)。
3、migrator: 數(shù)據(jù)庫(kù)遷移工具[36]
特色:
4、ale: Go 實(shí)現(xiàn)的 Lisp 環(huán)境[37]
愛(ài)好 Go 的有會(huì) Lisp 的嗎?
5、go-prompt: 在 Go 中構(gòu)建強(qiáng)大的交互式提示,受 python-prompt-toolkit 的啟發(fā)[38]
一個(gè)用于構(gòu)建強(qiáng)大的交互式提示的庫(kù),受到 python-prompt-toolkit 的啟發(fā),可以更輕松地使用 Go 構(gòu)建跨平臺(tái)的命令行工具。
6、chroma: 純 Go 語(yǔ)言實(shí)現(xiàn)的通用語(yǔ)法高亮庫(kù)[39]
Chroma 采用源代碼和其他結(jié)構(gòu)化文本,并將其轉(zhuǎn)換為語(yǔ)法高亮 HTML,ANSI 色文本等。Chroma主要基于 Pygments,包括 Pygments 詞法分析器和樣式的翻譯器。可見(jiàn),chroma 不僅可以用于 HTML 頁(yè)面語(yǔ)法的高亮,還支持終端的高亮。支持的語(yǔ)言還是很全的。
7、godocc: 帶有顏色的 godoc 工具[40]
接受 doc 使用的所有參數(shù)和標(biāo)志。Godocc 只是 go doc 工具的簡(jiǎn)單包裝器。界面很美觀!
8、imaging: 基本圖像處理功能庫(kù)[41]
有圖像?想要在 Go 中調(diào)整大小、旋轉(zhuǎn)或裁剪它們嗎?試試這個(gè)庫(kù)。
原圖:
各種處理結(jié)果:
更多其他效果,看看該庫(kù)的首頁(yè)。
9、busgo/forest: 分布式任務(wù)調(diào)度平臺(tái)[42]
by @busgo 推薦。#issue2[43]
1、GopherCon 2019 大會(huì)演講視頻全集[44]
視頻在 youtube 上。lightning talk視頻在這里:https://www.youtube.com/playlist?list=PL2ntRZ1ySWBedT1MDWF4xAD39vAad0DBT 。有人搬到國(guó)內(nèi) B 站了,可以在 B 站觀看 https://www.bilibili.com/video/av65679861。這里還有英文文字版:https://about.sourcegraph.com/go/
2、Go 微服務(wù)框架 go-micro 系列教程[45]
微服務(wù)很火,微服務(wù)的本質(zhì)是讓專業(yè)的人做專業(yè)的事情,做出更好的東西。這個(gè)系列講解 go-micro 構(gòu)建微服務(wù)。目前更新到 2.3 章節(jié)。
3、gostringsr2: Python 實(shí)現(xiàn)的用于 Go 的逆向工程[50]
極客可以了解下。這里有一篇介紹的英文文章:https://carvesystems.com/news/reverse-engineering-go-binaries-using-radare-2-and-python/ 。
4、yeetgif: Go 語(yǔ)言實(shí)現(xiàn)的 GIF 效果的 CLI[51]
可組合 GIF 效果的 CLI,具有合理的默認(rèn)值。專為 Slack/Discord 定制 emoji 表情。很有趣的一個(gè)工具。
5、Go 面試每天一篇(第 9 天)
連續(xù)堅(jiān)持是一件很難的事情,期待作者能堅(jiān)持更新,作者的公眾號(hào)也可以關(guān)注一波。面試題是大家永恒關(guān)注的話題,因此,Go 語(yǔ)言中文網(wǎng)開(kāi)啟了一個(gè)項(xiàng)目,專門用來(lái)收集、解答各種 Go 語(yǔ)言相關(guān)的筆試、面試題,歡迎你提 issue。項(xiàng)目地址:Go-Interview-QA[52]。
6、go-web-app: 用于設(shè)置 Go WebAssembly 前端應(yīng)用程序的 CLI[53]
這個(gè)周刊每周日發(fā)布,同步更新在Go語(yǔ)言中文網(wǎng)[54]、微信公眾號(hào)[55] 和 [56]。
微信搜索"Go語(yǔ)言中文網(wǎng)"或者掃描二維碼,即可訂閱。
[1]
提交 issue: https://github.com/polaris1119/golangweekly/issues
[2]
Go 語(yǔ)言調(diào)試器 Delve 發(fā)布 1.3.0: https://studygolang.com/topics/9989
[3]
GoLand 2019.2.1 發(fā)布,JetBrains 打造的 Go 語(yǔ)言 IDE: https://www.oschina.net/news/109407/goland-2019-2-1-released
[4]
2019.3 Roadmap: https://www.oschina.net/news/109439/goland-2019-3-roadmap
[5]
GKTemplate v0.0.4,采用 Go 開(kāi)發(fā)的 DedeCMS 模板解析器: https://www.oschina.net/news/109395/gktemplate-0-0-4-released
[6]
go-fastdfs v1.3.2 發(fā)布,修正跨域 options 方法: https://www.oschina.net/news/109466/go-fastdfs-1-3-2-released
[7]
Consul 1.6 GA 發(fā)布: https://www.oschina.net/news/109463/consul-1-6-general-availability
[8]
Go 語(yǔ)言開(kāi)發(fā)工具 LiteIDE X36.1 發(fā)布: https://www.oschina.net/news/109448/liteide-x36-1-released
[9]
Gorilla WebSocket: Go 語(yǔ)言的 WebSocket 實(shí)現(xiàn),發(fā)布 1.4.1 版本: https://github.com/gorilla/websocket/releases/tag/v1.4.1
[10]
如何閱讀Golang的源碼?: https://studygolang.com/articles/23154
[11]
在循環(huán)中 append map 到 map slice,map slice 中的數(shù)據(jù)全部為最后一次 append 的數(shù)據(jù): https://segmentfault.com/q/1010000019881129/a-1020000019949131
[12]
golang 等值比較是不是直接比較地址呢?: https://segmentfault.com/q/1010000019940462/a-1020000019941598
[13]
golang 中如何禁止一個(gè)導(dǎo)出類型直接構(gòu)造,必須通過(guò)new函數(shù)來(lái)構(gòu)造?: https://www.zhihu.com/question/333771024/answer/741498087
[14]
Golang中 fmt.Println 和直接 println 有什么區(qū)別?: https://www.zhihu.com/question/335186436/answer/750846252
[15]
由群里討論的關(guān)于 println 和 fmt.Println “詭異”問(wèn)題的思考總結(jié): https://studygolang.com/topics/9992
[16]
使用 Go Modules(模塊)進(jìn)行依賴項(xiàng)遷移: https://studygolang.com/articles/23133
[17]
Go Modules 的使用方法(中文翻譯版): https://studygolang.com/articles/19334
[18]
使用 GitHub Actions 自動(dòng)化構(gòu)建 Golang 應(yīng)用: https://www.qikqiak.com/post/use-github-actions-build-go-app/
[19]
使用Github Actions教程: https://tech.mojotv.cn/go/golang-github-actions
[20]
使用 GitHub Actions 對(duì)Go項(xiàng)目持續(xù)集成: https://onepage.nopub.io/p/Using-GitHub-Actions-with-Go-2ca9744b531f4f21bdae9976d1ccbb58
[21]
如何在 Golang API 中避免內(nèi)存泄漏?: https://studygolang.com/articles/23172
[22]
go 學(xué)習(xí)筆記之萬(wàn)萬(wàn)沒(méi)想到寵物店竟然催生出面向接口編程?: https://studygolang.com/articles/23169
[23]
Hi, 使用多年的 go pprof 檢查內(nèi)存泄漏的方法居然是錯(cuò)的?!: https://colobu.com/2019/08/20/use-pprof-to-compare-go-memory-usage/
[24]
明白了,原來(lái) Go web 框架中的中間件都是這樣實(shí)現(xiàn)的: https://colobu.com/2019/08/21/decorator-pattern-pipeline-pattern-and-go-web-middlewares/
[25]
Go 語(yǔ)言測(cè)試驅(qū)動(dòng)開(kāi)發(fā): https://juejin.im/post/5d653d90f265da039d32dda9
[26]
Go 組件學(xué)習(xí)——database/sql 數(shù)據(jù)庫(kù)連接池你用對(duì)了嗎: https://juejin.im/post/5d624abde51d45621655352c
[27]
Go 內(nèi)存泄漏?不是那么簡(jiǎn)單!: https://colobu.com/2019/08/28/go-memory-leak-i-dont-think-so/
[28]
golang goroutine 和 線程: https://www.jianshu.com/p/588c6dceb5cf
[29]
Go進(jìn)階:如何開(kāi)發(fā)多彩動(dòng)感的終端 UI 應(yīng)用: https://tech.mojotv.cn/tutorial/golang-term-tty-pty-vt100
[30]
Go語(yǔ)言學(xué)習(xí)——如何實(shí)現(xiàn)一個(gè)過(guò)濾器: https://www.cnblogs.com/bigdataZJ/p/go-filter.html
[31]
通過(guò)布局屬性來(lái)減少結(jié)構(gòu)體尺寸(英文): https://preslav.me/2019/08/27/reduce-struct-size-by-laying-out-attributes-accordingly/
[32]
Lute: 一款結(jié)構(gòu)化的 Markdown 引擎,為未來(lái)而構(gòu)建: https://github.com/b3log/lute
[33]
GFM: https://github.github.com/gfm/
[34]
CommonMark: https://commonmark.org/
[35]
script: 在 Go 中輕松編寫類似 shell 的腳本: https://github.com/bitfield/script
[36]
migrator: 數(shù)據(jù)庫(kù)遷移工具: https://github.com/lopezator/migrator
[37]
ale: Go 實(shí)現(xiàn)的 Lisp 環(huán)境: https://github.com/kode4food/ale
[38]
go-prompt: 在 Go 中構(gòu)建強(qiáng)大的交互式提示,受 python-prompt-toolkit 的啟發(fā): https://github.com/c-bata/go-prompt
[39]
chroma: 純 Go 語(yǔ)言實(shí)現(xiàn)的通用語(yǔ)法高亮庫(kù): https://github.com/alecthomas/chroma
[40]
godocc: 帶有顏色的 godoc 工具: https://github.com/inancgumus/godocc
[41]
imaging: 基本圖像處理功能庫(kù): https://github.com/disintegration/imaging
[42]
busgo/forest: 分布式任務(wù)調(diào)度平臺(tái): https://studygolang.com/p/busgo
[43]
#issue2: https://github.com/polaris1119/golangweekly/issues/2
[44]
GopherCon 2019 大會(huì)演講視頻全集: https://www.youtube.com/playlist?list=PL2ntRZ1ySWBdDyspRTNBIKES1Y-P__59_
[45]
Go 微服務(wù)框架 go-micro 系列教程: https://www.jianshu.com/p/41005492033f
[46]
golang微服務(wù)框架go-micro 入門筆記1.搭建 go-micro環(huán)境: https://www.jianshu.com/p/41005492033f
[47]
golang微服務(wù)框架go-micro 入門筆記2.1 micro工具之micro api: https://www.jianshu.com/p/5c9e876ac467
[48]
golang微服務(wù)框架go-micro 入門筆記2.2 micro工具之微應(yīng)用利器micro web: https://www.jianshu.com/p/7821d240b109
[49]
golang微服務(wù)框架go-micro 入門筆記2.3 micro工具之消息訂閱和發(fā)布: https://www.jianshu.com/p/cd2e80de45e7
[50]
gostringsr2: Python 實(shí)現(xiàn)的用于 Go 的逆向工程: https://github.com/CarveSystems/gostringsr2
[51]
yeetgif: Go 語(yǔ)言實(shí)現(xiàn)的 GIF 效果的 CLI: https://github.com/sgreben/yeetgif
[52]
Go-Interview-QA: https://github.com/studygolang/Go-Interview-QA
[53]
go-web-app: 用于設(shè)置 Go WebAssembly 前端應(yīng)用程序的 CLI: https://github.com/talentlessguy/go-web-app
[54]
Go語(yǔ)言中文網(wǎng): https://studygolang.com/go/weekly
[55]
微信公眾號(hào): https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91
[56]
: https://www.toutiao.com/c/user/59903081459/#mid=1586087918877709
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。