Web Analytics

Go 1.18新特性前瞻:原生支持Fuzzing测试

本文永久链接 – https://tonybai.com/2021/12/01/first-class-fuzzing-in-go-1-18 今年6月初,Go官博发表了一篇名为《Fuzzing is Beta Ready》的文章,文中称gotip版本已经原生支持Fuzzing并开始了公测。这意味着Fuzzing将以一等公民(first-class citizen)的身份正式加入到即将于2022年2月发布的Go 1.18版本中: ...

December 1, 2021 · 18 min · Tony Bai

ants:在Submit中再调用当前Pool的Submit可能导致阻塞

本文永久链接 – https://tonybai.com/2021/11/27/ants-call-submit-in-submit-may-cause-blocking 1. goroutine pool的必要性 Go在并发程序方面的一个小创新就是支持轻量级用户线程goroutine,不过虽然goroutine很轻,但并不是免费的,尤其是Go程序中存在大量goroutine反复启停时(比如采用每连接一个goroutine的处理http短连接的http server,在大并发的情况下就是如此),Go运行时启停和调度goroutine的开销还是蛮大的。这个时候我们对goroutine pool的需求就诞生了。 ...

November 27, 2021 · 10 min · Tony Bai

使用Docker Compose构建一键启动的运行环境

本文永久链接 – https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose 如今,不管你是否喜欢,不管你是否承认,微服务架构模式的流行就摆在那里。作为架构师的你,如果再将系统设计成个大单体结构,那么即便不懂技术的领导,都会给你送上几次白眼。好吧,妥协了!开拆!“没吃过猪肉,还没见过猪跑吗!”。拆不出40-50个服务,我就不信还拆不出4-5个服务^_^。 ...

November 26, 2021 · 10 min · Tony Bai

Go 1.18新特性前瞻:Go工作区模式

本文永久链接 – https://tonybai.com/2021/11/12/go-workspace-mode-in-go-1-18 Go 1.18版本如无意外,将于2022年2月发布。 在这个版本中,除了包含万众期待的Go泛型之外,还包含很多实用的功能特性,Go工作区模式(Go workspace mode)就是其中之一,它弥补了当前go module构建模式的一些不足,堪称是go module构建模式的最后一块拼图。这篇文章我们就来看看什么是Go工作区模式,它究竟能解决什么问题。 ...

November 12, 2021 · 10 min · Tony Bai

Go,12周年

本文永久链接 – https://tonybai.com/2021/11/11/go-opensource-12-years 2009年11月10日,Go语言正式对外发布并开源。如今,距那一历史时刻已经过去12年了。今早Go核心团队技术负责人Russ Cox在Go官博撰文庆祝Go开源12周年,他回顾了这一年来发布的Go 1.16与Go 1.17版本给Go与Go社区带来的变化,粗略总结了Go核心团队的重点工作,并展望了2022年将发布的Go 1.18和Go 1.19版本。这里对Russ Cox的文章做了简单翻译,供大家参考。 ...

November 11, 2021 · 6 min · Tony Bai

Ian Lance Taylor:Go泛型使用的一般准则

本文永久链接 – https://tonybai.com/2021/11/07/using-generics-in-go 在近期Google Open Source Live的Go Day 2021环节,Go泛型的主要设计者Ian Lance Taylor做了Using Generics in Go的简短演讲(国内地址在这里)。这篇演讲的重点不是即将于Go 1.18版本降临的Go泛型的语法细节,而是介绍目前Go核心团队在设计、实现以及内部实践Go泛型的过程中积累的一些实践经验。Ian将这些经验总结成了这么一段小视频,旨在Go泛型落地之前,为Go社区提供一些Go泛型使用的通用指导原则。这里将演讲内容整理出来,供大家参考。 ...

November 7, 2021 · 11 min · Tony Bai

Go 1.18对泛型的支持策略

本文永久链接 – https://tonybai.com/2021/10/28/expectations-for-generics-in-go-1.18 2021年10月中旬,Go语言之父Rob Pike在github上的Go项目中发了一条issue:建议不在Go 1.18的标准库中使用泛型。 不得不说“姜还是老的辣”!Rob Pike的理由很简单,Go泛型是Go诞生以来最大的一次语言变化,Go 1.18版本承载了太多的change,容易出错。并且Go核心开发团队也没有使用新泛型的经验,他建议Go核心开发团队应该多等待、观察和学习。我是十分赞同Rob Pike的建议的,不要把步子迈得太大。Go应该按照自己的节奏稳步前进。 ...

October 28, 2021 · 6 min · Tony Bai

Go语言第一课背后的那些事儿

本文永久链接 – https://tonybai.com/2021/10/25/the-things-behind-the-first-lesson-of-go-language 《Go语言第一课》正式上线一周多了,从编辑和运营老师那边反馈,成绩似乎还不错,感谢大家的捧场!今天和大家说说专栏《Go语言第一课》背后的那些事儿。 年初策划:Gopher的《C++ Primer》 学过C++的童鞋想必都听说过或是读过《C++ Primer》这本书。 C++ Primer 从Primer这个单词所具有的“启蒙”的含义我们也可以知道,这是一门面向C++入门程序员的基础书籍。它的作者是大名鼎鼎的Stanley B.Lippman,他曾与C++之父在贝尔实验室一起主持了C++首个编译器项目cfront的开发,也曾加盟微软担任Visual C++产品的架构师,同时他还是那本C++经典《深度探索C++对象模型》一书的作者。 ...

October 25, 2021 · 7 min · Tony Bai

Tony Bai带你入门Go语言

本文永久链接 – https://tonybai.com/2021/10/15/your-first-go-course-by-tonybai 没错,Tony Bai就是我。这次终于轮到我了! 极客时间在10月13日正式上线了我的Go语言专栏:《Tony Bai·Go语言第一课》。 现如今,越来越多的程序员因为自己或公司的需求,逐渐转成Go开发。当前国内外一线,包括 BAT 等大厂,以及初创小厂也都广泛接纳并应用Go,有的甚至已经成长为主力语言。 ...

October 15, 2021 · 5 min · Tony Bai

Go语言之父谈Go编程语言与环境

本文永久链接 – https://tonybai.com/2021/10/06/the-go-programming-language-and-environment 2021年中旬,Go语言联合创始人Rob Pike应邀在线出席由UNSW Computing(悉尼新南威尔士大学计算机)组织主办的John Lions Distinguished Lectures,会上Rob Pike以Go之父身份讲述了究竟是什么将Go语言塑造成今天的这个样子以及进入Go生态系统的其他一些事物。 ...

October 6, 2021 · 8 min · Tony Bai