编程技术

在Golang中如何使用并发

Roy

原文地址:这里,省略了一些非重点片段。

本文的主要目标是展示在哪些场景下使用并发更加合适。因此本文中不会讲述并发相关的基本术语,比如goroutines、wait groups、channels、数据竞争等。 我打算创建一系列文章,详细解释最常用的并发相关示例。

在Golang中保持TCP链接

Roy

原文地址:这里,省略了一些非重点片段。

尽管目前大多数系统都是通过gRPC或HTTP进行通信的,但仍有相当多的应用程序使用自定义协议。而且这些自定义协议中的许多都没有类似net/http这样方便的包来管理TCP连接。

这篇文章是为了那些直接和TCP连接打交道的人准备的。本文将讨论如何长期维护健康的TCP会话,以及如何对操持长链接的系统进行调优。

Golang小技巧

Roy

下划线的妙用

大多数情况下,下划线_都用于忽略函数返回值的情况。最近查看authboss这个开源库的代码时,发现这样一种用法:

struct User {
    ...
}

var (
    assertUser   = &User{}
    assertStorer = &MemStorer{}
    _ authboss.User            = assertUser
    _ authboss.AuthableUser    = assertUser
)