go語言可以程式設計。 Go語言是由Google公司開發的靜態強類型、編譯型、並髮型、並具有垃圾回收功能的程式語言;Go語言的用途眾多,可進行網頁程式設計、系統程式設計、並發程式設計、分散式程式設計。 Go語言作為伺服器程式語言,很適合處理日誌、資料打包、虛擬機器處理、檔案系統、分散式系統、資料庫代理程式等;也可進行網路應用、API應用、下載應用程式等網路程式設計。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
Go語言也稱為 Golang,是由 Google 公司開發的一種靜態強型別、編譯型、並髮型、並具有垃圾回收功能的程式語言。
Go語言(或 Golang)起源於 2007 年,並在 2009 年正式對外發布。 Go 是非常年輕的語言,它的主要目標是「兼具 Python 等動態語言的開發速度和 C/C 等編譯型語言的效能與安全性」。
Go語言是程式語言設計的另一個嘗試,是對類C語言的重大改進,它不僅能讓你存取底層作業系統,還提供了強大的網路程式設計和並發程式支援。 Go語言的用途眾多,可以進行網路程式設計、系統程式設計、並發程式設計、分散式程式設計:
伺服器編程,以前你如果使用C或C 做的那些事情,用Go來做很合適,例如處理日誌、資料打包、虛擬機器處理、檔案系統等。
分散式系統、資料庫代理程式、中介軟體等,例如Etcd。
網路編程,這一塊目前應用最廣,包括網路應用程式、API應用程式、下載應用,而且Go內建的net/http套件基本上把我們平常用到的網路功能都實現了。
Go語言的推出,旨在不損失應用程式效能的情況下降低程式碼的複雜性,具有“部署簡單、並發性好、語言設計良好、執行效能好”等優勢,目前國內諸多IT 公司均已採用Go語言開發專案。
許多重要的開源專案都是使用Go語言開發的,其中包括 Docker、Go-Ethereum、Thrraform 和 Kubernetes。
國內外有哪些企業或專案使用Go語言
Go發布之後,許多公司特別是雲端運算公司開始用Go重構他們的基礎架構,很多都是直接採用Go進行了開發,最近熱火朝天的Docker就是採用Go開發的。
使用 Go 語言開發的開源專案非常多。早期的Go 語言開源專案只是透過Go 語言與傳統專案進行C語言庫綁定實現,例如Qt、Sqlite 等;後期的許多專案都使用Go 語言進行重新原生實現,這個過程相對於其他語言要簡單一些,這也促成了大量使用Go 語言原生開發專案的出現。
雲端運算基礎架構領域
代表專案:docker、kubernetes、etcd、consul、cloudflare CDN、七牛雲端儲存等。
基礎軟體
代表專案:tidb、influxdb、cockroachdb等。
微服務
代表專案:go-kit、micro、monzo bank的typhon、bilibili等。
網路基礎設施
代表專案:以太坊、hyperledger等。
採用Go的一些國外公司,如Google、Docker、Apple、Cloud Foundry、CloudFlare、Couchbase、CoreOS、Dropbox、MongoDB、AWS等公司;
採用Go開發的國內企業:如阿里雲CDN、百度、小米、七牛、PingCAP、華為、金山軟體、獵豹行動、餓了麼等公司。
Docker
#Docker 是一種作業系統層面的虛擬化技術,可以在作業系統和應用程序之間進行隔離,也可以稱為容器。 Docker 可以在一台實體伺服器上快速執行一個或多個實例。基於lxc的一個虛擬打包工具,能夠實現PAAS平台的組成。例如,啟動一個 CentOS 作業系統,並在其內部命令列執行指令後結束,整個過程就像自己在作業系統一樣有效率。
go語言
Go 語言自己的早期原始碼使用C語言和組合語言寫成。從 Go 1.5 版本後,完全使用 Go 語言自行編寫。 Go 語言的原始碼對了解 Go 語言的底層調度有極大的參考意義,建議希望對 Go 語言有深入了解的讀者讀一讀。
Kubernetes
Google 公司開發的建置於 Docker 之上的容器排程服務,使用者可以透過 Kubernetes 叢集進行雲端容器叢集管理。
etcd
一款分散式、可靠的 KV 儲存系統,可以快速進行雲端配置。
beego
#beego 是一個類似 Python的 Tornado 框架,採用了 RESTFul 的設計思路,使用 Go 語言編寫的一個極輕量級、高可擴展性和高效能的 Web 應用框架。
martini
一款快速建立模組化的 Web 應用的 Web 框架。
codis
國產的優秀分散式 Redis 解決方案。
delve
Go語言強大的偵錯器,被許多整合環境和編輯器整合。
Facebook也在用,為此他們還專門在Github上建立了一個開源組織facebookgo,大家可以透過訪問查看facebook開源的項目,例如著名的是平滑升級的grace。
騰訊
騰訊作為國內的大公司,還是敢於嘗試的,尤其是Docker容器化這一塊,他們在15年已經做了docker萬台規模的實踐,具體可以參考
http://www.infoq.com/cn/articles/tencent-millions-scale-docker-application-practice
百度
目前所知的百度的使用是在維運這邊,是百度運維的一個BFE項目,負責前端流量的存取。他們的負責人在2016年有分享,大家可以看下這篇http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend
#其次就是百度的訊息系統。負責公司手百訊息通訊系統伺服器端開發及維護。
京東
京東雲端訊息推送系統、雲端存儲,以及京東商城等都有使用Go做開發。
小米
小米對Golang的支持,莫過於維運監控系統的開源,也就是 http://open-falcon.com/ 。
此外,小米互娛、小米商城、小米影片、小米生態鍊等團隊都在使用Golang。
360
360對Golang的使用也不少,一個是開源的日誌搜尋系統Poseidon,託管在Github上,
#還有360的推播團隊也在使用,他們也寫了部落格文章在Golang的官方部落格上。
美團
美團後台流量支撐程式。應用範圍:支撐主站後台流量(排序,推薦,搜尋等),提供負載平衡,cache,容錯,依條件分流,統計運行指標(qps,latency)等功能。
滴滴
基礎服務平台。
金山微看
應用範圍:服務接口,後台流程服務,訊息系統,圖片系統
##搜尋狗
搜狗推送系統。 Push系統中用來維持與客戶端連結的部分。 。 。 。 。 。寫在最後
• 有沒有一個比較好的社群。像是 C、C 、Java、Python 和 JavaScript 的生態圈都是非常豐富且火辣的。尤其是有很多商業機構參與的社群那就更為人氣爆棚了,像是 Linux 的社群。
• 有沒有一個工業化的標準。像 C、C 、Java 都是有標準化組織的。尤其是 Java,其在架構上也搞出了像 J2EE 這樣的企業級標準。
• 有沒有一個或多個殺手級應用程式。 C、C 和Java 的殺手級應用不用多說了,就算是對於PHP 這樣還不能算是一個好的程式語言來說,因為是Linux 時代的第一個殺手級解決方案LAMP 中的關鍵技術,所以,也發展起來了。上述的這三點是非常關鍵的,新的技術只需要占到其中一到兩點就已經很不錯了,何況有的技術,比如Java,是三點全佔到了,所以,Java 的發展是如此好。
當然,除了上面這三點重要的,還有一些其它的影響因素,例如:所以,Go 語言的未來是不可限量的。當然,Go 可能會吞食很多 C、C 、Java 的專案。不過,Go 語言所吞食主要的項目應該是中間層的項目,既不是非常底層也不會是業務層。也就是說,Go 語言不會吞食底層到 C 和 C 那個等級的,也不會吞食到高層如 Java 業務層的專案。 Go 語言能吞食的一定是PaaS 上的項目,例如一些訊息快取中間件、服務發現、服務代理、控制系統、Agent、日誌收集等等,沒有複雜的業務場景,也到不了特別底層(如操作系統)的中間平台層的軟體專案或工具。而 C 和 C 會被打到更底層,Java 會被打到更上層的業務層。
好了,我們再用上面的尺來量一下 Go 語言的殺手級應用程式 Docker,你會發現基本上是一樣的。
Docker 上手很容易。
Docker 解決了維運中的環境問題以及服務排程的痛點。
Docker 的生態圈中有大公司在後面助力。如 Google。
Docker 產出了工業界標準 OCI。
Docker 的社群和生態圈已經出現像 Java 和 Linux 的態勢。
以上是go語言可以程式設計嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!