• Tony Bai

    tonybai.com

    一个程序员的心路历程

    订阅 1订阅

  • Go语言联合作者Rob Pike专访:Go确实已成为云基础架构的语言

    2020年05月01日

    尽管看到Docker,Kubernetes和用Go编写的云计算的许多其他组件令人欣喜和重要,但也许并不奇怪。Go确实已经成为云基础架构的语言。- Rob Pike,Go编程语言的联合作者 本文翻译自《Rob Pike interview: “Go has indeed become the language of cloud infrastructure”》。 简介 我们与Go编程语言之父Rob Pike(以下称Rob)...

  • Go语言联合作者Rob Pike专访:Go确实已成为云基础架构的语言

    2020年05月01日

    尽管看到Docker,Kubernetes和用Go编写的云计算的许多其他组件令人欣喜和重要,但也许并不奇怪。Go确实已经成为云基础架构的语言。- Rob Pike,Go编程语言的联合作者 本文翻译自《Rob Pike interview: “Go has indeed become the language of cloud infrastructure”》。 简介 我们与Go编程语言之父Rob Pike(以下称Rob)...

  • 后端程序员一定要看的语言大比拼:Java vs. Go vs. Rust

    2020年05月01日

    这是Java,Go和Rust之间的比较。这不是基准测试,更多是对可执行文件大小、内存使用率、CPU使用率、运行时要求等的比较,当然还有一个小的基准测试,可以看到每秒处理的请求数量,我将尝试对这些数字进行有意义的解读。 为了尝试尽可能公平比较,我在此比较中使用每种语言编写了一个Web服务。Web服务非常简单,它提供了三...

  • go protobuf v1败给了gogo protobuf,那v2呢?

    2020年04月24日

    近期的一个项目有对结构化数据进行序列化和反序列化的需求,该项目具有performance critical属性,因此我们在选择序列化库包时是要考虑包的性能的。 github上有一个有关Go序列化方法性能比较的repo:go_serialization_benchmarks,这个repo横向比较了数十种数据序列化方法的正确性、性能、内存分配等,并给出了一个结论:推...

  • 图解git原理的几个关键概念

    2020年04月07日

    git是那个“爱骂人”的Linux之父Linus Torvalds继Linux内核后奉献给全世界程序员的第二个礼物(不能确定已经逐渐老去的Torvalds能否迸发第三春,第三次给我们一个超大惊喜^_^)。这里再强调一下,git读作/git/,而不是/dʒit/。 在诞生十余载后(2005年发布第一版),git毫无争议地成为了程序员版本管理工具的首选,它改变了全...

  • Hello,WireGuard

    2020年03月29日

    2020年1月28日,Linux之父Linus Torvalds正式将WireGuard merge到Linux 5.6版本内核主线: 图:WireGuard被加入linux kernel 5.6主线的commit log 这意味着在Linux 5.6内核发布时,linux在内核层面将原生支持一个新的VPN协议栈:WireGuard。 图:WireGuard Logo 一. VPN与WireGuard的创新 VPN,全称Virtual Private Netwo...

  • 图解Go运行时调度器

    2020年03月21日

    本文翻译自《Illustrated Tales of Go Runtime Scheduler》。 译注:原文章结构有些乱,笔者自行在译文中增加了一些分级标题,让结构显得更清晰一些:)。 多goroutines形式的Go并发是编写现代并发软件的一种非常方便的方法,但是您的Go程序是如何高效地运行这些goroutines的呢? 在这篇文章中,我们将深入Go运行时底层,从...

  • 使用minio搭建高性能对象存储-第一部分:原型

    2020年03月16日

    近期参与了一个项目,该项目有存储大量图片、短视频、音频等非结构化数据的需求。于是我优先在Go社区寻找能满足这类需求的开源项目,minio就这样进入了我的视野。 图:minio logo 其实三年前我就知道了minio,并还下载玩(研)耍(究)了一番,但那时minio的成熟程度与今天相比还是相差较远的(当时需求简单,于是选择了较为熟...

  • 可视化Go内存管理

    2020年03月10日

    本文翻译自《Visualizing memory management in Golang》。 “内存管理”系列的一部分 在这个由多部分组成的系列文章中,我旨在揭示内存管理背后的概念,并对某些现代编程语言的内存管理机制做更深入的探究。我希望该系列文章可以使您对这些语言在内存管理方面正在发生的事情能有所了解。 在本章中,我们将研究Go编程语言(Go...

  • 小心go.mod中的go directive

    2020年03月09日

    在撰写《Go 1.14中值得关注的几个变化》这篇文章时,我使用的试验环境为我的2019款 MacPro,OS版本:10.14.6。我通过下载 https://dl.google.com/go/go1.14.darwin-amd64.tar.gz并解压的方式安装的Go 1.14版本。在我的工作环境中,我通常通过变更GOROOT的方式来使用不同的Go版本。但在进行Go 1.14新增的overlapping interfa...

  • 仅显示最近10篇文章