Bowery為什么放棄Node.js,轉向Go?
英文來自:Moving from Node.js to Go at Bowery
Go 語言自從面世就受到了很多開發者的歡迎,越來越多的項目基于 Go 語言實現,例如非常著名的云計算項目 Docker。而本文作者分享了其從 Node.js 轉到 Go 語言后,整個開發平臺的性能得到顯著提升,并從中總結出 Go 的六大亮點。
以下為譯文:
Bowery 是一個基于云技術的開發平臺,強大的協同處理技術讓即使分散各地的團隊成員都能無縫地進行工作。在 2014 年進行的一次由 Node.js 轉到 Go 的變更中,Bowery 獲得了不錯的性能提升。那么 Go 有哪些亮點值得開發者關注的呢?
強大的跨平臺編程能力
Bowery 團隊指出 Go 能很方便地在不同系統里進行程序編譯,這是他們轉入 Go 的重要原因之一。
作為開發平臺,對 Linux,Windows,OSX 等常見操作系統提供支援是能否吸引開發者的基本要素。在 Go 中,開發者可以針對不同操作系統定義不同的文件來實現相同的功能函數。Bowery 團隊成員 Larz 在創建 Prompt 應用(命令行輸入)時,就是借助 Go 而輕松實現了跨平臺編譯。而開發者要做的,就是設置好不同的環境變量。
快速部署
在 Go 平臺中,從測試環境到真實環境的切換是非常便捷的,因為它無需額外的系統依賴。特別是對于 Bowery 提供給用戶的命令行工具來說,用戶無需安裝 Java,RVM 或者 NPM 等工具便可正常運行。
并發處理
Node.js 在并發處理方面處于劣勢,僅有I/O程序或計時器運行在并發模式。因此如果希望打造一個快速響應的跨程序通訊系統,Go 無疑是更好的選擇。Go 提供了低級別的并發處理基元,例如 mutexes、wait groups 等等。
整合測試框架
如果希望找到一個標準化的整合測試框架,不妨進入 Go 來體驗一番,它內建了完整的測試包,免去了四處尋找的麻煩。如果想編寫一個新的測試套件,只要把_test.go 文件添加到相同的包里就可以了。有關 Go 測試的更多信息,請點擊這里進行訪問。
標準庫
Go 提供了標準庫,標準庫的好處是無需包含其他擴展庫,從而能節省開發時間并且還提高了健壯性。
強大的開發者工作流工具
Go 的工作區界面能幫助建立標準化的工作流,雖然這或許會壓縮了開發的自由度,但得到的是一個結構化的有條理的工作區:該區有三個根目錄,src 用于放置源碼包,pkg 用于放置編譯包,bin 放置的是執行文件。把源碼和依賴文件集中存儲的好處是使團隊成員都有一個相同的文檔結構,而不會出現雜亂的文檔情況。此外 gofmt 能以相同風格對代碼進行格式化,這是一個非常實用的功能。所以一旦需要進行調試,只需集中精力解決當前問題而無需分心處理結構或風格等瑣碎問題。
最后總結幾點 Go 語言學習心得,希望對新接觸 Go 語言的開發者有所幫助:
- 經常訪問官方博客,獲取最新 Go 資訊;
- 經常訪問官方教學文檔;
- 建議瀏覽 Ardan 工作室成員 Bill Kennedy 的 Go 編程博客;
- Go by Example 上有大量的實例,能幫助開拓視野;
- GopherAcademy 有很多有關 Go 最佳實踐的文章。
來自:http://news.cnblogs.com/n/514534/