关于 GO 语言的入门学习 求解答 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回技术问题时复制粘贴 AI 生成的内容
2ME
V2EX    程序员

关于 GO 语言的入门学习 求解答

  •  
  •  
    2ME 2017-08-29 11:25:08 +08:00 8328 次点击
    这是一个创建于 3014 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前做 PHP 工作就是拧螺丝 ..

    拧完螺丝后还是有些富余时间的 想学习一下 GO

    希望能顺便补一下 CS 基础 自己基础比较差

    目前 GO 吸引我的特性主要是并发支持比较好

    最近工作为了脚本效率需要接触一些并发编程 然后遇到比较多坑 锁机制 内存泄漏

    可能是自己水平确实太差 = =

    所以想借着学习一门新的语言的新鲜感顺便恶补基础知识 提升下自己

    也想接触到 PHP 编程一般接触不到的东西

    之前没接触过 C 语言 所以对 GO 的一些东西比较难理解

    所以想知道如何系统性的学习 GO

    语法还是比较好理解的 主要不是很懂 GO 的结构,关于包的一些东西 似乎和 composer 的 package 还是有很大区别的

    不知道如何开始敲代码入手去做一些东西实践学习

    41 条回复    2018-09-24 17:59:09 +08:00
    zjsxwc
        1
    zjsxwc  
       2017-08-29 11:31:22 +08:00   1
    go 语法太简单,有 ide 自动提示辅助的时候,不用怎么学就能写代码了。
    Immortal
        2
    Immortal  
       2017-08-29 11:32:03 +08:00   1
    go 语言实战 go 语言学习编辑 算对我帮助不少的书
    同 php 转
    ecofast
        3
    ecofast  
       2017-08-29 11:32:28 +08:00   1
    SuperMild
        4
    SuperMild  
       2017-08-29 11:38:15 +08:00   2
    - https://play.golang.org/
    > 学完这个就已经具备基础知识

    - https://golang.org/doc/code.html
    > Go 的包非常简单,全部项目都在同一个目录里( gopath ),刚开始没有必要自己搞特殊目录。

    - http://golang.org/doc/effective_go.html
    > 这个值得反复多看

    - http://exercism.io/languages/go/about
    > 这个练手找感觉,有语言风格提示可以养成好习惯,看别人的答案有新灵感。
    WildCat
        5
    WildCat  
       2017-08-29 11:40:04 +08:00   5
    非常不认同“ Go 语法简单,有 IDE 提示不用学”这种观点,私以为以下几个点特别需要注意:
    1. interface
    2. 并发编程的思想(尤其从 PHP 转过来的)、锁、channel 等
    3. 标准库

    学习资料只推荐一本书:Go 程序设计语言(英文版),艾伦 A.A.多诺万 Alan A.A.Donovan)、 布莱恩 W.柯尼汉 (Brian W.Kemighan)
    从 Amazon 来看,中文译本质量极差。

    其他国人的书请慎重购买,尤其是某 CTO 和某框架作者的。
    PythonAnswer
        6
    PythonAnswer  
       2017-08-29 11:43:47 +08:00   1
    py 写惯了,真不想写 go。。懒病是不是要电才行?
    simple2025
        7
    simple2025  
       2017-08-29 11:46:00 +08:00 via iPhone   2
    @PythonAnswer 所以我学 js 去了,前端 py 做不了
    goodspb
        8
    goodspb  
       2017-08-29 11:55:30 +08:00   2
    关键还是基础吧,C 圣经,Unix 编程圣经,网络圣经其实都是必须掌握的,否则就算你学懂了 Go 的语法,又能拿它开发什么样的应用呢?(同 PHP 程序员..
    Death
        9
    Death  
       2017-08-29 11:58:46 +08:00 via Android
    @WildCat
    Go 语言圣经的话,社区汉化版的质量感觉还可以
    2ME
        10
    2ME  
    OP
       2017-08-29 11:59:26 +08:00
    @WildCat interface 概念似乎和 PHP 的 interface 没什么区别

    主要是为了学习关于并发编程的思想,锁 等相关的一些知识
    2ME
        11
    2ME  
    OP
       2017-08-29 12:02:53 +08:00
    @goodspb 已经意识到了关键是基础 所以想借着学习一门新的语言的新鲜感补充基础 文中有提 .. 主要是现在单独去看基础书实在看不下去.. 犯困
    2ME
        12
    2ME  
    OP
       2017-08-29 12:04:06 +08:00
    @PythonAnswer 我也是懒癌晚期 学 GO 这个想法几个月前就有了 拖到现在感觉不学点东西不行了.. 每天拧螺丝学不到什么 自己还不上进 感觉要死
    wweir
        13
    wweir  
       2017-08-29 12:24:27 +08:00 via Android
    @WildCat 国人的书还是有一个不错的
    雨痕的读书笔记
    mikulch
        14
    mikulch  
       2017-08-29 12:50:58 +08:00
    @WildCat 中文译本有幸看过
    实在是太他妈的烂了。
    eyp82
        15
    eyp82  
       2017-08-29 13:11:48 +08:00
    Go 语言的精髓在于那个 goroutine+channel, 虽说解决了大部分的并发问题, 但还是要做同步的
    EricJia
        16
    EricJia  
       2017-08-29 13:57:32 +08:00
    g8287694
        17
    g8287694  
       2017-08-29 14:02:43 +08:00
    和我想的差不多,同 php 程序员
    jaylee77
        18
    jaylee77  
       2017-08-29 14:22:57 +08:00
    推荐 《 Go In Action 》 看了这本书就并发编程就没什么问题了
    ETiV
        20
    ETiV  
       2017-08-29 14:37:11 +08:00 via iPhone
    我接触过一个线上项目,用的 go

    感觉在真正能上线的项目里,最致命的是 GitHub 上那些良莠不齐的库……

    比如某个 Orm,初始化时的主键为 0、nil
    在 Save 的时候,执行的 mysql 语句,并没有“ where id=0 ”,也没有“ limit 1 ”

    然后整张表就这么被 update 了
    goodspb
        21
    goodspb  
       2017-08-29 15:11:05 +08:00
    @2ME 明白了,其实是想找练手吧?假如是想深入学习服务器开发的,用 Go 开发反而没有帮助,因为绝大多数都是已经将底层封装好的类库了。想了解系统知识的话,建议还是 C/C++ -> PHP 扩展 -> Unix 编程 这线路吧。(例如先读懂 swoole , 从一个 php 开发者角度分析你的需求)
    cokyhe
        22
    cokyhe  
       2017-08-29 16:26:57 +08:00
    这个可以有
    mengzhuo
        23
    mengzhuo  
       2017-08-29 17:21:47 +08:00
    工作是扭螺丝,你以为换个螺丝刀就不是扭螺丝了么~
    2ME
        24
    2ME  
    OP
       2017-08-29 17:38:16 +08:00
    @mengzhuo 是为了更好的拧螺丝阿.. 现在螺丝刀不顺手还要折腾螺丝刀 不如换个更好用的螺丝刀解决问题= =
    itfanr
        25
    itfanr  
       2017-08-29 20:58:01 +08:00 via Android
    @WildCat 雨痕的和郝林的不错
    wwek
        26
    wwek  
       2017-08-29 21:31:57 +08:00
    https://gobyexample.com/
    Go by Example is a hands-on introduction to Go using annotated example programs. Check out the first example or browse the full list below.

    把这个多撸几遍
    wwek div class="fr">     27
    wwek  
       2017-08-29 21:33:08 +08:00
    @ETiV 是哪个 ORM
    kotokz
        28
    kotokz  
       2017-08-29 21:44:48 +08:00
    @WildCat
    Brian 的书绝对值得推荐,go 确实看这一本就够了
    carlonelong
        29
    carlonelong  
       2017-08-29 21:46:02 +08:00
    还是学学 C 吧,不然指针什么的都没概念怎么深入玩 go
    pubby
        30
    pubby  
       2017-08-29 22:58:34 +08:00 via Android
    @ETiV
    @wwek 应该是 gorm 哈哈
    ETiV
        31
    ETiV  
       2017-08-29 23:04:31 +08:00   1
    @wwek

    http://jinzhu.me/gorm/crud.html#update


    // Update with struct only works with none zero values, or use map[string]interface{}
    db.Model(User{}).Updates(User{Name: "hello", Age: 18})
    //// UPDATE users SET name='hello', age=18;
    pubby
        32
    pubby  
       2017-08-29 23:20:36 +08:00 via Android
    @ETiV 所以没有这个都不敢上线的

    // 确保 update/delete 时一定要有 where 条件
    db.BlockGlobalUpdate(true)
    chuhemiao
        33
    chuhemiao  
       2017-08-29 23:22:20 +08:00
    Go 语言学习笔记=》雨痕
    ETiV
        34
    ETiV  
       2017-08-30 00:21:30 +08:00
    @pubby

    ……前面文档里并没有

    Google 搜这方法,一共 5 条结果
    还包括了这帖子……

    专坑新人……
    xrlin
        35
    xrlin  
       2017-08-30 00:43:45 +08:00
    @ETiV 我刚发现这个坑......
    HarrisonZ
        36
    HarrisonZ  
       2017-08-30 14:53:38 +08:00
    @ETiV gorm 用 save 的时候不是先 find 出来对象,或者在主键都有值的情况下才用 save 吗,初始化新值难道不是用 craete
    iRiven
        37
    iRiven  
       2017-08-30 16:05:27 +08:00 via Android
    代码撸起来,不然永远不会知道原来还有这回事
    windyboy
        38
    windyboy  
       2017-08-30 17:07:48 +08:00
    我不明白为什么要用 ORM 这些东西
    直接写 SQL 不好吗?
    lepig
        39
    lepig  
       2018-04-03 22:37:33 +08:00
    @WildCat 挖坟。Go 程序设计我也看评价说翻译的很烂。但是原版看不懂。退而求其次的话 还有别的中文书籍推荐吗?同样 php 入 Go 坑
    PyCode
        40
    PyCode  
       2018-09-23 21:44:07 +08:00
    @goodspb 网络圣洁是哪本书啊?
    goodspb
        41
    goodspb  
       2018-09-24 17:59:09 +08:00
    @PyCode UNIX 网络编程,有卷一二三,可以先看卷一。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2632 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 12:57 PVG 20:57 LAX 04:57 JFK 07:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86