當前位置:
首頁 > 知識 > 熟讀這5個開源項目就是合格的GO語言工程師!

熟讀這5個開源項目就是合格的GO語言工程師!

寫代碼同寫文章一樣,既是技術活,又是藝術活。不是懂了語法能夠寫出優秀的代碼,也正如不是認識字就能夠寫出優美的文章一樣。那個作家飽讀史書,那個架構師不是在代碼堆里和Bug堆里泡出來的。

因此,程序員剛入門除了讀書外,閱讀好的代碼很重要。閱讀優秀的代碼可以了解大牛開發的思路,軟體架構和語言技巧等。因此,本文針對Go語言,推薦大家5個非常優秀的開源項目,這些開源項目不僅應用廣泛,而且其中所用的技術有很多基礎技術,是做其它任何項目都不可或缺的。

Codis

Codis是一個分散式Redis解決方案,與官方的純P2P模式不同,Codis採用的是Proxy-based的方案。可以將Codis理解成為Web服務領域的Nginx,它實現了對Redis的反向代理和負載均衡。Redis本身就是就是一個高性能的緩存系統,可見Codis的性能更是沒法說。

網路編程: Codis本身就是一個高性能網路軟體,因此閱讀其代碼對於Go語言下的網路編程會有很大的幫助

協程: 作為網路軟體,在Go語言協程使用上發揮的淋漓盡致,充分使用了其協程的特性

數據結構與演算法: Codis為了配合Redis的多種數據類型支持,在內部實現上充分使用了現有的數據結構

Etcd

Etcd是CoreOS團隊於2013年6月發起的開源項目,它的目標是構建一個高可用的分散式鍵值(key-value)資料庫。Etcd內部採用raft協議作為一致性演算法,etcd基於Go語言實現。閱讀其代碼對理解Go語言中的網路編程、分散式演算法和數據結構等方面的內容有非常大的幫助。可以了解世界級大牛的開發思路和編碼風格。

Kubernetes

相信做過Web開發或者玩過容器的同學都接觸過,最起碼聽過這個軟體。這個軟體是純Go語言開發。這裡就不過多介紹了,Google設計並開發的東東,相信能從中學到很多內容。這裡就不過多介紹了。

Caddy

Caddy伺服器(或者CaddyWeb)是一個開源的,使用Golang 編寫,支持HTTP/2 的Web 服務端。 它使用Golang 標準庫提供HTTP 功能。 Caddy 一個顯著的特性是默認啟用HTTPS。 它是第一個無需額外配置即可提供HTTPS 特性的Web 伺服器。學習該軟體的代碼對高性能架構、網路編程和HTTP協議會有更加深入的理解。

Go-MySQL

程序開發無非業務、數據結構演算法、網路和存儲,前面介紹了很多數據結構和網路的開源軟體,本軟體是最後一部分。本軟體是Go語言實現的處理MySQL網路協議和複製的功能,可以作為MySQL的從端,實現數據的進一步的處理。學習本軟體的代碼對MySQL會有更加深入的理解,另外對數據中心容災也會有所幫助。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux資訊速推 的精彩文章:

RISC-V的Linux內核將會支持HiFive Unleashed開發板

TAG:Linux資訊速推 |