Golang的崗位
-
區塊鏈研發工程師
-
Go服務器 / 遊戲軟件工程師
-
Golang分佈式 / 雲計算軟件工程師
Golang的應用領域
-
區塊鏈的應用開發
-
區塊鏈技術簡稱BT(Blockchain Technology),也稱爲分佈式賬本技術,是一種互聯網數據庫技術,其特點是去中心化,公開透明,讓每一個人均可參與數據庫記錄。
-
-
後端服務器支撐
-
例1:美團後臺流量支撐程序
-
支撐主站後臺流量(排序、推算、搜索等),提供負載均衡,Cache,容錯,按條件分配、統計運行指標(qps,latency)等功能。
-
-
例2:遊戲仙俠道
-
應用範圍,遊戲服務器(通訊、邏輯、數據存儲等)
-
-
-
雲計算 / 雲服務後臺應用
-
例1:盛趣雲CDN(內容分發網絡)——原盛大雲CDN
-
應用範圍:CDN的調度系統、分發系統、監控系統、短域名服務,CDN內部開發平臺、運營報表系統以及其他的一些小工具等。
-
-
例2:京東消息推送雲服務 / 京東分佈式文件系統
-
應用範圍:後臺所有服務
-
-
Golang的概述
什麼是程序?
程序,爲了讓計算機執行某些操作或解決某個問題而編寫的一系列有序指令的集合。
Go的簡介
Go語言是Google公司創造的語言,也是Google主推的程序語言。Go語言是區塊鏈技術最主流的編程語言,同時也是當前最具發展潛力的語言。區塊鏈技術也是目前不錯的技術。
Go語言應用的國內外代表公司:
-
國外公司:Google、AWS、CloudFlare、CoreOS等
-
國內公司:七牛雲、阿里、小米、京東等。
都已經大規模開始部署Golang開發及其雲計算相關產品。
Go語言的發展
核心開發團隊: Robert Griesemer, Rob Pike, Ken Thompson
Google創造Go語言的目的
-
計算機硬件技術更新頻繁:性能提高很快,目前主流的編程語言發展落後於硬件,不能合理利用多核CPU的優勢提升軟件系統性能。
-
軟件系統複雜度越來越高,維護成本越來越高,目前缺乏一個足夠簡潔高效的編程語言。
-
企業運行維護很多C/C++的項目,C/C++程序運行速度很快,但是編譯速度很慢,同時還存在內存泄漏的一系列的困擾需要解決。
Go的發展史
2007年,Google工程師 Robert Griesemer, Rob Pike, Ken Thompson開始設計一門全新的語言,go語言最初模型的開端。
2009年11月20日,Google將Go語言以開放源代碼的方式向全球發佈。
2015年8月19日,Go 1.5版發佈,本次更新中移除了“最後殘餘的C代碼”
2017年2月17日,Go語言Go1.8版發佈。
2017年8月24日,GO語言Go 1.9版發佈
……。
Go語言的特點(特性)
簡介:Go語言保證了既能夠達到靜態編譯語言的安全和性能,又達到了動態語言開發類維護的高效率。使用一個表達式來形容Go語言,go = C + Python ,說明Go語言既有C靜態語言程序的運行速度,又能達到Python的動態語言的快速開發。
-
從C語言中繼承了很多理念,包括表達式語法,控制結構、基礎數據類型、通用參數傳遞、指針等等,也保留了和C語言一樣的編譯執行方式及弱化的指針。
-
引入包的概念,用於組織程序結構,Go語言的一個文件都要歸屬於一個包,而不能單獨存在。
-
垃圾回收機制,內存自動回收,不需要開發人員進行管理。
-
天然併發
-
從語言層面支持併發,實現簡單。
-
goroutine,輕量級線程,可實現大併發處理,高效利用多核。
-
基於CPS併發模型(Communicating Sequential Processes)實現。
-
-
吸收了管道通信機制,形成Go語言特有的管道Channel。通過Channel,可以實現不同的goroute之間的相互通信。
-
函數返回多個值。
-
新的創新內容,例如切片、延時執行defer等。
精簡版的特性:
-
自動垃圾回收
-
更豐富的內置類型
-
函數多返回值
-
錯誤處理
-
匿名函數和閉包
-
類型和接口
-
併發編程【重要特點】
-
反射
-
語言交互性
Go語言的開發工具
-
Visual Studio Code簡稱VS Code
-
Sublime Text
-
Vim是從Vi發展出來的一個文本編輯器。
-
Emacs
-
Eclipse IDE工具,開源免費,並提供GoEclipse插件。
-
LiteIDE是一款專門爲Go語言開發的跨平臺輕量級集成開發環境(IDE)。
-
JetBrains公司的Goland,都是需要安裝插件的。