首頁  >  文章  >  後端開發  >  學習 Golang 的最佳資源

學習 Golang 的最佳資源

王林
王林原創
2024-09-08 06:32:02720瀏覽

你好!我還沒有自我介紹,因為我還沒有機會。我的名字是 Harutyun {ha.root.eeoon},我是軟體工程師和熱情的 Golang 開發人員。我真的很喜歡這門語言,並且喜歡使用它的工具鏈。過去五年我一直在使用 Go。在轉向 Golang 之前,我是一名全端開發人員,主要後端語言是 PHP,前端語言是 JS + jQuery。

當時,我注意到許多公司正在從 Ruby、NodeJS 和 PHP 過渡到 Golang,以改善延遲、引入並發性並為其產品啟用後台任務執行。我看到的第一篇文章是在 Shopify 的部落格上,解釋瞭如何切換到 Golang 將其服務延遲提高了 80%。我對這篇文章很著迷,並開始閱讀參考文獻、語言概念和 Golang 官方博客,以更好地理解這門語言。

繼 PHP 之後,Golang 感覺就像呼吸了一口新鮮空氣——一切都很快,快得令人難以置信。我記得我寫的第一個程式:用於阿波羅任務的一些開源 NASA 資料的文件校驗和驗證器。它涉及五個檔案的集合,每個檔案大小約為 2GB。看到 1.4 秒的執行時間讓我大吃一驚。在那一刻,我知道我必須將堆疊切換到 Golang 才能創建和開發出色的軟體。

在本文中,我想分享一些幫助我成為 Golang 工程師的資源,並繼續幫助我開發新技能,同時了解最新技術。

書籍:聖特里亞達

The Best Resources for Learning Golang

使用 Go 進行程式設計 作者:Nathan Youngman 和 Roger Peppé

如果您剛開始使用 Go,並且想要一本讓學習過程變得簡單易懂的書,我強烈推薦 Nathan Youngman 和 Roger Peppé 所著的《使用 Go 進行編程》。這本書非常適合初學者,因為它真正專注於基礎知識,而不會一次讓太多資訊壓倒你。這本書的偉大之處在於它清晰地解釋了一切。它從頭開始,逐步引導您了解 Go 的核心概念。您將學習一些基本知識,例如如何聲明變數、使用循環和編寫函數,但作者以非常容易理解的方式做到這一點——即使您沒有大量的程式設計經驗。

如果您是 Go 新手,甚至是一般程式設計新手,「使用 Go 進行程式設計」 是最好的起點之一。它旨在幫助您在語言方面打下堅實的基礎,而不會感到迷失或沮喪,當您完成後,您將對 Go 的工作原理有深入的了解。我真正喜歡的一件事是,這本書並不假設你已經了解一堆其他程式語言。它用簡單的語言編寫,專注於幫助您以簡單、直接的方式理解 Go 的語法和結構。它還涵蓋了 Go 的獨特方法,例如錯誤處理和記憶體管理,但同樣,以一種非常適合初學者的方式。

學習 Go 作者:Jon Bodner

如果您已經完成了「使用Go 進行程式設計」並且希望將您的Go 技能提升到一個新的水平,我強烈建議您繼續學習「學習Go」喬恩·博德納。雖然「使用Go 進行程式設計」為您提供了堅實的基礎,並以非常適合初學者的方式介紹了該語言,但「學習Go」 更深入地了解了該語言更複雜的方面,非常適合當您準備好更詳細地探索Go 了。

本書以基礎知識為基礎,真正幫助您理解 Go 的複雜性,例如它的並發模型、介面和錯誤處理。第一本書著重於幫助您入門,「學習 Go」 更深入地探討了 Go 的獨特功能,它讓您更清楚地了解如何編寫更有效率、可維護的程式碼。這些解釋仍然非常平易近人,但更全面,涵蓋了您可能尚未解決的概念。因此,如果您已完成「使用 Go 進行程式設計」並準備好更深入地學習,「學習 Go」 是完美的下一步。這是繼續你的 Go 之旅並真正掌握這門語言的好方法。

100 個圍棋錯誤以及如何避免它們 作者:Teiva Harsanyi

透過「使用Go 進行程式設計」打下堅實的基礎並透過「學習Go」深入了解Go 的核心概念後,掌握這門語言的下一個合乎邏輯的步驟是Teiva Harsanyi 的「100 個圍棋錯誤以及如何避免它們」。本書是您 Go 之旅的完美延續,因為它將重點從學習語言轉移到提高技能並避免即使是經驗豐富的開發人員也會遇到的常見陷阱。

前兩本書幫助您了解Go 的工作原理以及如何使用其功能,「100 個Go 錯誤」 透過強調現實世界中經常出現的錯誤,採用了更實用、更實際的方法開發人員以及如何避開他們。對於想要透過學習他人的經驗來提高專業知識的開發人員來說,這是一個極好的資源。本書涵蓋了廣泛主題中的錯誤,包括並發、錯誤處理、測試和記憶體管理,讓您深入了解如何編寫更健壯、更有效率且無錯誤的 Go 程式碼。這不僅僅是關於編碼最佳實踐,而是關於理解為什麼某些方法一開始看起來是正確的但後來可能會導致微妙的錯誤背後的深層原因。本書對於提高您的 Go 技能、幫助您更批判性地思考程式碼以及確保您在編寫更專業級別的 Go 程式時避免常見陷阱具有無價的價值。

每本書都建立在前一本書的基礎上,確保從基礎知識到掌握 Go 的複雜性的全面學習之旅。您可以從 「使用 Go 進行程式設計」 開始打下堅實的基礎,因為它以簡單且適合初學者的方式介紹了該語言。 「學習Go」將帶您深入了解Go的核心特性和概念,讓您更全面地了解語言的功能。最後,「100 個 Go 錯誤以及如何避免它們」專注於實用、現實的建議,幫助您識別和避免常見陷阱,使您成為更有效率、更自信的 Go 開發人員。

贈書

The Best Resources for Learning Golang

Go 中的測試驅動開發 作者:Adelina Simion

Adelina Simion 的《Go 中的測試驅動開發》 是我收藏中的最新內容。憑藉其新穎的視角和現代的 TDD 方法,本書將進一步鞏固開發人員編寫可靠、經過徹底測試的 Go 程式碼的能力,同時跟上最新的開發實踐。本書將引導您採用測試驅動開發,確保您的 Go 程式碼不僅功能強大,而且健壯且可維護。透過首先專注於編寫測試並使用它們來指導您的編碼過程,您將獲得更深入的見解以產生更高品質的程式碼。

部落格:走向智慧和機智奇蹟

Research!rsc:關於程式設計的想法和鏈接,作者:Russ Cox

https://research.swtch.com

這是 Go 程式語言的關鍵貢獻者 Russ Cox 的個人部落格。 Russ Cox 是 Go 的原始開發人員之一,撰寫了大量有關該語言、其開發和軟體工程概念的文章。他的部落格涵蓋了深入的技術主題,特別是圍繞 Go 的設計決策、工具、並發模型和性能優化。它是深入了解 Go 的演變和理解該語言許多功能背後的基本原理的絕佳資源。考克斯也撰寫了與程式語言、編譯器和電腦科學理論相關的更廣泛的主題。對於想要深入了解 Go 複雜性的開發人員來說,這是一本必讀書籍,它提供了關於 Go 如何設計來解決實際問題的獨特視角。

戴夫·切尼:愚蠢到了極點

https://dave.cheney.net

Dave Cheney 是 Go 社群的傑出人物,為該語言做出了重大貢獻,特別是在效能優化、錯誤處理和最佳實踐等領域。他的部落格因提供有關編寫慣用且高效的 Go 程式碼的深入、實用的建議而聞名。他涵蓋的主題包括 Go 的並發模型、記憶體管理、測試策略和效能調優。 Dave 也以以易於理解的方式分解複雜主題而聞名,這使得他的部落格成為初學者和高級 Go 開發人員的絕佳資源。他撰寫了有關常見 Go 設計模式、效能陷阱以及如何充分利用該語言功能的文章,並提供了幫助開發人員編寫更健壯且可維護的 Go 程式的技巧。如果您想加深對 Go 的理解或探索先進技術,Dave Cheney 的部落格是一個很棒的資源。

朱莉婭·埃文斯的博客

https://jvns.ca

雖然 Julia 的部落格不僅僅涉及 Go,但它以其平易近人且富有洞察力的帖子而聞名,涉及廣泛的技術主題,包括系統編程、調試、網絡,有時還包括 Go。她的寫作風格輕鬆且可讀性強,使複雜的主題更容易理解,即使對於初學者也是如此。朱莉婭的與眾不同之處之一是她能夠理解複雜的概念,無論是網路基礎知識還是作業系統的工作原理,並將它們分解為簡單易懂的貼文。她經常使用雜誌和插圖來使技術內容更具吸引力,這是她部落格的獨特之處。儘管 Go 不是主要關注點,但當她撰寫有關 Go 的文章時,卻是從實用的系統級角度出發。如果您熱衷於系統編程並想了解 Go 如何融入這個世界,Julia Evans 的部落格是一個很好的資源!

Go 部落格

https://go.dev/blog/

Go 程式語言的官方博客,由 Google 的 Go 團隊維護。這篇部落格涵蓋新版本、功能、設計決策和社群更新。這是從核心開發人員的角度來理解 Go 的重要來源。它是有關 Go 程式語言的更新、新聞和深入貼文的主要來源,由 Google 核心 Go 開發團隊維護。這篇部落格涵蓋了廣泛的主題,包括:

  • 新的 Go 版本:每個版本新增內容的詳細說明,包括功能、錯誤修復和改進。
  • 語言設計決策:深入了解為什麼添加某些功能或 Go 如何繼續發展。
  • 最佳實踐:有關如何更有效地使用 Go 的文章,包括效能最佳化、記憶體管理和並發性方面的技巧。
  • 社區和生態系統更新:社區計畫、Go 會議以及增強 Go 生態系統的工具的亮點。

有用的電報頻道

不幸的是,這些是僅限俄語的頻道,並且大多數帖子來自俄羅斯來源,因此它們可能不適合許多人。但如果您懂俄語,就一切準備就緒!

  • @goproglib - 在一個頻道中提供對 Go 開發人員最有用的所有內容。
  • @go_in_action - 有關 Go 程式語言的所有內容(俄語和英語)
  • @golangtests - Golang 挑戰
  • @golang_interview - Golang 挑戰和麵試準備資源

結論

學習 Go 是一次有益的旅程,擁有正確的資源會讓一切變得不同。無論您是剛起步還是想要深入了解更高級的概念,這裡提到的部落格和書籍都可以提供寶貴的見解和指導。從掌握基礎知識到避免常見陷阱,這些資源都經過精心策劃,以確保您能夠有效、自信地發展您的 Go 技能。

當您繼續探索 Go 時,請記住,Go 社群的優勢不僅在於其強大的語言,還在於其分享知識的意願。今天提供的資源反映了無數希望幫助您成功的貢獻者的辛勤工作和奉獻精神。潛心投入,不斷學習,享受過程,因為有了 Go,就有無限的可能性!

A Huge Thank You to the Go Community!

I want to take a moment to express my appreciation for the incredible resources that have made learning Go such a rewarding experience. From in-depth blog posts on language design and performance to practical advice on writing efficient, idiomatic code, the contributions of so many in the community have been invaluable. The clarity, passion, and dedication behind these resources have helped countless developers, including myself, improve and grow.

Thank you for making Go such an enjoyable and enriching journey for all of us!

以上是學習 Golang 的最佳資源的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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