News

今天跟大家分享一个etcd的内存大量占用的问题,这是前段时间在我们开源软件Easegress中遇到的问题,问题是比较简单的,但是我还想把前因后果说一下,包括,为什么要用etcd,使用etcd的用户场景,包括etcd的一些导致内存占用比较大的设计,以及最后一些建议。希望这篇文章不仅仅只是让你看到了 ...
这篇文章的主要内容主要是我今年3月份在腾讯做的直播,主要是想让一些技术人员对世界有一个大体的认识,并且在这个认识下能够有一个好的方法成就自己。而不是在一脸蒙圈的状态下随波逐流,而日益迷茫和焦虑。直播完后,腾讯方面把我的直播形成文字的形式发了出来,我觉得我可以再做 ...
相信大家对Vim都有一个好的入门了。我在这里把我日常用Vim编程的一些技巧列出来给大家看看,希望对大家有用,另外,也是一个抛砖引玉的过程,也希望大家把你们的技巧跟贴一下,我会更新到这篇文章中。注:这篇文章里的这些技巧全都是vim原生态的,不需要你安装什么插件。
这篇文章是《HTTP API 认证授权术》的姊妹篇,在那篇文章中,主要介绍了 HTTP API 认证和授权技术中用到的 HTTP Basic, Digest Access, HMAC, OAuth, JWT 等各种方式,主要是 API 上用到的一些技术,这篇文章主要想说的是另一个话题——身份认证。也就是说,怎么确认这个数据就是这个人发出来的?
Channel 管理 当然,如果你要写出一个 泛型的pipeline框架 并不容易,而使用 Go Generation,但是,我们别忘了Go语言最具特色的 Go Routine 和 Channel 这两个神器完全也可以被我们用来构造这种编程。 Rob Pike在 Go Concurrency Patterns: Pipelines and cancellation ...
为什么要用不同的HTTP动词 Restful 复杂查询 几个主要问题的回应 1)为什么API 要Restful,并符合规范? 2)为什么“过早优化”不适用于API设计? 3)POST 更安全吗? 4)全用 POST 可以节省时间减少沟通吗? 5)早点回家的正确姿势 6)工作而已,优雅不能当饭吃 ...
两个月前,我试着想用 ChatGPT 帮我写篇文章《eBPF 介绍》,结果错误百出,导致我又要从头改一遍,从那天我觉得 ChatGPT 生成的内容完全不靠谱,所以,从那天开始我说我不会再用 ChatGPT 来写文章(这篇文章不是由 ChatGPT 生成),因为,在试过一段时间后,我对 ChatGTP 有基于如下的认识: ChatGPT 不是 ...
举几个例子 为了讲清楚我的上述观点,请让我先铺垫一下,先说几个例子吧,韩寒的例子我就不说了。 苏步青同学在小学时成绩很糟糕,全班倒数第一。 华罗庚同学上学时数学还考不及格,要不是王维克老师的鼓励并让他爱上了数学,他可能也就完全埋没了。 郑渊洁上学时,老师要求写《早起的 ...
看到好些人在写更新缓存数据代码时, 先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。 然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新 ...
在本篇文章中,我们来讨论一下Functional Options这个编程模式。这是一个函数式编程的应用案例,编程技巧也很好,是目前在Go语言中最流行的一种编程模式。但是,在我们正式讨论这个模式之前,我们需要先来看看要解决什么样的问题。 本文是全系列中第3 / 10篇: Go编程模式 Go编程模式:切片,接口 ...
Go语方的类型检查 因为Go语言目前并不支持真正的泛型,所以,只能用 interface{} 这样的类似于 void* 这种过度泛型来玩这就导致了我们在实际过程中就需要进行类型检查。Go语言的类型检查有两种技术,一种是 Type Assert,一种是Reflection。 Type Assert 这种技术,一般是对某个变量进行 .(type) 的转型操作 ...
相关技巧和最佳实践 要超过别人其实还是比较简单的,尤其在今天的中国,更是简单。因为,你只看看中国的互联网,你就会发现,他们基本上全部都是在消费大众,让大众变得更为地愚蠢和傻瓜。 所以,在今天的中国,你基本上不用做什么,只需要不使用中国互联网,你就很自然地超过大多数人 ...