加餐|阶段答疑:这些代码里的小知识点你都知道吗?
叶剑峰
该思维导图由 AI 生成,仅供参考
你好,我是轩脉刃。
上节课国庆特别放送,我们围绕业务架构和基础架构,聊了聊这两种方向在工作上以及在后续发展上的区别,也讲了做系统架构设计的一些术。今天就回归课程,特别整理了关于课程的五个共性问题来解答一下。
Q1、GitHub 分支代码跑不起来怎么办?
GitHub 中的每个分支代码都是可以跑起来的,我本人亲测过了。出现这个问题,可能是因为有的同学只使用 go run main.go。
go run main.go 只会运行编译运行的指定文件,而一旦当前目录下有其他文件,就不会运行到了,所以比如在 geekbang/02 或者 geekbang/03 分支中,根目录下有其他文件,就不能运行了。你需要使用 go build 先编译,然后使用./coredemo 来运行。
另外因为最近 Go 版本更新了,有同学问到这个问题:go mod 能指定 1.xx.x 版本么?比如想要把 go.mod 中指定 go 版本的 go 1.17 修改为 go 1.17.1,希望我的项目最低要求 1.17.1。但是 Goland 老是把版本号修改回 go 1.17,是不是我哪里设置有问题?
这是一个小知识点,不过估计不是每个人都知道。其实这里不是设置有问题,而是 go.mod 要求就是如此。
指定 go 版本的地方叫 go directive 。它的格式是:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了代码运行、思维导图绘制和HTTP服务器源码等技术知识点。首先介绍了解决GitHub分支代码无法运行的方法,以及在go.mod中指定特定的Go版本的技巧。其次,讨论了如何使用思维导图快速区分主线和细节,并通过模拟步骤理解源码的方法。最后,解释了HTTP服务器源码中存在两层循环的原因,涉及到HTTP的keep-alive机制对性能和服务器TIME_WAIT时间的影响。文章内容涵盖了代码运行、源码分析和性能优化等多个方面,适合技术人员快速了解相关知识点。 此外,文章还涉及了context作为函数的第一个参数的实践意义,以及服务雪崩的原因和应对措施。其中,context作为第一个参数的好处在于链路通用内容传递和统一设置超时,而服务雪崩的原因包括超时设置不合理、重试加大流量和缓存雪崩等。这些内容对于技术人员在实际工作中具有重要的指导意义。 总之,本文内容丰富,涵盖了多个技术领域,对于读者快速了解相关知识点具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 Web 框架》,新⼈⾸单¥59
《手把手带你写一个 Web 框架》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- Frankeygo run main.go 改成 go run . 即可跑通
作者回复: 是的,go eun main只是跑了main.go
2021-10-062 - 牙小木http 层的keep alive 和 tcp层的keep alive 都是长连接必须设置的吗,两层区别和联系是神马2021-10-09
收起评论