a3d21's blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

Go测试示例

这篇文章的目的,是分类汇总Go测试示例。当你准备编写代码测试时,可以作为参考。
2023-01-03
#编程 #测试

Go纯函数实现Map

这是篇水文。 函数式编程鼓励无状态编程,用函数模拟状态。在编程中,最基础的数据容器是Map,纯函数怎么实现Map呢?
2022-12-27
#编程

分布式ID生成器

分布式ID生成器,是分布式系统中最基础的一部分。通过学习分布式ID生成器设计,可以把握分布式系统设计的核心关键。
2022-11-29
#设计

Go配置热更——动态绑定

当我们使用配置中心时,我们希望配置热更。一般的实现方式是,读取配置初始化并增加变更监听。这种方式可以实现,但需要我们维护配置变更逻辑,不友好。 在大多数场景下,我们想要的其实是一个func(),每次调用返回最新的结构化配置。Go 1.18增加了泛型,可以很优雅地解决配置热更问题。 我以nacos为例,写了一个动态绑定库bind_nacos_cfg。 接口如下 12345678// Supplier
2022-11-15
#编程

我折腾过的编程语言

我折腾过的编程语言有 语言 特点 说明 Go 简单,静态编译 最近3年主要工作语言 Java 生态成熟 Go之前主要工作语言,现在偶尔写些业余项目 Clojure 数据即代码,元编程 17年学函数式编程时学的,写过GUI程序和几个Web小项目 Haskell 强类型函数式 17年学函数式编程时学的,主要是开阔眼界 Kotlin 加糖版Java,有协程 写过Demo,无实
2022-11-13
#编程

为什么我不喜欢心理学?

本文是我,作为一个非专业人士,对心理学的个人看法,可能存在谬误,欢迎批评指正。
2022-08-13
#随笔

一道有趣的概率题

最近看到一道有趣的概率题,内容为 两个预言家,一个准确率90%,一个准确率30%,他们都预言了未日降临,那么末日降临的概率是多少呢?
2022-05-10

GoStream实现BufferChan

在上一篇文章中,我实现了Go BufferChan。但BufferChan作为一个独立库,实际使用上并不方便,所以想着把BufferChan整合进GoStream中。 原理是,将上一篇文章的实现原理封闭在在GoStream的BufferChan()中。
2022-01-28
#编程

实现GoChannel缓存——BufferChan

channel 是一种消息通信方式,常用于异步通信。 在通信过程中,将多个消息按一定数量或时间间隔缓存起来再批量发送,是一种常见的优化方式。常见的策略是,当消息数达到size或超时timeout未收到消息时触发一次消息。 Go实现如下。
2022-01-27
#编程

并发模型

这是一个之前分享过的Slides。
2022-01-25
#编程
123

搜索

Hexo Fluid