2007 年 9 月 20 日,關于設計一門全新語言的討論正式開始,這門全新的語言,就是后來的 Go。時至今日,Go 語言已經發布到 1.9 版本,走過了整整十年的歷程。在這十年間,Go 語言兩奪 TIOBE 年度語言大獎(2009/2016),許多初創公司在早期使用 Go 進行開發,包括現在的云計算巨頭 Docker,也由此催生出了 Kubernetes 這樣的項目。在大洋彼岸的中國,Google Trends 顯示 Go 的異常火爆更讓 Go 語言之父感到震驚。而這一切,跟一位名叫許式偉的技術人密不可分。
大家有沒有寫過中間件呢,它是怎么寫的呢?今天給大家分享一下使用Go,如何編寫中間件,供大家參考學習。
Bleve,發音為 BLEH-vee,是一個現代化的 Go 搜索索引庫。Bleve 是使用 Go 編寫的現代化文本索引庫,支持各種常用的搜索索引,包括過濾,排序和分類。
假設你手上有個Go語言編寫的程序,你打算提升它的性能。目前有一些工具可以為此提供幫助。這些工具能幫你發現包括CPU、IO和內存在內多種類型的熱點。所謂熱點,是指那些為了能顯著提升性能而值得你去關注的地方。有時候這些工具還能幫助你發現程序中主要的性能瑕疵。舉個例子,你沒必要每次執行SQL查詢前都對SQL語句進行參數化解析,你可以將這個準備過程在程序啟動時一次完成。再舉個例子,當前某個算法的復雜度是O(N2),但其實存在一個復雜度是O(N)的解決方案。為了能發現這些問題,需要理智地檢查你在優化分析器中獲取到的信息。比如上面提到的第一個問題,你會注意到相當長的時間被花費在了對SQL語句的準備上。
godebug 是一個與眾不同的 Go 程序調試工具,傳統的編譯型語言調試器使用底層系統調用并讀取二進制文件用于調試各類符號。使用起來很麻煩而且很難移植。
回顧過去的一年,我們在技術棧上的最大改變就是從 Node.js 切換到 Go 。我們的聯合創始人,Steve Kaliski, 在 Poptip 把 Node.js 切換成了 Go,可惜他沒有學習到當時的教訓。在用 Node.js 建立了 Bowery 的第一個迭代版本后,我們在2014年2月切換到了 Go,我們的開發和部署速度也因此得到提升。
golang(go語言) 1.4.1 發布了,該版本主要是 bug 修復,修復了 linker、日志、syscall 和 runtime 包的問題,
盡管 Google 被封殺,但該公司主導開發的 Go 語言在中國非常受歡迎,而讓很多人感到不可思議的是,奇虎是一家受爭議的公司,同時還是封殺 Google 的幫兇。
Go 1.5.3 發布,該版本修復了 math/big 軟件包內的一個安全相關的問題,建議所有用戶升級到 Go 1.5.3。
XLSX 是一個 Google go 的庫,用來讀取 xlsx 文件。
多核處理器越來越普及,那有沒有一種簡單的辦法,能夠讓我們寫的軟件釋放多核的威力?答案是:Yes。隨著Golang, Erlang, Scale等為并發設計的程序語言的興起,新的并發模式逐漸清晰。正如過程式編程和面向對象一樣,一個好的編程模式需要有一個極其簡潔的內核,還有在此之 上豐富的外延,可以解決現實世界中各種各樣的問題。本文以GO語言為例,解釋其中內核、外延。
這是一個Go開發的Web框架,用于編寫速度快的網站。
Mangos 是一個用純 Go 語言實現的 ("Scalable Protocols") 協議。這在 Go Channels 中被重度使用,但在內部卻可在缺少 cgo 的情況下進行操作。Mangos 無需依賴第三方庫。Scalable Protocol 的參考實現可看 nanomsg。
早在2009年11月google剛推出go語言的時候,在好奇心的驅使下,就下載體驗過。那時的感覺是語法比較奇怪,相關的資源較少,并且習慣了動態語言Python。雖然它一出來就宣稱是一種為并發能力而生的語言,但是感覺Python已經能夠滿足自己的日常的開發要求,所以并不感覺它有什么優勢。
一個采用Go開發的 Ruby VM 。旨在通過軟件事務內存利用并行性。
goproxy是一個由golang編寫的http代理軟件。包含了兩段代理,代理流程為 瀏覽器->本地代理(加密數據)->遠程代理->真實遠程服務器 。
Flynn 是一個開源的 PaaS 系統,由 Docker 開發。采用 Go 語言編寫,該項目預計在2014年年初面世。 Flynn 使用完全組件化模塊化的設計,任何一個組件和模塊都可以獨立的進行替換。
JAS (JSON API Server) 是一個簡單而強大的Go語言 REST API 框架.
Gopm(Go 包管理工具) 是一個用于搜索、安裝、更新和分享 Go 包的管理工具。
chan是Go Channels 的一個純C實現。