原生gRPC与RESTful HTTP API并包——gRPC-Gateway实践

众所周知,Google的gRPC体系可谓是相当好用,在有protoc这样的工具加持下,原本要维护调用侧和服务侧两部分代码,现在写完proto文件直接交给protoc编译一下即可,可谓是减少了不少工作量...

<span title='2022-06-28 20:47:23 +0800 CST'>2022-06-28</span>

贴贴地气——解决Go语言没有原生RCU一致性原语的问题

众所周知,Go语言里没有原生的RCU一致性原语,这在一些特定场景下,会造成蛮大的性能问题。为了解决这个问题,我们来贴贴地气,在符合适用场景需要的条件下,使用简单粗暴的手段解决问题。 前言 之所以需要RCU...

<span title='2021-12-12 15:23:13 +0800 CST'>2021-12-12</span>

数据结构常用算法

在前几天,有幸被字节跳动基础架构部发起面试,看起来工作内容也挺对口,一面非常无压力就过了,二面栽在了一个很简单的DP上……本来还打算借助工作时候再自顶向下学算法,现在看起来还是先花时间学吧,不然下一个...

<span title='2021-03-26 16:21:00 +0000 +0000'>2021-03-26</span>

Go KMP算法

足够熟悉KMP原理的就不用看了。本篇的代码比较渣 前言 KMP算法主要适用于在某个指定的文本串中寻找是否存在特定的模式串和其位置,相对暴力匹配效率高很多。 我们假定文本串长度为tL,模式串长度为pL,由于暴...

<span title='2020-03-22 08:09:51 +0000 +0000'>2020-03-22</span>

Go LRU缓存算法

其实我本来不打算写这篇文章的,直到提交完代码后发现…在所有 Go 提交中击败了99.42%的用户…这就有点意思了,所以还是写一篇吧刚好总结一下。 前言 古人云,搬砖5分钟,修bug两...

<span title='2020-03-20 16:18:21 +0000 +0000'>2020-03-20</span>

Go维护大顶堆进行排序和实现并行排序的一点想法

前言 都说没有最优的算法,只有最合适的算法。然而我在leetcode上提交排序代码时9/10通过,只剩最后一个一大串的排序(估摸着大概4万多个数吧),因为超出时间迟迟无法通过。 写到这里,感谢一下陈老哥,...

<span title='2020-03-19 06:50:38 +0000 +0000'>2020-03-19</span>

Golang的io.MultiWriter实现原理

Golang的标准库中包含一个io包,其中有个MultiWriter方法。这个方法不论传入什么样的Writer甚至是os.File都能够正常接受,这让我有些好奇他是怎么实现的。本篇文章对此进行阐述 深挖...

<span title='2020-03-12 05:04:53 +0000 +0000'>2020-03-12</span>

golang搬砖填坑指南 1

写这篇文章是因为这两天在写一个运维小工具,自动备份数据并加密上传到对象存储用的,由于牵扯到备份,免不了需要压缩,在使用golang做数据压缩时出了点问题,本文针对这个问题做相关研究和探讨。 前言 不过其实...

<span title='2020-02-29 08:31:18 +0000 +0000'>2020-02-29</span>

C语言链表实现图书管理系统

使用链表实现一个小的图书管理系统,要求有基础的增改删查功能 代码存放地址 代码放在了这里1 开发环境及说明 环境 Ubuntu 18 Desktop x64 + GCC 7.3.0 + Code Blocks 说明 源码仅仅为main.c,图书列表为book.txt ,确保两个文件在同一目...

<span title='2018-10-11 09:42:13 +0000 +0000'>2018-10-11</span>