摘要:Bowery是一個基于云技術的開發平臺,強大的協同處理技術讓即使分散各地的團隊成員都能無縫地進行工作。在2014年進行的一次由Node.js轉到Go的變更中,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佳實踐的文章。
英文來自:Moving from Node.js to Go at Bowery
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。