4 個技巧學習 Golang

2022-08-01 23:42:26 字數 1657 閱讀 4252

到達 golang 大陸:一位資深開發者之旅。

2014 年夏天……

ibm:「我們需要你弄清楚這個 docker。」

我:「沒問題。」

ibm:「那就開始吧。」

我:「好的。」(內心聲音):」docker 是用 go 編寫的。是嗎?「(google 一下)「哦,一門程式語言。我在我的崗位上已經學習了很多了。這不會太難。」

一晃 20 年……我從未因為學習一門新的程式語言而焦灼。但是 go 讓我感覺有些不同。我打算公開貢獻,上傳到 github,讓任何有興趣的人都可以看到!作為乙個 40 多歲的資深開發者的 go 新手,我不想成為乙個笑話。我們都知道程式設計師的驕傲,不想丟人,不論你的經驗水平如何。

我早期的調研顯示,go 似乎比某些語言更 「地道」。它不僅僅是讓**可以編譯;也需要讓**可以 「go go go」。

現在,我的個人的 go 之旅四年間有了幾百個拉取請求(pr),我不是致力於成為乙個專家,但是現在我覺得貢獻和編寫**比我在 2014 年的時候更舒服了。所以,你該怎麼教乙個老人新的技能或者一門程式語言呢?以下是我自己在前往 golang 大陸之旅的四個步驟。

1、不要跳過基礎

雖然你可以通過複製**來進行你早期的學習(誰還有時間閱讀手冊!?),go 有乙個非常易讀的 語言規範,它寫的很易於理解,即便你在語言或者編譯理論方面沒有取得碩士學位。鑑於 go 的 引數:型別 順序的特有習慣,以及一些有趣的語言功能,例如通道和 go 協程,搞定這些新概念是非常重要的是事情。閱讀這個附屬的文件 高效 go 程式設計,這是 golang 創造者提供的另乙個重要資源,它將為你提供有效和正確使用語言的準備。

2、從最好的中學習

想要看**?在 github 上許多受歡迎的雲原生專案都是用 go 寫的:docker/moby、kubernetes、istio、containerd、coredns,以及許多其它的。語言純粹主義者可能會認為一些專案比另外一些更地道,但這些都是很好的起點,可以看到在高度活躍的專案的大型**庫中使用 go 的程度。

3、使用優秀的語言工具

你會很快了解到 gofmt 的寶貴之處。go 最漂亮的乙個地方就在於沒有關於每個專案**格式的爭論 —— gofmt 內建在語言的執行環境中,並且根據一系列可靠的、易於理解的語言規則對 go **進行格式化。我不知道有哪個基於 golang 的專案會在持續整合中不堅持使用 gofmt 檢查拉取請求。

除了直接構建於執行環境和 sdk 中的一系列有價值的工具之外,我強烈建議使用乙個對 golang 的特性有良好支援的編輯器或者 ide。由於我經常在命令列中進行工作,我依賴於 vim 加上強大的 vim-go 外掛程式。我也喜歡微軟提供的 vs code,特別是它的 go 語言 外掛程式。

想要乙個偵錯程式?delve 專案在不斷的改進和成熟,它是在 go 二進位制檔案上進行 gdb 式除錯的強有力的競爭者。

4、寫一些**

你要是不開始嘗試使用 go 寫**,你永遠不知道它有什麼好的地方。找乙個有 「需要幫助」 問題標籤的專案,然後開始貢獻**。如果你已經使用了乙個用 go 編寫的開源專案,找出它是否有一些可以用初學者方式解決的 bug,然後開始你的第乙個拉取請求。與生活中的大多數事情一樣,實踐出真知,所以開始吧。

事實證明,你可以教會乙個資深的老開發者一門新的技能甚至程式語言。

Golang學習筆記4 控制語句

1.基礎知識補充 指標 遞增遞減語句 指標 go雖然保留了指標,但是與其它程式語言不同的是,在go當中不支援指標運算以及 運算子,而直接採用 選擇符來操作指標目標物件的成員 在go中,與 是作為語句而並不是作為表示式 a 1 a 但不能這樣 a a 只能作為單獨的語句獨佔一行2.if判斷語句func...

C 的4個基本技巧

1.如果可能盡量使用介面來程式設計 net框架包括類和介面,在編寫程式的時候,你可能知道正在用.net的哪個類。然而,在這種情況下如果你用.net支援的介面而不是它的類來程式設計時,會變得更加穩定 可用性會更高。請分析下面的 private void loadlist object items,li...

golang學習筆記4函式02引數

go對引數的處理偏向保守 變參 本質上是乙個切片,只能接受一到多個同型別引數,必須放在列表尾部func test s string,a int func main 將切片作為變參時,需進行展開操作,如果是陣列,先將其轉換成切片func test s string,a int func main te...