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

对于想深入理解 Go 语言背后的设计哲学和实现细节的童鞋们,可以看过来

  •  9
     
  •   sztink ·
    cyub · 250 天前 · 3315 次点击
    这是一个创建于 250 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟写了一本关于 Go 语言的电子书:《深入 Go 语言之旅》,该书从 Go 语言源码出发,分析 Goroutine 调度流程,通道、上下文等的源码,以及 defer ,panic 等语言特性,希望能够帮助阅读此书的人更好的理解 Go 语言背后的设计哲学和实现细节。

    《深入 Go 语言之旅》一共分为四大章节:《准备篇》、《基础篇》、《运行时篇》、《实践篇》,会持续不断更新中,有兴趣的同学可以移步阅读:《深入 Go 语言之旅》。写的不好之处,敬请海涵指正。目前四大章节更新的内容列表如下:

    《准备篇》:

    《基础篇》:

    《运行时篇》:

    23 条回复    2024-05-16 14:13:45 +08:00
    aw2350
        1
    aw2350  
       250 天前
    点赞加收藏
    oiken
        2
    oiken  
       250 天前
    点赞加收藏+1
    lasuar
        3
    lasuar  
       250 天前
    有些空章节:条件变量 - sync.Cond 、互斥锁 - sync.Mutex 、调度器、类型系统。。
    Felldeadbird
        4
    Felldeadbird  
       250 天前
    收藏了,有时间再认真阅读。
    TimeDong
        5
    TimeDong  
       250 天前
    点赞加收藏+2
    wjx0912
        6
    wjx0912  
       250 天前
    点赞加收藏
    qloog
        7
    qloog  
       250 天前
    必须 点赞加收藏
    ShonStewart
        8
    ShonStewart  
       250 天前
    点赞加收藏,求一个 dark theme
    thinkingbullet
        9
    thinkingbullet  
       250 天前
    楼主 nb,点赞 收藏 666
    Shazoo
        10
    Shazoo  
       250 天前
    点赞+收藏。
    lvlongxiang199
        11
    lvlongxiang199  
       250 天前   ❤️ 1
    瞎翻了下, 感觉没提到啥设计哲学. 比如可以说说以下问题. 如何实现是一个有意思的问题, 但在语言设计上选择要实现 X 这种特性而非 Y 特性也是个有意思的问题.
    + 为什么 go 没有 Java 中的异常机制, 出现异常的时候选择返回 err 而非抛出异常 ? 这是不是一个好的设计 ? 异常有啥问题
    + 为啥 go 没有一般意义上的继承 ? 如果没有继承, 如何实现多态 ? embedded struct 算不算继承 ? 一般意义上的继承又有啥问题 ?
    + channel 跟 Java 中 BlockingQueue 又有啥区别 ? 通过共享内存实现的并发跟通过 channel 实现的并发在哪种场景下更好 ?
    + 为啥 channel 会有 close 这个操作, 在哪些场景下会用到这个操作 ?

    另外讲闭包的时候, 可以提下如何让函数实现一个接口.
    randyzhang5201
        12
    randyzhang5201  
       250 天前
    给大佬点赞
    luke2sweet
        13
    luke2sweet  
       250 天前
    大佬厉害
    seakee
        14
    seakee  
       250 天前
    使用拼接符 + 进行拼接,这块需要更新一下,1.22 后 循环的每次迭代都会创建新变量, 所以地址会发生变化
    guanzhangzhang
        15
    guanzhangzhang  
       250 天前
    给大佬点赞
    sztink
        16
    sztink  
    OP
       250 天前
    @lasuar 是的。这些内容还没弄完,后续搞完了会放出来。
    sztink
        17
    sztink  
    OP
       250 天前 via iPhone
    @lvlongxiang199 大佬呀👍🏻,你对 go 理解很深呀。 感谢给出建议。
    capgrey
        18
    capgrey  
       249 天前
    写得太好了!!!
    latiaoder214
        19
    latiaoder214  
       249 天前
    收藏了,膜拜大佬
    codsddos
        20
    codsddos  
       241 天前
    好像教程链接挂了
    sztink
        21
    sztink  
    OP
       240 天前
    @codsddos 服务器欠费了。现在可以了。
    jeffmingup
        22
    jeffmingup  
       225 天前   ❤️ 1
    pppwww
        23
    pppwww  
       198 天前
    先收藏再看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2459 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:35 · PVG 10:35 · LAX 18:35 · JFK 21:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.