搜索
首页后端开发Golang学习 Golang 的最佳资源

学习 Golang 的最佳资源

Sep 08, 2024 am 06:32 AM

你好!我还没有自我介绍,因为我还没有机会。我的名字是 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

「Get Programming with Go」 で強固な基礎を構築し、「Learning Go」 で Go の中心概念を深く掘り下げた後、言語を習得するための次の当然のステップは 「囲碁の 100 の間違いとその回避方法」、Teiva Harsanyi 著。この本は、言語の学習からスキルの磨き上げ、経験豊富な開発者でも遭遇するよくある落とし穴の回避へと焦点を移すため、Go の旅の完璧な継続となります。

前の 2 冊の本は、Go の仕組みとその機能の使用方法を理解するのに役立ちましたが、「100 Go Mistakes」 では、現実世界でつまづきやすい間違いを強調することで、より実践的で実践的なアプローチを採用しています。開発者とそれらを避ける方法について説明します。これは、他の人の経験から学んで専門知識を磨きたい開発者にとって素晴らしいリソースです。この本では、同時実行性、エラー処理、テスト、メモリ管理など、幅広いトピックにわたる間違いを取り上げ、より堅牢で効率的でバグのない Go コードを作成する方法についての洞察を提供します。これは、コーディングのベスト プラクティスだけではなく、特定のアプローチが最初は正しいように見えても、後で微妙なエラーにつながる可能性がある理由の背後にある深い理由を理解することを意味します。この本は、Go スキルを向上させ、コードについてより批判的に考えるのに役立ち、よりプロフェッショナル レベルの Go プログラムの作成を進める際によくある罠を確実に回避するのに非常に貴重です。

各本は前の本を基にして構築されており、基本から Go の複雑さをマスターするまでの包括的な学習を保証します。 「Get Programming with Go」 から始めて、シンプルで初心者に優しい方法で言語を紹介し、しっかりとした基礎を確立します。 「Go を学ぶ」 では、Go の中核となる機能と概念をさらに深く掘り下げ、言語の機能をより完全に理解できるようにします。最後に、「Go の 100 の間違いとその回避方法」 では、実践的な現実世界のアドバイスに焦点を当てており、よくある落とし穴を特定して回避し、より効率的で自信を持って Go 開発者になれるように支援します。

ボーナスブック

The Best Resources for Learning Golang

Go でのテスト駆動開発 by Adelina Simion

Adelina Simion による

「Go でのテスト駆動開発」 は、私のコレクションに新しく追加されたものです。本書は、TDD に対する斬新な視点と最新のアプローチにより、最新の開発慣行に対応しながら、信頼性が高く徹底的にテストされた Go コードを作成する開発者の能力をさらに強化します。この本では、Go コードが機能するだけでなく、堅牢で保守しやすいものであることを保証する、テスト駆動開発の導入について説明します。最初にテストの作成に集中し、それをコーディング プロセスのガイドとして使用することで、高品質のコードを作成するためのより深い洞察が得られます。

ブログ: Go Wisdom と Witty Wonders

Research!rsc: プログラミングに関する考えとリンク、Russ Cox 著

https://research.swtch.com

これは、Go プログラミング言語の重要な貢献者である Russ Cox の個人ブログです。 Russ Cox は Go の最初の開発者の 1 人であり、Go 言語、その開発、およびソフトウェア エンジニアリングの概念全般について幅広く執筆しています。彼のブログでは、特に Go の設計上の決定、ツール、同時実行モデル、パフォーマンスの最適化など、深い技術的なトピックを取り上げています。これは、Go の進化を洞察し、言語の多くの機能の背後にある理論的根拠を理解するための優れたリソースです。 Cox は、プログラミング言語、コンパイラー、コンピューター サイエンス理論に関連する幅広いトピックについても執筆しています。これは、Go の複雑さを知りたい開発者にとって頼りになる書籍であり、実際的な問題を解決するために Go がどのように設計されているかについて独自の視点を提供します。

デイブ・チェイニー:愚かさの極み

https://dave.cheney.net

Dave Cheney は Go コミュニティの著名な人物であり、特にパフォーマンスの最適化、エラー処理、ベスト プラクティスなどの分野でこの言語に多大な貢献をしてきました。彼のブログは、慣用的で効率的な Go コードの作成に関する詳細で実践的なアドバイスを提供することでよく知られています。彼が取り上げるトピックには、Go の同時実行モデル、メモリ管理、テスト戦略、パフォーマンス チューニングなどがあります。 Dave は複雑なトピックを分かりやすい方法で分解することでも知られており、彼のブログは初心者と上級 Go 開発者の両方にとって優れたリソースとなっています。彼は、一般的な Go 設計パターン、パフォーマンスの落とし穴、言語の機能を最大限に活用する方法について執筆し、開発者がより堅牢で保守しやすい Go プログラムを作成するのに役立つヒントを提供しています。 Go についての理解を深めたり、高度なテクニックを探求したい場合は、Dave Cheney のブログが素晴らしいリソースです。

ジュリア・エヴァンスのブログ

https://jvns.ca

Julia のブログは Go だけを扱っているわけではありませんが、システム プログラミング、デバッグ、ネットワーキング、場合によっては Go など、幅広い技術的なトピックに関する親しみやすく洞察力に富んだ投稿でよく知られています。彼女の文体はカジュアルで非常に読みやすいため、初心者でも複雑なテーマを理解しやすくなっています。 Julia を際立たせている点の 1 つは、ネットワークの基礎であれ、オペレーティング システムの動作であれ、複雑な概念を取り上げ、それをシンプルでわかりやすい投稿に分解する能力です。彼女は技術コンテンツをより魅力的にするために ZINE やイラストをよく使用しますが、これは彼女のブログのユニークな側面です。 Go が主な焦点ではありませんが、彼女が Go について書くときは、実用的なシステムレベルの観点から書かれています。システム プログラミングに興味があり、Go がその世界にどのように適合するかを知りたい場合は、Julia Evans のブログが素晴らしいリソースです!

囲碁ブログ

https://go.dev/blog/

Google の Go チームによって管理されている、Go プログラミング言語の公式ブログ。このブログでは、新しいリリース、機能、設計上の決定、コミュニティの更新について取り上げます。これは、コア開発者の視点から Go を理解するための優れた情報源です。これは、Go プログラミング言語に関する最新情報、ニュース、詳細な投稿の主要な情報源であり、Google のコア Go 開発チームによって維持されています。このブログでは、次のような幅広いトピックを取り上げます。

  • 新しい Go リリース: 機能、バグ修正、改善点など、各バージョンの新機能について詳しく説明します。
  • 言語設計の決定: 特定の機能が追加された理由、または Go がどのように進化し続けるかについての洞察。
  • ベスト プラクティス: パフォーマンスの最適化、メモリ管理、同時実行性に関するヒントなど、Go をより効果的に使用する方法に関する記事。
  • コミュニティとエコシステムの最新情報: コミュニティ プロジェクト、Go カンファレンス、Go エコシステムを強化するツールのハイライト。

便利な電報チャンネル

残念ながら、これらはロシア専用のチャンネルであり、投稿のほとんどはロシアの情報源からのものであるため、多くの人にとっては適切ではないかもしれません。しかし、ロシア語を知っていれば大丈夫です!

  • @goproglib - Go 開発者にとって最も役立つすべてのものを 1 つのチャンネルにまとめました。
  • @go_in_action - Go プログラミング言語に関するすべて (ロシア語と英語)
  • @golangtests - Golang の課題
  • @golang_interview - Golang の課題と面接準備リソース

結論

Go を学ぶことはやりがいのある旅であり、適切なリソースがあれば大きな違いが生まれます。始めたばかりの場合でも、より高度な概念を深く掘り下げようとしている場合でも、ここで紹介するブログや書籍は貴重な​​洞察とガイダンスを提供します。基本の習得からよくある落とし穴の回避まで、これらのリソースは、効果的かつ自信を持って囲碁スキルを向上できるように慎重に厳選されています。

Go の探索を続けるときは、Go コミュニティの強さはその強力な言語だけでなく、知識を共有しようとする意欲にもあることを忘れないでください。現在利用できるリソースは、お客様の成功を支援したいと考えている無数の貢献者の多大な努力と献身的な努力を反映しています。 Go には無限の可能性があるため、飛び込んで学び続け、そのプロセスを楽しんでください!

Go コミュニティに多大なる感謝を!

囲碁の学習をこれほど価値のあるものにしてくれた素晴らしいリソースに感謝の意を表したいと思います。言語設計とパフォーマンスに関する詳細なブログ投稿から、効率的で慣用的なコードを記述するための実践的なアドバイスまで、コミュニティの多くの人々の貢献は非常に貴重です。これらのリソースの背後にある明快さ、情熱、献身は、私を含む数え切れないほどの開発者の改善と成長に役立ちました。

私たち全員にとって Go をとても楽しく充実した旅にしてくれてありがとう!

以上是学习 Golang 的最佳资源的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Golang:Go编程语言解释了Golang:Go编程语言解释了Apr 10, 2025 am 11:18 AM

Go语言的核心特性包括垃圾回收、静态链接和并发支持。1.Go语言的并发模型通过goroutine和channel实现高效并发编程。2.接口和多态性通过实现接口方法,使得不同类型可以统一处理。3.基本用法展示了函数定义和调用的高效性。4.高级用法中,切片提供了动态调整大小的强大功能。5.常见错误如竞态条件可以通过gotest-race检测并解决。6.性能优化通过sync.Pool重用对象,减少垃圾回收压力。

Golang的目的:建立高效且可扩展的系统Golang的目的:建立高效且可扩展的系统Apr 09, 2025 pm 05:17 PM

Go语言在构建高效且可扩展的系统中表现出色,其优势包括:1.高性能:编译成机器码,运行速度快;2.并发编程:通过goroutines和channels简化多任务处理;3.简洁性:语法简洁,降低学习和维护成本;4.跨平台:支持跨平台编译,方便部署。

SQL排序中ORDER BY语句结果为何有时看似随机?SQL排序中ORDER BY语句结果为何有时看似随机?Apr 02, 2025 pm 05:24 PM

关于SQL查询结果排序的疑惑学习SQL的过程中,常常会遇到一些令人困惑的问题。最近,笔者在阅读《MICK-SQL基础�...

技术栈收敛是否仅仅是技术栈选型的过程?技术栈收敛是否仅仅是技术栈选型的过程?Apr 02, 2025 pm 05:21 PM

技术栈收敛与技术选型的关系在软件开发中,技术栈的选择和管理是一个非常关键的问题。最近,有读者提出了...

如何在Go语言中使用反射对比并处理三个结构体的差异?如何在Go语言中使用反射对比并处理三个结构体的差异?Apr 02, 2025 pm 05:15 PM

Go语言中如何对比并处理三个结构体在Go语言编程中,有时需要对比两个结构体的差异,并将这些差异应用到第�...

在Go语言中如何查看全局安装的包?在Go语言中如何查看全局安装的包?Apr 02, 2025 pm 05:12 PM

在Go语言中如何查看全局安装的包?在使用Go语言开发过程中,经常会使用go...

GoLand中自定义结构体标签不显示怎么办?GoLand中自定义结构体标签不显示怎么办?Apr 02, 2025 pm 05:09 PM

GoLand中自定义结构体标签不显示怎么办?在使用GoLand进行Go语言开发时,很多开发者会遇到自定义结构体标签在�...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中