编程语言:Go
如何写出优雅的 Golang 代码
Go 语言是一门简单、易学的编程语言,对于有编程背景的工程师来说,学习 Go 语言并写出能够运行的代码并不是一件困难的事情,对于之前有过其他语言经验的开发者来说,写什么语言都像自己学过的语言其实是有问题的,想要真正融入生态写出优雅的代码就一定要花一些时间&
Golang Failpoint 的设计与实现
Failpoint 能用于各种复杂系统中模拟错误处理来提高系统的容错性、正确性和稳定性。
今日头条 Go 建千亿级微服务的实践
今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上。微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿,是业内最大规模的 Go 应用。本文着重讲解了并发,超时控制,性能等在构建微服务中的实践。
解析器眼中的 Go 语言
2019-02-02 Golang Go实现原理 编译原理 词法分析 语法分析 抽象语法树<
Go存储怎么写?深度解析etcd存储设计
etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统,在CoreOS和Kubernetes等开源项目中广泛使用。本文作者深入分析了etcd存储模块的设计和实现,对于深入学习Go存储有很大参考作用。
Go语言最佳实战[一]
如果我要谈论任何编程语言的最佳实践,我需要一些方法来定义 “什么是最佳”。 如果你昨天来到我的主题演讲,你会看到 Go 团队负责人 Russ Cox 的这句话:软件工程就是你和其他程序员花费时间在编程上所发生的事情。
层级时间轮的 Golang 实现
一、引言最近在工作中负责制定重构计划,需要将部分业务代码从 Python 迁移到 Golang。其中一些功能涉及到 Celery 延时任务,所以一直在思考 Golang 中处理延时任务的有效方案。 其实在软件系统中,“在一段时间后执行一个任务” 的需求比比皆是。比如: 客户端发起 HTTP 请求后,如果在指定时间内没有收到服务器的响应,则自动断开连接。 为了实现上述功能,通常我们会使用定时器
海量日志实时收集系统架构设计与go语言实现
日志收集系统应该说是到达一定规模的公司的标配了,一个能满足业务需求、运维成本低、稳定的日志收集系统对于运维的同学和日志使用方的同学都是非常nice的。然而这时理想中的日志收集系统,现实往往不是这样的.
从Go高性能日志库zap看如何实现高性能Go组件
zap是uber开源的golang高性能日志库。本文作者深入分析了zap的架构设计和具体实现,揭示了zap高效的原因。并且对如何构建高性能Go语言库给出自己的建议。
前端遇上Go: 静态资源增量更新的新实践
前端资源加载是前端一个经常谈论的话题。过去我们主要依赖浏览器的默认行为,但这种默认行为往往对缓存的利用率不够。对于一个经常改动发版的页面,我们希望每次上线时,尽可能利用缓存,降低资源发布时给用户带来的加载延时。
聊聊Go中的Range关键字
Go中的range关键字使用起来非常的方便,它允许你遍历某个slice或者map,并通过两个参数(index和value),分别获取到slice或者map中某个元素所在的index以及其值。
golang语言并发与并行——goroutine和channel的详细理解(一)
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。以下是我入门的学习笔记。
Go 语言简介(下)— 特性
在Go语言中,可以使用goroutine实现轻量级的并发编程。通过使用go关键字调用函数或匿名函数,可以创建多个goroutine并发执行。然而,如果不注意并发安全性,可能会导致问题。文章给出了一个卖票的示例,使用goroutine来并发卖票,但存在并发安全性问题。为了解决这个问题,可以使用互斥锁来保护共享资源,确保只有一个goroutine可以访问资源。另外,还提到了一种原子操作的方法:CompareAndSwap,它可以用来实现原子操作,确保并发执行时的安全性。此外,还介绍了Channel的概念,可以用来实现goroutine之间的通信。可以通过创建一个Channel,将数据发送到Channel中,然后从Channel中接收数据。还介绍了如何指定Channel的缓冲大小,以及如何通过Channel来实现goroutine和主程序之间的通信。
Go 语言简介(上)— 语法
这篇文章是关于Go语言的基本语法和特点的介绍。文章以代码和注释为主,介绍了Go语言中数组、切片、分支和循环语句的用法。此外,文章还补充了关于分号的规则,以及map的操作。通过示例代码和注释,文章简明地介绍了Go语言的基本语法和特点。
编写和优化Go代码
Thoughts on Go performance optimization. Contribute to dgryski/go-perfbook development by creating an account on GitHub.
Golang多级内存池设计与实现
上个月,牙膏厂intel因为Meltdown和Spectre两个bug需要给CPU固件和系统打了补丁。我们生产环境使用的是阿里云,打完补丁后,几台IO密集型的机器性能下降明显,从流量和cpu load估计,性能影响在50%左右,不是说好的最多下降30%麽? <