写点什么

golang

73 人感兴趣 · 146 次引用

  • 最新
  • 推荐

sync.singleflight 到底怎么用才对?

用户头像
cyningsun1 月 12 日

缓存 在各种场景中被大量使用,在 Cache Miss(缓存未命中)的情况下,就会出现下图的情况

https://static001.geekbang.org/infoq/e0/e084333ec7971317e459f01524078afd.jpeg?x-oss-process=image/resize,w_416,h_234

简明设计模式—创建型

用户头像
29702020 年 12 月 30 日

🎉超级简单的设计模式教程🎉

https://static001.geekbang.org/infoq/66/666245465912a9bf1c66036fd14e3a24.jpeg?x-oss-process=image/resize,w_416,h_234

灵魂一问:数据库连接池到底该怎么配?

用户头像
新世界杂货铺2020 年 12 月 24 日

好家伙,我直接好家伙!GitHub不愧是全球最大的同性交友网站,资源丰富且质量高! 连接池的配置应该按照什么原则来?这个问题在笔者心中疑惑良久,直到在GitHub上发现了About Pool Sizing这篇文章。看完之后一扫笔者心中阴霾,神清气爽。

工厂模式学习

用户头像
en2020 年 12 月 19 日

重温一下工厂模式,作为设计模式的入门,很想将它讲清楚,希望这篇文章能对大家真正的有所帮助。

https://static001.geekbang.org/infoq/35/35000fd85c1006429094a55992c783c2.png?x-oss-process=image/resize,w_416,h_234

深入浅出 Go - sync/atomic 源码分析

用户头像
哈希说2020 年 12 月 17 日

对于并发操作,原子操作 (不可异常/中断的一系列操作) 是一个绕不开的话题,典型的就是 i++ 问题,并发场景下,有多个 CPU 并发执行 i++,原本只想执行一次,实际上变成执行多次,这就涉及到我们今天要聊的 sync/atomic 了

https://static001.geekbang.org/infoq/fd/fd39ef0b31f91103341d193fdc9faa7b.jpeg?x-oss-process=image/resize,w_416,h_234

码了 2000 多行代码就是为了讲清楚 TLS 握手流程(续)

用户头像
新世界杂货铺2020 年 12 月 16 日

“纸上得来终觉浅,绝知此事需躬行”。笔者不敢保证把TLS握手流程的每个细节都讲的十分清楚,所以建议各位读者去github克隆代码,然后自己一步一步Debug必然能够加深印象并彻底理解

如何快速打造一款钉钉 Go sdk

用户头像
Ceelog2020 年 12 月 16 日

开发需要用到钉钉开放平台提供的接口,但是钉钉官方并没有提供 Go 语言版本的 sdk

https://static001.geekbang.org/infoq/f1/f1a9258ad4d1ef0f52fdd1c1f9742f89.png?x-oss-process=image/resize,w_416,h_234

分布式事务框架 seata-golang 通信模型详解

用户头像
阿里巴巴云原生2020 年 12 月 11 日

getty 最初由 dubbogo 项目负责人于雨开发,作为底层通信库在 dubbo-go 中使用。随着 dubbo-go 捐献给 apache 基金会,在社区小伙伴的共同努力下,getty 也最终进入到 apache 这个大家庭,并改名 dubbo-getty 。

https://static001.geekbang.org/infoq/03/03ef2b0791578b4ab2da4ed5fe46c227.jpeg?x-oss-process=image/resize,w_416,h_234

区分 Protobuf 3 中缺失值和默认值

用户头像
新世界杂货铺2020 年 12 月 11 日

来自公众号:新世界杂货铺

https://static001.geekbang.org/infoq/21/218b7304c37756273fe2f32dadf875d8.jpeg?x-oss-process=image/resize,w_416,h_234

Linux 角度仰视 Goroutine 的 GMP

用户头像
ninetyhe2020 年 12 月 8 日

文章略长,期待留下你的不同看法

https://static001.geekbang.org/infoq/35/35000fd85c1006429094a55992c783c2.png?x-oss-process=image/resize,w_416,h_234

沉默的性能杀手 - false sharing

用户头像
哈希说2020 年 12 月 6 日

一般在做性能优化时,我们往往着眼于代码层面,很少关注硬件层面。这篇文章的主题是 false sharing (伪共享),在介绍 false sharing 前,我们首先需要了解下什么是 CPU Cache

https://static001.geekbang.org/infoq/35/35000fd85c1006429094a55992c783c2.png?x-oss-process=image/resize,w_416,h_234

深入浅出 Go - sync.Pool 源码分析

用户头像
哈希说2020 年 12 月 2 日

在开发过程中我们可能需要用到对象。一般的做法是在函数中进行实例化对象,使用完后交给 GC 处理,但是这种方式在高并发场景下会导致 GC 时间过长,进而影响系统性能。这也就牵扯到我们今天要讲的 sync.Pool

https://static001.geekbang.org/infoq/af/af689554b83208c89e922044939d291a.jpeg?x-oss-process=image/resize,w_416,h_234

使用 Go 实现 Async/Await 模式

用户头像
Roc2020 年 12 月 1 日

Golang 是一种并发编程语言。它具有强大的特性,如 Goroutines 和 Channels,可以很好地处理异步任务。另外,goroutines 不是 OS 线程,这就是为什么您可以在不增加开销的情况下根据需要启动任意数量的 goroutine 的原因,它的堆栈大小初始化时仅 2KB

https://static001.geekbang.org/infoq/be/be5a88f8ec2987a3ec5bf35aaaa57f5a.jpeg?x-oss-process=image/resize,w_416,h_234

Effective go 笔记 -01

用户头像
邵俊达2020 年 11 月 30 日

想要写好 Go 代码不仅需要理解 Go 的特性和风格,还需要了解 Go 的命名、格式化以及项目结构等约定。

https://static001.geekbang.org/infoq/8a/8aef4ab3eec9332a2f1656b55f73e452.jpeg?x-oss-process=image/resize,w_416,h_234

码了 2000 多行代码就是为了讲清楚 TLS 握手流程

用户头像
新世界杂货铺2020 年 11 月 28 日

TLS1.3的单向认证和双向认证中,总的数据收发仅三次,单次发送的数据中包含一个或者多个消息。

Linux 服务器开发学习路线总结(配图 c/c++ )后台开发、Golang 后台开发、后端技术栈

用户头像
Linux服务器开发2020 年 11 月 27 日

本文总结了目前互联网行业Linux c/c++ 后端岗位开发工程师、服务器开发架构师以及Golang开发工程师技术栈知识点、大家可以看看还有没有需要补充的。

https://static001.geekbang.org/infoq/89/899ca5f667e1617daea8463398bce093.jpeg?x-oss-process=image/resize,w_416,h_234

一个隐藏在方法集和方法调用中且易被忽略的小细节

用户头像
新世界杂货铺2020 年 11 月 23 日

作为一个长期从事Go语言开发的程序猿,笔者不敢说自己是老油条但也勉强算一个小油条。然而就在今天,笔者研究TLS/SSL握手源码的时候,突然灵光一闪,想到了一个和自己认知不符的现象,于是赶紧写了一个例子验证一番,结果当头一棒直到码这篇文章时依旧懵逼

https://static001.geekbang.org/infoq/35/35000fd85c1006429094a55992c783c2.png?x-oss-process=image/resize,w_416,h_234

深入浅出 Go - sync.Map 源码分析

用户头像
哈希说2020 年 11 月 20 日

Go 的 map 在并发场景下,只读是线程安全的,读写则是线程不安全的。Go1.9 提供了并发安全的 sync.Map,通过阅读源码我们知道 snyc.Map 通过读写分离的机制,降低了锁的粒度,以此来提高并发性能

https://static001.geekbang.org/infoq/35/35000fd85c1006429094a55992c783c2.png?x-oss-process=image/resize,w_416,h_234

深入浅出 Go - sync.Once 源码分析

用户头像
哈希说2020 年 11 月 20 日

sync.Once 是 Go 标准库提供的函数,可以用于实现单例模式,确保回调函数只执行一次,那么它是怎么实现的呢?

https://static001.geekbang.org/infoq/a4/a4cd76f3a99d2447181bb4226c5b6a6e.jpeg?x-oss-process=image/resize,w_416,h_234

HTTP2 服务器推送的第一次尝试

用户头像
新世界杂货铺2020 年 11 月 17 日

在HTTP1.x中,访问一个页面,浏览器首先获取HTML资源,然后在解析页面时增量地获取其他资源,服务器必须等待浏览器发出请求后才下发页面内资源。而服务器实际上是知道页面内资源有哪些的,如果服务器能够在浏览器显式请求资源之前就将资源推送到浏览器。

https://static001.geekbang.org/infoq/28/282d8d08d4f7ac325499f0bb775179c9.png?x-oss-process=image/resize,w_416,h_234

你以为只是简单的排序?(一)

用户头像
书旅2020 年 11 月 14 日

排序思想很简单?写一个bug free的排序代码试试?

https://static001.geekbang.org/infoq/4d/4d9c1718f8a635934349bf71b0fef7ca.jpeg?x-oss-process=image/resize,w_416,h_234

又一道比较运算符相关的面试题让我明白基础很重要

用户头像
新世界杂货铺2020 年 11 月 9 日

经过千辛万苦终于明白了上一道面试题是咋回事儿,这个时候却见面试官微微一笑道:“下面的输出结果是什么”

装饰器模式

用户头像
猴子胖胖2020 年 11 月 8 日

装饰器模式,在运行期动态地给对象添加额外的职责,比子类更灵活。有两种不同的使用方式,一种为增强功能,一种为添加功能。

策略模式

用户头像
猴子胖胖2020 年 11 月 8 日

策略模式,当在做一件事时有不同的方法时,即可定义成不同的策略,抽象出策略接口,然后由调用方选择使用什么样的方法完成工作。

模板方法模式

用户头像
猴子胖胖2020 年 11 月 8 日

模板方法模式,通过父类定义模板方法,方法内调用必须由子类实现的方法,子类实现具体的方法,从而达到定制模板的目的。

单例模式

用户头像
猴子胖胖2020 年 11 月 8 日

单例模式,保证全局只有一个对象实例。能够避免对象重复创建带来的开销。

抽象工厂模式

用户头像
猴子胖胖2020 年 11 月 8 日

抽象工厂模式,对同一类型的工厂进行抽象,抽取出工厂接口,具体的工厂实现工厂接口,具体的工厂创建具体的对象。

工厂方法模式

用户头像
猴子胖胖2020 年 11 月 8 日

工厂方法模式,每种类型都创建对应的工厂,各个工厂均实现工厂接口,不同类型的对象通过各自的工厂方法创建。

简单工厂模式

用户头像
猴子胖胖2020 年 11 月 8 日

简单工厂模式, 提供创建接口对象的工厂方法,将对象交由工厂创建,客户端只和工厂打交道,获得接口对象。

golang_golang资料文章-InfoQ写作平台