- Go程序開發實戰寶典
- 穆旭東等編著
- 659字
- 2023-10-27 18:19:56
1.1.4 特點與優勢
Go語言能夠保證既能達到靜態編譯語言的安全和性能,又能達到動態語言的開發速度,還具有易維護性,因此,有人形容Go語言為Go=C+Python,表示Go語言既擁有C語言這種靜態語言的運行速度,又有Python這類動態語言的開發效率。
Go語言的具體特征如下。
1.自動垃圾回收
開發者在使用C/C++時,非常容易產生野指針,或者出現內存訪問越界的情況。C/C++服務器的穩定性難以確定,很多時候測試時漏洞沒有觸發,而在生產環境中觸發。野指針和內存訪問越界是經常潛伏的問題。在Go語言里,開發者不必擔心內存的申請和釋放,系統會自動擴展和回收,能檢測到指針的越界訪問。
2.函數可以返回多個值
很多編程語言只能有一個返回值,而Go語言可以有多個返回值。這個功能使得開發者不必花費心思思考如何將錯誤值設計到結構體中。
3.部署簡單
Go編譯生成的是一個靜態可執行文件,部署方便。服務器主機只需要一個基礎的系統和必要的管理、監控工具,不必擔心Go應用程序所需的各種包、庫的依賴關系,能夠極大減輕運維負擔。比較而言,Python的部署工具生態比較混亂,Go的部署要比Python簡單很多。
4.并發性能高
Go語言提供的Goroutine和Channel能夠幫助用戶非常容易地編寫高并發程序,很多情況下不需要考慮鎖機制以及由此帶來的各種問題。單個Go應用程序也能有效利用多個CPU核,提供優秀的并行性。其他編程語言(如Java、C/C++、Python等)難以有效利用多核。
5.良好的語言設計
Go的規范足夠簡單并且靈活,有其他語言基礎的程序員都能迅速上手。更重要的是Go自帶完善的工具鏈,大大提高了團隊協作的一致性。比如,go fmt自動排版Go代碼,很大程度上避免了不同人寫的代碼排版風格不一致的問題。
推薦閱讀
- 深入核心的敏捷開發:ThoughtWorks五大關鍵實踐
- 軟件安全技術
- ThinkPHP 5實戰
- 架構不再難(全5冊)
- Mastering PHP Design Patterns
- Learning SQLite for iOS
- 秒懂設計模式
- Unreal Engine 4 Shaders and Effects Cookbook
- 劍指Java:核心原理與應用實踐
- Building RESTful Python Web Services
- C#程序設計教程(第3版)
- Cocos2d-x Game Development Blueprints
- Neo4j 3.x入門經典
- Java 7 Concurrency Cookbook
- React.js實戰