V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
dearzhzhao
V2EX  ›  Go 编程语言

咨询一下 Go 开发的大佬

  •  
  •   dearzhzhao · 2023-11-07 11:48:54 +08:00 · 5884 次点击
    这是一个创建于 380 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟是多年的 java 开发,目前对 Go 非常感兴趣想要学习。

    本人深刻知道学习一个新的语言,系统性的学习资料是非常重要的,否则学的七零八碎的,Go 的项目规范,开发规范等等都使用的不标准也太尴尬了。

    我看到一些很好的资料,一个是极客时间的《 Go 语言核心 36 讲》: https://time.geekbang.org/column/intro/100013101?utm_campaign=geektime_search&utm_content=geektime_search&utm_medium=geektime_search&utm_source=geektime_search&utm_term=geektime_search

    这个是极客时间读者挺多的专栏,我感觉这个内容也很不错,但唯一的问题就是据我了解这个专栏是 18 年的内容了,目前已经 2023 年,我不知道 Go 的迭代速度,在这 5 年是否有做大的变更?如果学这个内容,会不会跟不上现在的 Go 的新的特性和节奏?

    除了以上内容外,小弟也想咨询一下各位 Go 的大佬,大家经常混的 Go 的社区有哪些?以及比较好的学习资源和资料是否有一些?谢谢提供。感谢。

    46 条回复    2023-11-10 10:03:31 +08:00
    dearzhzhao
        1
    dearzhzhao  
    OP
       2023-11-07 11:51:26 +08:00
    dearzhzhao
        2
    dearzhzhao  
    OP
       2023-11-07 11:51:51 +08:00
    我这这里帖子下面也看到一些很好的推荐: https://www.v2ex.com/t/988107#reply21
    singer
        3
    singer  
       2023-11-07 11:55:31 +08:00
    看开源项目、试着写一个网关、再写点业务性强的代码,基本就能上手了。但一定要把自己的 java 习惯抛弃掉,不然容易写出 go 版的 java 代码
    Nazz
        4
    Nazz  
       2023-11-07 11:57:29 +08:00
    重大变更: 包管理, 泛型
    mgzu
        5
    mgzu  
       2023-11-07 11:58:02 +08:00
    https://go.dev/doc/effective_go 官方的这个看着还不错
    sx931210
        6
    sx931210  
       2023-11-07 12:00:30 +08:00
    @singer gova
    monkeyWie
        7
    monkeyWie  
       2023-11-07 12:00:46 +08:00
    18 年到现在比较大的改动也就是 go mod 和泛型支持了,这两个特性稍微看看就会用了,至于社区嘛就是多逛逛 github
    duanbiaowu
        8
    duanbiaowu  
       2023-11-07 12:04:51 +08:00   ❤️ 2
    毛遂自荐 - 我写的免费电子书,内容是 {快速入门 + 进阶提高}

    https://golang.dbwu.tech/
    goxy
        9
    goxy  
       2023-11-07 12:04:54 +08:00
    有基础的话,找个感兴趣的开源项目,直接开始看源代码
    Corybyte
        10
    Corybyte  
       2023-11-07 12:10:07 +08:00
    littlecreek
        11
    littlecreek  
       2023-11-07 12:16:48 +08:00
    Go 语言层面的变动不大, 建议看 The Go Programming Language. 然后读代码, 看到不懂的用法再 Google 就行了.

    相比 Java, Go 语言的复杂度低一个数量级, 好处是比较易懂, 很工程化的语言
    thinkershare
        12
    thinkershare  
       2023-11-07 12:18:00 +08:00
    The Go Programming Language + go mod + 泛型就够了,作为一门语言的 go 其实是简单的,甚至可以说是简陋的。但 go 写的很多云原生的基础设施是精巧的,值得一看源码。
    dearzhzhao
        13
    dearzhzhao  
    OP
       2023-11-07 12:21:26 +08:00
    感谢各位的指点
    dearzhzhao
        14
    dearzhzhao  
    OP
       2023-11-07 12:21:44 +08:00
    🙏
    k9982874
        15
    k9982874  
       2023-11-07 12:22:04 +08:00
    学会 go mod ,配置好梯子能无障碍访问 github 就够了
    代码风格只需要 vscode 装好 go 插件都是自动的,不需要操心
    项目结构,既然 java 转过来的,直接硬套也不是不行
    一开始会不适应面向对象到面向过程,多写习惯就好了
    lveye
        16
    lveye  
       2023-11-07 12:30:02 +08:00
    head first go 这本书入门极好
    esile
        17
    esile  
       2023-11-07 12:38:08 +08:00 via Android
    @singer ,🤣
    dearzhzhao
        18
    dearzhzhao  
    OP
       2023-11-07 12:54:26 +08:00
    @monkeyWie 谢谢
    imianba2zz
        19
    imianba2zz  
       2023-11-07 13:27:17 +08:00   ❤️ 2
    哎,感觉 go 的社区现在都是半死不活的状态。项目规范和开发规范推荐一个老外的培训课件: https://github.com/ardanlabs/service 个人觉得非常不错(注:b 站有搬运的视频)。入门的话感觉随便找个书或者极客的课感觉都差不多。深入的话个人感觉就是看开源项目:bigcache ,ants 、gnet 、rosedb ,nsq 都不错。最后附一下自己学习 golang 的一些笔记感兴趣可以看看: https://github.com/Zhouchaowen/golang-tutorialhttps://github.com/Zhouchaowen/Labs
    jiayouzl
        20
    jiayouzl  
       2023-11-07 13:33:26 +08:00
    go 的导入包的方式我是真心不习惯!
    codcrafts
        21
    codcrafts  
       2023-11-07 13:56:54 +08:00
    geektime 的 《 go 语言核心 36 讲》真心不推荐,他里面自创了很多名词,不如 tony bai 那个 go 语言课。但是 go 极其容易上手,建议把官方的 [Effective_go]( https://go.dev/doc/effective_go) 看一遍,然后好好看一下官方推荐的 [go 项目的结构]( https://go.dev/doc/modules/layout),基本就可以写东西了。
    nodejsexpress
        23
    nodejsexpress  
       2023-11-07 14:12:06 +08:00
    编程社区都好像没有特别出名的,比如 java 社区你们平时逛哪个? python 社区都是国外比较出名,nodejs 社区好像没听过出名的。。
    layxy
        24
    layxy  
       2023-11-07 14:16:49 +08:00
    go 对项目结构其实没啥约束,我在 github 上找到一个项目结构感觉还行,java 学 go 最难理解和不习惯就是接口实现和很多包通过入参传指针赋值而不是通过返回值
    dearzhzhao
        25
    dearzhzhao  
    OP
       2023-11-07 14:26:30 +08:00
    @codcrafts 啊,我看这个课程学习的人数挺多的,还准备基于这个课程开始学习了呢、、
    jonsmith
        26
    jonsmith  
       2023-11-07 14:43:36 +08:00
    The Go Programming Language ( Go 语言圣经),很不错的入门书。再看下常用的标准库,应该差不多了。
    cnfox
        27
    cnfox  
       2023-11-07 14:47:27 +08:00
    go 的基本语法并不困难 。。
    特色协程之类的就算一开始不理解并不影响简单需求的开发
    有编程语言基础简单看一下基础语法 然后直接看开源脚手架就好了
    我就是 java 转 go 然后几天就开始上手公司项目的,底层开发者。感兴趣可以我们弄一些小需求项目,有问题的时候简单解答一下。慢慢就熟练精进了
    lsk569937453
        28
    lsk569937453  
       2023-11-07 15:02:40 +08:00
    go 本质上和 java 是重合的。你要学点 node ,搞前端还行,学 go 是为了啥? go 的市场又不如 java 大。
    javaisthebest
        29
    javaisthebest  
       2023-11-07 15:08:32 +08:00
    学 Go 还要想这些 ? go 的唯一好处就是没有任何规范

    最难的地方无非就是 携程和锁的使用上需要注意了

    恕我直言,你还是回去先把 java 搞明白再学 go 吧
    rahuahua
        30
    rahuahua  
       2023-11-07 15:17:58 +08:00
    @jiayouzl 我是非常喜欢 go 的 pkg 导入方式,统一的 pkg.Var pkg.Func 方式 囧
    iamee
        31
    iamee  
       2023-11-07 15:26:44 +08:00   ❤️ 1
    @singer 欢迎 OP 给 Go 生态添砖 Java 🤣
    8X96ZltB8D7WggD7
        32
    8X96ZltB8D7WggD7  
       2023-11-07 15:46:52 +08:00
    @iamee 不错的谐音
    Ericcccccccc
        33
    Ericcccccccc  
       2023-11-07 15:53:49 +08:00
    go 几乎没啥要学的语法.
    aaddccaaa
        34
    aaddccaaa  
       2023-11-07 16:24:00 +08:00
    官方文档看懂语法,然后干活的时候对着别人代码抄,调不通了就 cv 到 gpt 给调通,再自己测测
    Fooooo0
        36
    Fooooo0  
       2023-11-07 16:37:56 +08:00
    官方的入门学一下: https://go.dev/learn/
    官方的《 Effective Go 》看个两三遍 https://go.dev/doc/effective_go
    标准库全部大概看一遍: https://pkg.go.dev/std
    有 Java 基础看完以上的基本可以开始写项目玩了,同时找一两个知名的自己感兴趣的 go 开源项目看。
    然后深入学习可以看雨痕的《 go 程序设计》 https://www.yuque.com/qyuhen/go

    另外,我面试比较喜欢问的一个问题是:你是如何学习 go (或一门新技术)的?
    macscsbf
        37
    macscsbf  
       2023-11-07 16:49:53 +08:00
    uber 在 github 上开源的项目全部啃下来,你就是大神了。
    dearzhzhao
        38
    dearzhzhao  
    OP
       2023-11-07 17:05:00 +08:00
    @Fooooo0 感谢。
    @DoWnH 感谢。
    poembre
        39
    poembre  
       2023-11-07 17:44:18 +08:00
    小弟是多年的 Go 开发,目前对 java 非常感兴趣想要学习。

    本人深刻知道学习一个新的语言,系统性的学习资料是非常重要的,否则学的七零八碎的,java 的项目规范,开发规范等等都使用的不标准也太尴尬了。 ----- 特别是框架的使用不能很好的掌握 spring-boot 还有库的使用 无法判断 用哪种 orm 更好 比如 orm-jdbctemplate mybatis mybatis-plus

    希望能和 java 互换技能
    dearzhzhao
        40
    dearzhzhao  
    OP
       2023-11-07 18:17:38 +08:00
    @poembre 认真的?
    z1829909
        41
    z1829909  
       2023-11-07 19:32:35 +08:00
    https://www.bilibili.com/video/BV1gf4y1r79E 这个不错, 适合有开发经验的人快速上手
    cI137
        42
    cI137  
       2023-11-07 23:48:36 +08:00 via iPhone
    go 就完事了,用 go 还那么拘谨干什么
    poembre
        43
    poembre  
       2023-11-08 19:08:38 +08:00
    @dearzhzhao 认真,花了 1 天时间 装了环境 。 目前还在 拿 8 年前 springMvc blog 练手中。
    dearzhzhao
        44
    dearzhzhao  
    OP
       2023-11-09 11:25:23 +08:00
    @poembre 互加微信,你有问题请教我,我有问题也可以请教你呐。完美的。本人 v:x_h886688
    nanmu42
        45
    nanmu42  
       2023-11-10 09:27:30 +08:00
    我前些年总结的,希望能帮到你。

    Golang 第二语言指南: 学习路径、最佳实践以及工程化

    https://nanmu.me/zh-cn/posts/2021/way-to-go/
    dearzhzhao
        46
    dearzhzhao  
    OP
       2023-11-10 10:03:31 +08:00
    @nanmu42 好的,谢谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3014 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:07 · PVG 22:07 · LAX 06:07 · JFK 09:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.