首頁  >  文章  >  go語言適合程式設計嗎

go語言適合程式設計嗎

小老鼠
小老鼠原創
2023-06-28 16:39:511258瀏覽

go語言適合程式設計。 go語言本身就是一種靜態強類型、編譯型、並髮型、並具有垃圾回收功能的編程語言,Go語言用途眾多,可以進行網絡編程、系統編程、並發編程、分散式編程,Go語言作為伺服器編程語言,很適合處理日誌、資料打包、虛擬機器處理、檔案系統、分散式系統、資料庫代理程式等系列問題,包括網路程式設計這一塊目前應用最廣,例如,Web應用、API應用、下載應用程式等。

go語言適合程式設計嗎

本教學操作環境:windows10系統、go1.20.1版本、Dell G3電腦。

Go語言也稱為 Golang,是由 Google 公司開發的一種靜態強型別、編譯型、並髮型、並具有垃圾回收功能的程式語言。

Go語言(或 Golang)起源於 2007 年,並在 2009 年正式對外發布。 Go是非常年輕的語言,它的主要目標是「兼具 Python 等動態語言的開發速度和 C/C 等編譯型語言的效能與安全性」。

Go語言是程式語言設計的另一個嘗試,是對類C語言的重大改進,它不僅能讓你存取底層作業系統,還提供了強大的網路程式設計和並發程式支援。 Go語言的用途眾多,可以進行網路程式設計、系統程式設計、並發程式設計、分散式程式設計:

伺服器編程,以前你如果使用C或C 做的那些事情,用Go來做很合適,例如處理日誌、資料打包、虛擬機器處理、檔案系統等。

分散式系統、資料庫代理程式、中介軟體等,例如Etcd。

網路編程,這一塊目前應用最廣,包括Web應用、API應用、下載應用,而且Go內建的net/http套件基本上把我們平常用到的網路功能都實現了。

Go語言的推出,旨在不損失應用程式效能的情況下降低程式碼的複雜性,具有「部署簡單、並發性好、語言設計良好、執行效能好」等優勢,目前國內諸多IT 公司均已採用Go語言開發專案。

許多重要的開源專案都是使用Go語言開發的,其中包括 Docker、Go-Ethereum、Thrraform 和 Kubernetes。

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

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系統中用來維持與客戶端連結的部分。

。 。 。 。 。

寫在最後

當然,一個技術能不能發展起來,關鍵還要看三點。 (以下觀點引自https://www.cnblogs.com/qwangxiao/p/8318894.html)

• 有沒有一個比較好的社群。像是 C、C 、Java、Python 和 JavaScript 的生態圈都是非常豐富且火辣的。尤其是有很多商業機構參與的社群那就更為人氣爆棚了,像是 Linux 的社群。

• 有沒有一個工業化的標準。像 C、C 、Java 都是有標準化組織的。尤其是 Java,其在架構上也搞出了像 J2EE 這樣的企業級標準。

• 有沒有一個或多個殺手級應用程式。 C、C 和Java 的殺手級應用不用多說了,就算是對於PHP 這樣還不能算是一個好的程式語言來說,因為是Linux 時代的第一個殺手級解決方案LAMP 中的關鍵技術,所以,也發展起來了。上述的這三點是非常關鍵的,新的技術只需要占到其中一到兩點就已經很不錯了,何況有的技術,比如Java,是三點全佔到了,所以,Java 的發展是如此好。

當然,除了上面這三點重要的,還有一些其它的影響因素,例如:

學習曲線是否低,上手是否快。這點非常重要,C 在這點上越做越不好了。有沒有一個不錯的提高開發效率的開發框架。如:Java 的 Spring 框架,C 的 STL 等。是否有一個或多個巨型的科技公司作為後盾。如:Java 和 Linux 後面的 IBM、Sun…有沒有解決軟體開發中的痛點。如:Java 解決了 C 和 C 的記憶體管理問題。

用這些標尺來量一下Go 語言,我們可以清楚地看到:

Go 語言容易上手;

Go 語言解決了並發程式設計和寫入底層應用開發效率的痛點;

Go 語言有Google 這個世界一流的科技公司在後面;

Go 語言的殺手級應用是Docker,而Docker 的生態圈在這幾年完全爆棚了。

以上是go語言適合程式設計嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn