最近在公众号【码农桃花源】读到微信一篇关于context的文章,很不错,推荐给大家。原文地址:https://mp.weixin.qq.com/s/GpVy1eB5Cz_t-dhVC6BJNw Go 语言的 context 包短小精悍,非常适合新手学习。不论是它的源码还是实际使用,都值得投入时间去学习。 这篇文章依然想尝试全面、深入地去研究。文章相比往期而言,整体不长,希望你看完可以有所收获! 贴上文章的目录: 什么是context Go 1.7 标准库引入 context,中文译作“上下文”…

背景 使用net/http同时发起多个简单请求时,偶尔会出现EOF或connect: connection reset by peer的情况。明明就是一个很简单的例子,为何会出现这种情况呢? 举例 这里我为了省事,直接套用网上其他人的客户端的例子: req, err := http.NewRequest(method, url, body) if err !=nil{ return nil, err } resp, err := http.DefaultClient.Do(req) if err !=nil{…

陆陆续续使用Go来进行日常业务服务开发有段时间了,慢慢有了一些心得,也在往这些方面进行靠拢。 清晰的文件目录 我们在进行服务开发过程中,往往不是一个人在那战斗,而是一个团队。应该说,对于稍具规模的公司在这个方面都是相当看重的。因为清晰的目录结构、文件命名等体现一个团队的素养,一定程度上降低项目维护成本。比如在A同事接手B同事项目时能够做到尽量快的接手。 下面是我们现有服务的一个目录结构 展开查看 . ├── config │   └── dev.conf ├── constants │   ├── errors │   └── types ├── global │   ├── config.go │   └── config_watcher.go ├── main.go ├── modules │   └── doc.go ├── routes │   └── root.go…

构建初始化环境 下载谷歌浏览器,地址:https://www.google.com/chrome/#_ga=2.207613393.314015719.1537268086-901043581.1537268086 不能下载?点击这里 构建基本环境 浏览地址先输入网址 如神马搜索:https://yz.m.sm.cn/s?q=红岩&from=wy836274&by=submit&snum=…

源地址:https://blog.golang.org/debugging-what-you-deploy 1. 介绍 Go 1.11和Go 1.12在允许开发人员调试对已部署至生成环境的二进制可执行程序方面取得了重大进展。 由于Go编译器在生成更快的二进制文件方面变得越来越积极,我们在可调试性方面已失去了优势。在Go 1.10中,用户在编译时完全禁用编译优化,才能在使用Delve等交互式工具中获得良好的调试体验。但是用户不应该为了可调试性而降低程序性能,尤其是在生产环境中。如果在生产环境了出现了问题,且需要在生产环境进行debug调试,我们不应该采用未经调优的二进制文件直接放到生产环境中。 对于Go 1.11和1.12,我们专注于提升对已经编译优化后的二进制文件的debug体验(Go编译器的默认设置),改进包括: 更准确的入参(value)检测,…