目前工作中很少用到 golang 开发,之前用 gin 写过一些 api, 但是感觉都是皮毛,看源码又看不进去,那么现在该如何深入学好 Go 呢
1
rongpx95 2023-09-14 17:12:49 +08:00
从这里开始: https://go.dev/doc/
|
2
z1645444 2023-09-14 19:52:10 +08:00
就从看源码开始吧,他什么功能我怎么实现,checkout 老 log 他原来怎么实现对比现在怎么实现,我也是只用 Gin 写过 API ,也仿造 fzf 做过个小 CLI
|
3
wkong 2023-09-14 19:54:12 +08:00
跟我来做开源 😊
|
4
BeautifulSoap 2023-09-14 19:59:04 +08:00 via Android
实际找个项目去做
很多细节和知识只看代码不亲自动手是没法真的领会为什么要这么作的 |
5
yuancoder 2023-09-14 20:13:25 +08:00
多写项目吧,这玩意没法速成
|
6
keepmovingg 2023-09-14 20:42:55 +08:00
@wkong 大佬,求带
|
7
securityCoding 2023-09-14 20:46:58 +08:00
找个开源把源码搞懂,自己重新写一遍就差不多了
|
8
kingjpa 2023-09-14 22:09:42 +08:00
就是多写,多重构, 虽然我 go 已经忘得差不多了
|
9
gogogo1203 2023-09-14 23:01:01 +08:00
https://github.com/ardanlabs/service 最强的 go 教程的 repo ,课程很贵,repo 免费。middleware, error 处理方式,整个 app 的架构,数据库的 versioning 到 docker 部署。虽然我有一段时间没有写 go 后台了, 但是这个 repo 是真的很惊艳。主要它易懂,所有 engineering 的决定都让我觉得太合理了。
|
10
gogogo1203 2023-09-14 23:04:00 +08:00
William Kennedy (Bill) 是 Go 语言实战的作者之一.这本书应该是 国内大家接触到的第一本 go 教程。
|
11
mryaocom 2023-09-14 23:11:19 +08:00
我也想转到 go 但是感觉学几天就想放弃了, 一直原地踏步, 有没有大佬需要小弟 我可以打打下手的 目前从事 python 干不下去了,
|
12
dayeye2006199 2023-09-15 04:47:10 +08:00 via Android
MIT 6.824 ,go 和分布式系统天然契合
|
13
vultr 2023-09-15 08:51:10 +08:00
|
14
imianba2zz 2023-09-15 09:16:34 +08:00
@gogogo1203 说的这个真的比较棒,其实 b 站有人搬运了这个课程。还有个最简单的办法就是造轮子,写教程然后给别人讲出来
|
15
Lighthughjiajin 2023-09-15 09:23:47 +08:00
@mryaocom python 咋干不下去了。
|
16
mryaocom 2023-09-15 09:45:49 +08:00
老在写一个东西 其他的都不会了 @Lighthughjiajin
|
17
zhangzEric 2023-09-15 10:04:40 +08:00 via iPhone
@gogogo1203 之前看过,讲的确实很好,跟着课程自己手敲一遍,收获不少~ B 站有人搬运课程,虽然还是希望大家支持正版
|
18
Akiya 2023-09-15 10:09:00 +08:00
@dayeye2006199 其实这个课程跟 go 关系都不是很大了,主要是学习分布式系统,当然我一直都不是很建议用语言来作为自己的发展方向而是单纯的工具,所以分布式是一个很好的切入点
|
19
zhuoyue100 OP @wkong 大佬带我学习一下吧,最近空闲时间也蛮多的
|
20
wkong 2023-09-15 13:33:23 +08:00
@zhuoyue100 可以先从这个简单点的项目看起。https://github.com/WuKongIM/WuKongIM
|
21
dayeye2006199 2023-09-15 14:15:27 +08:00
@Akiya 分布式系统是语言无关的。但是做完这些 lab 你会发觉 go 的强项是什么,为啥好多做 infra 的喜欢用 go 写
|
22
japeth 2023-09-15 17:15:54 +08:00
@gogogo1203 好贵 🤣
|
23
CC11001100 2023-09-17 11:37:01 +08:00
多折腾多造轮子多写代码,没啥速成的法子吧,就是要多写唯手熟尔....
如果不知道写啥,我创建了一个组织专门用来造 Golang 的各种轮子练手,里面都是各种比较独立量级不大适合练手的 idea ,老哥有兴趣可以一起来撸代码,互相讨论技术方案、review 代码啥的: https://github.com/golang-infrastructure |
24
zhuoyue100 OP @wkong 好的,我现在拉下来
|
25
gogogo1203 2023-09-20 01:38:30 +08:00
@japeth 你看一下今天 go 区为了要给 unmarshl 吵了这么久, 就知道这个课程的价值。 不买也直接按照里面的 pattern 写 curd 。 各种舒服。
|
26
qloog 2023-10-21 17:37:23 +08:00
可以采取以下一些方法:
1. 学习 Go 的基础知识: - 熟悉 Go 的基本语法和语言特性,包括变量、函数、数据类型、控制结构等。 - 了解 Go 的并发模型,包括协程( goroutine )和通道( channel )。 2. 阅读 Go 官方文档: - Go 的官方文档是一个宝贵的学习资源,包括语言规范、标准库文档和示例代码。深入了解标准库将有助于你更好地利用现有的工具和库。 3. 解决实际问题: - 尝试解决实际的编程问题,这可以包括构建小型应用程序、工具或参与开源项目。通过实际项目,你将获得宝贵的经验。 4. 学习并发编程: - Go 是一门擅长并发编程的语言,因此深入研究并发编程技术,包括协程、通道、锁等,对提升 Go 开发水平至关重要。 5. 阅读优秀的 Go 代码: - 阅读其他人写的高质量 Go 代码,学习他们的最佳实践和设计模式。 6. 学习测试和性能优化: - 学习如何编写有效的测试用例以确保代码的质量和稳定性。 - 掌握性能优化技术,了解如何使用 Go 的性能分析工具来改进代码性能。 7. 参加 Go 社区: - 参与 Go 社区,加入论坛或社交媒体群体,与其他 Go 开发者分享经验、提问问题并讨论新技术。 8. 掌握 Go 工具链: - 学习使用 Go 的工具链,包括`go build`、`go test`、`go get`、`go mod`等,以更有效地管理项目和依赖。 9. 持续学习: - Go 是一门不断发展的语言,不断学习新的语言特性和最佳实践,以跟上 Go 生态系统的变化。 10. 开发项目经验: - 参与实际项目开发,无论是个人项目还是团队项目,都能够锻炼你的 Go 开发技能。 需要慢慢积累,做项目相对还是提升比较快的,在做的过程中,你会碰到各种各样的问题,通过解决这些问问题自然而然就会提升。比如一些基础库:日志、缓存、数据库,消息队列(可以思考如何更好的进行封装为己所用),再复杂点的可以玩一下微服务。 |