Golang的发展可以用日新月异来形容,但是这并非褒义词,而是说它在性能、功能上存在诸多不完善之处,相同的功能伴随着小版本的发展,也会出现破坏性的变化。
大部分情况下大家下载 Go 项目都是使用`go get`命令,它除了会下载指定的项目代码,还会去下载这个项目所依赖的所有项目。但是有的时候我们的项目由于各种原因我们的项目会员很多包没有下载,要每个包都重新下载。这样的话怎么办呢?
众所周知, 在分布式全局唯一ID生成器方案中, 由Twitter开源的SnowFlake算法,因其有性能高, 代码简单, 不依赖第三方服务, 无需独立部署服务等优点, 在一般情况下已经能满足绝大多数系统的需求
控制并发有两种经典的方式,一种是WaitGroup,另外一种就是Context,今天我就谈谈Context。WaitGroup是一种控制并发的方式,它的这种方式是控制多个goroutine同时完成。
Go中命名为internal的package,只有该package的父级package才可以访问该package的内容。
WSL(Windows Subsystem for Linux) 是Win10下面的linux子系统,与Win10共享端口,网络,文件和进程列表。现在已经到第二版,wsl2版本基于虚拟机的。目前win10系统默认的还是wsl1。
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力。类似的还有:ngrok、lanproxy等(frp和ngrok都是用go实现,lanproxy是用java实现)。利用内网穿透,我们可以实现微信调试,将内网的应用对外展示等。
请输入阅读密码
这是 Go 应用程序项目的基本布局。它不是核心 Go 开发团队定义的官方标准;然而,它是 Go 生态系统中一组常见的老项目和新项目的布局模式。其中一些模式比其他模式更受欢迎。它还具有许多小的增强,以及对任何足够大的实际应用程序通用的几个支持目录。
在centos7中添加开机自启服务非常方便,只需要两条命令(以socket为例):