logo头像

Aoho's Blog

Golang

如何在 Go-kit 和 Service Mesh 中进行服务注册与发现?

如何在 Go-kit 和 Service Mesh 中进行服务注册与发现?

Service Mesh 作为下一代的微服务架构,它将服务间的通信从基础设施中抽离出来,达到交付更可靠的应用请求、监控和控制流量的目的。Service Mesh一般与应用程序一同部署,作为“数据平面”代理网络以及“控制平面”代替应用与...

如何使用 Go 更好地开发并发程序

如何使用 Go 更好地开发并发程序

Go 语言的并发特性是其一大亮点,今天我们来带着大家一起看看如何使用 Go 更好地开发并发程序? 我们都知道计算机的核心为 CPU,它是计算机的运算和控制核心,承载了所有的计算任务。最近半个世纪以来,由于半导体技术的高速发展,集成电路...

正确规避常见的 Go 并发陷阱

正确规避常见的 Go 并发陷阱

作为一门并发性能优越的语言,Go虽然降低了协程并发开发的难度,但也存在一些并发陷阱,这就需要我们在开发时额外注意。 我们再来介绍与Go 并发相关的几个小技巧,帮助你规避 Go 并发开发的一些陷阱。 闭包传递参数的问题首先是循环并发时闭...

没有 try-catch,该如何处理 Go 错误异常?

没有 try-catch,该如何处理 Go 错误异常?

错误处理是软件开发中不可回避的问题,Go 中主要通过 error 和 panic 分别表示错误和异常,并提供了较为简洁的错误异常处理机制。本文我们就来介绍 Go 中的一些错误处理机制,再聊聊 Go 语言中错误处理的槽点和期望。 Err...

Go 1.14 正式发布

Go 1.14 正式发布

Go 在 2019 年发布了Go 1.12与Go 1.13。Go 1.13 的大部分变化在于工具链、运行时和库的实现。时隔半年,Go 1.14 正式发布。 和之前的版本一样,该版本保留了 Go 1 兼容性的承若,这个版本的大部分更新在...

Go 1.13 正式发布

Go 1.13 正式发布

Go 1.13Go 1.12 在今年 2 月份对外发布。相较于之前增加了 go modules 机制、WebAssembly 支持的 Go 1.11,变化略小。 就在这周,最新 Go 版本 1.13 在 Go 1.12 发布六个月后推...

Go的包管理工具(四):Go Module Proxy

Go的包管理工具(四):Go Module Proxy

在前面的文章,我们介绍了Go Modules。Go module支持了Versioned Go,并初步解决了包依赖管理的问题。 新的工作模式也带来了一些问题,在大陆地区我们无法直接通过 go get 命令获取到一些第三方包,最常见的就...

Go的包管理工具(三):Go Modules

Go的包管理工具(三):Go Modules

在前面的文章,我们先是介绍了Go 的几种包管理方式,然后具体介绍了一种包管理的工具:glide。随着 Go 1.11 的发布,官方的包管理工具 Go Modules 变得流行起来。在发布不久的 Go 1.12 版本中,增强了对 Go ...

Go的包管理工具(二):glide

Go的包管理工具(二):glide

在上一篇文章中介绍了 Go 的环境配置和包管理的几种方式。Go 的包管理是一直是为人诟病之处,从 Go 1.5 引入的 vendor 机制、准官方工具dep,到 Go 1.5 的 go modules,目前为止还没一个简便的解决方案。...

Go 1.12 版本的新特性

Go 1.12 版本的新特性

Go 1.12昨天,Go 官方发布 1.12 版本。本文介绍下 Go 1.12 版本变更的内容。 Go 1.12 正式版发布了,距离上个正式发布版 Go 1.11 已经过去半年。跟往常一样,Go 1.12 保持了 兼容性承诺,预期所有...