Go語言程式設計有哪些利與弊?程式設計時如何判斷是否應該用Go?

有隻黑白貓發表於2020-01-06

點選這裡,檢視使用Go語言程式設計的弊端及何時使用Go語言程式設計等重要內容


我們喜歡 Go 語言的地方

近年來,Go 語言的使用量呈爆炸式增長。似乎每個初創公司都將它用於後端系統。開發人員認為它如此廣受歡迎,背後的原因有很多。

Go 語言速度非常快 Go 語言是一門非常快速的程式語言。因為 Go 語言是編譯成機器碼的,因此,它的表現自然會優於那些解釋性或具有虛擬執行時的程式語言。Go 程式的編譯速度也非常快,並且生成的二進位制檔案非常小。我們的 API 在短短几秒鐘內就編譯完畢,生成的可執行檔案區區只有 11.5MB 這麼小。

易於掌握 與其他語言相比,Go 語言的語法很簡單,很容易掌握。你完全可以把 Go 語言的大部分語法記在腦子裡,這意味著你並不需要花很多時間來查詢東西。Go 語言也非常乾淨易讀。非 Go 語言的程式設計師,尤其是那些習慣於 C 風格語法的程式設計師,就可以閱讀 Go 程式程式碼,並且能夠理解發生什麼事。

靜態型別定義語言 Go 語言是一種強大的靜態型別定義語言。有基本型別,如 int、byte 和 string。也有結構型別。與任何強型別語言一樣,型別系統允許編譯器幫助捕獲整個類的錯誤。Go 語言還具有內建的列表和對映型別,而且它們也易於使用。

介面型別 Go 語言有介面型別,任何結構都可以簡單地通過實現介面的方法來滿足介面。這允許你解耦程式碼中的依賴項。然後,你可以在測試中模擬你的依賴項。通過使用介面,你可以編寫更加模組化的可測試程式碼。Go 語言還具有頭等函式,這使得開發人員以更實用的方式編寫程式碼成為可能。

標準庫 Go 語言有一個相當不錯的標準庫。它提供了方便的內建函式,用於處理基本型別。有些包可以讓你輕鬆構建一個 Web 伺服器、處理 I/O、使用加密技術以及操作原始位元組。標準庫提供的 JSON 序列化和反序列化非常簡單。通過使用“tags”,你可以在 struct 欄位旁邊指定 JSON 欄位名。

測試支援 測試支援內建在標準庫中,不需要額外的依賴。如果你有個名為 thing.go 的檔案,請在另一個名為 thing_test.go 的檔案中編寫測試,並執行“go test”。Go 就將快速執行這些測試。

靜態分析工具 Go 語言的靜態分析工具眾多且強大。一種特別的工具是 gofmt,它根據 Go 的建議風格對程式碼進行格式化。這可以規範專案的許多意見,讓團隊獎經理集中在程式碼所做的工作上。我們對每個構建執行 gofmt、golint 和 vet,如果發現任何警告的話,則構建將會失敗。

垃圾收集 在設計 Go 語言時,有意將記憶體管理設計得比 C 和 C++ 更容易。動態分配的物件是垃圾收集。Go 語言使指標的使用更加安全,因為它不允許指標運算。還提供了使用值型別的選項。

更容易的併發模型 雖然併發程式設計從來就不是一件易事,但 Go 語言在併發程式設計要比其他語言更容易。建立一個名為“goroutine”的輕量級執行緒,並通過“channel”與它進行通訊幾乎是非常簡單的事情,至於更為複雜的模型,也是有可能能夠實現的。

我們不喜歡 Go 語言的地方

正如我們前面討論過的,Go 語言確實是一門優秀的語言。它有一個乾淨的語法,執行速度也很快速。它還有很多優點。但是,程式語言的全部並不僅僅是指它的語法。下面是我們遇到的一些問題。


關鍵字:GO語言   程式語言 

相關文章