為什么想要開篇這么一個系列博客主題?
我想有很多小伙伴想要問我這個,其實主要有以下幾個原因。
在粉絲面前丟臉了
之前寫過幾篇關於java分布式系統的一些坑,然后就有小伙伴挺崇拜的,認為老貓啥都會,甚至想找我做老師,比如:
上面這個回答,事后老貓想想回答的真是不謙虛,還真的是把自己當成哪門子大牛了,還回答有問題就來問,其實頂多也就是一起討論一下。剛回答完,后面就被打臉了。
老貓真的不曉得什么是ceph,而且還是頭一次聽說,寫到這里,可能很多小伙伴要噴我了,“lowB 這個都不曉得”。后來老貓去網上搜了一下,原來這是個分布式文件系統,底層是C++ /c開發的。這哥們是個C++程序員。還好哥們也沒有嘲諷我,而是表明了他近期的意向。
原來哥們其實是想轉型學習go,並且希望參與一個項目,其實說實在的,老貓也沒怎么接觸go,老貓的主要后端語言是java,關於go之前也就了解了一些皮毛。也不曉得當時怎么了,腦子一熱,就說要搞個“go爬蟲系統”和這個哥們分享。
這牛逼也算是吹出去了,接下來也得自己扛了,所以,這也是老貓想寫這個系列博客的其中一個原因。
GO現在真的很火
另外的,其實go現在是真的很火,咱姑且先不去談論現在學習go語言的人數趨勢是什么,作為程序員,我相信很多小伙伴都關注了多多少少的一些公眾號,這些公眾號,動不動就是給你來個“XXX大廠全面轉型GO”。然后就是關於GO的鋪天蓋地的廣告培訓。我想很多朋友都會看到這些,你說作為java后端或者其他后端開發人員,看到這種廣告心里肯定多多少少會掀起波瀾。
現在我們再來回過頭來看看現有的go語言的趨勢是不是真的如此。我們一起來看一下兩個圖
從以上圖中,我們可以很明顯地看到go語言的發展趨勢這幾年是真的很快,這是統計到19年的一個趨勢,我們可以很明顯地看到go從一門非主流語言已經發展成為了主流語言。
另外的,其實目前很多比較前沿的技術,也都在使用go語言,比如區塊鏈技術,雲計算等,大家比較熟悉的docker以及k8s其實就是用的go語言開發出來的。
那么為什么會選擇用go語言來開發呢,老貓也去度娘了一下,簡單地概括,主要是因為它開發快並且運行也快,並且能夠相當容易地就支持多線程,它是一門真多其他語言的痛點進行設計出來的語言。它非常特別,沒有“對象”,沒有繼承多態,沒有泛型,沒有try/catch。有接口,函數式編程,CSP並發模型(goroutine+channel)。(具體老貓也暫時還沒體會,這是聽說有這么牛逼,接下來的日子,老貓會慢慢和大家分享並體會)
接下來的計划
既然咱們要干,那么咱就好好和大家同步一下接下來的計划。距離2022年還有兩個月左右的時間,咱們給自己定一個小目標,在2022年的元旦,咱們完成go語言的學習,並且完成一個真實的開源小項目。接下來,老貓會以一周一更到兩更的形式,發布到公眾號“程序員老貓”上,大家可以關注“程序員老貓”,來一起學習一起進步,並且更多地是過來督促一下老貓,如果你也在猶豫要不要學習go,你也堅持不下去,那么何不和老貓一起來打卡呢?一起進步的路上怎么能少掉屏幕前的你呢?“滴滴叭叭”,老貓號go快車快要發車了,還沒有上車的小伙伴可以趕緊上車了。