<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Rfc on Tony Bai</title><link>https://tonybai.com/tags/rfc/</link><description>Recent content in Rfc on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Tue, 16 Jun 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/rfc/index.xml" rel="self" type="application/rss+xml"/><item><title>为什么说“编译通过，就能运行”？Google 专家 Alice 揭秘 Rust 的工程美学与底层逻辑</title><link>https://tonybai.com/2026/06/16/why-if-it-compiles-it-runs-rust-engineering-aesthetics-and-logic/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/16/why-if-it-compiles-it-runs-rust-engineering-aesthetics-and-logic/</guid><description>本文永久链接 – https://tonybai.com/2026/06/16/why-if-it-compiles-it-runs-rust-engineering-aesthetics-and-logic 大家好，我是Tony Bai。 在软件工程界，有一句流传甚广、近乎玄学的名言：“如果你的 Rust 代码通过了编译，那么它就已经可以正确运行了。” 对于被 Java 的空指针异常（NullP...</description></item><item><title>Tech Lead 不是管理者？一文看懂技术负责人的核心职责与能力模型</title><link>https://tonybai.com/2026/01/18/traits-of-a-good-tech-lead/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/18/traits-of-a-good-tech-lead/</guid><description>Tech Lead 不是管理者？一文看懂技术负责人的核心职责与能力模型 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专...</description></item><item><title>Go 标准库将迎来 Zstandard：性能超越 Gzip，让你的应用更快、更省</title><link>https://tonybai.com/2025/11/08/proposal-zstd/</link><pubDate>Sat, 08 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/08/proposal-zstd/</guid><description>本文永久链接 – https://tonybai.com/2025/11/08/proposal-zstd 大家好，我是Tony Bai。 在 Go 的世界里，一项被社区翘首以盼的提案在沉寂一年后，终于迎来了决定性的进展。2024 年，将 Zstandard 压缩算法纳入标准库的提案（#62513）被正式 **Accept**，但在那之后便鲜有动静。直到最近的 Go 编译器与运行时会议纪要中透露，...</description></item><item><title>哲学家与工程师：为何 Rust 和 Go 的“官方之声”如此不同？</title><link>https://tonybai.com/2025/08/21/go-rust-official-voices/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/21/go-rust-official-voices/</guid><description>本文永久链接 – https://tonybai.com/2025/08/21/go-rust-official-voices 大家好，我是Tony Bai。 最近，在阅读 Rust 核心团队负责人 Niko Matsakis 庆祝十周年的系列博文时，我注意到了一个有趣的现象。我下意识地将他的文字，与我长期关注的 Go语言之父Rob Pike以及Go 团队前技术负责人 Russ Cox 的文章放在...</description></item><item><title>告别字符串魔法：Go 迎来类型化 Struct Tag 提案，编译期安全触手可及？</title><link>https://tonybai.com/2025/07/08/typed-struct-tags/</link><pubDate>Tue, 08 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/08/typed-struct-tags/</guid><description>本文永久链接 – https://tonybai.com/2025/07/08/typed-struct-tags 大家好，我是Tony Bai。 Go 语言的结构体标签（Struct Tag）自诞生以来，一直是其强大反射能力的重要组成部分，广泛应用于 encoding/json、ORM、配置管理等领域。然而，它也一直是一个“美丽的缺憾”：这些标签本质上是无类型的字符串，依赖于各种“微语言”和“纳...</description></item><item><title>探索基于pion开发的WebRTC应用的建连过程</title><link>https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion/</link><pubDate>Thu, 26 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion/</guid><description>本文永久链接 – https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion 在《WebRTC第一课：从信令、ICE到NAT穿透的连接建立全流程》一文中，我们从理论层面全面细致地了解了WebRTC连接建立的完整流程。这个流程大致可以分为以下几个阶段： ...</description></item><item><title>WebRTC第一课：从信令、ICE到NAT穿透的连接建立全流程</title><link>https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish/</link><pubDate>Sat, 14 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish/</guid><description>本文永久链接 – https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish 在上一篇文章《WebRTC第一课：网络架构与NAT工作原理》中，我们介绍了WebRTC的网络架构和NAT的基本概念，学习了WebRTC采用端对端（P2P）的通信模型，知道了NAT（网络地址转换）的概念以及给像WebRTC这样的直接P...</description></item><item><title>探索Docker默认网络NAT映射的分配与过滤行为</title><link>https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network/</link><pubDate>Thu, 05 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network/</guid><description>本文永久链接 – https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network 在《WebRTC第一课：网络架构与NAT工作原理》一文中，我们对WebRTC的网路架构进行说明，了解到了NAT的工作原理、RFC 3489对NAT的四种传统...</description></item><item><title>WebRTC第一课：网络架构与NAT工作原理</title><link>https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work/</link><pubDate>Wed, 27 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work/</guid><description>本文永久链接 – https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work 2023年下旬，OpenAI与Livekit的合作在科技圈引起了不小的轰动。这两家公司联手，通过WebRTC技术和大型语言模型（LLM）的结合，使AI模型具有了看、听和说话的能力。这一举动不仅彰显了Web...</description></item><item><title>从简单到强大：再次探索Caddy服务器的魅力</title><link>https://tonybai.com/2024/11/07/exploring-caddy/</link><pubDate>Thu, 07 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/07/exploring-caddy/</guid><description>本文永久链接 – https://tonybai.com/2024/11/07/exploring-caddy Go语言诞生十多年来，社区涌现出众多优秀的Web服务器和反向代理解决方案。其中，最引人注目的无疑是Caddy和Traefik。这两者都为开发者和系统管理员提供了更简单、更安全的现代化Web服务器和反向代理部署选项。尽管它们的目标略有不同，Caddy最初旨在满足开发者快速搭建反向代理的需求...</description></item><item><title>Gopher的Rust第一课：Rust的那些事儿</title><link>https://tonybai.com/2024/04/22/gopher-rust-first-lesson-all-about-rust/</link><pubDate>Mon, 22 Apr 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/04/22/gopher-rust-first-lesson-all-about-rust/</guid><description>本文永久链接 – https://tonybai.com/2024/04/22/gopher-rust-first-lesson-all-about-rust 要说这两年后端编程语言谁最火，Rust说自己第二，没人敢说第一。Rust连续8年霸榜stackoverflow最受推崇的编程语言，甚至被推特之父Jack Dorsey称为“完美的编程语言”： &amp;gt; 注：最火：仅代表人气最旺，最受欢迎，但并不代...</description></item><item><title>通过实例理解OpenID身份认证</title><link>https://tonybai.com/2023/12/22/understand-oidc-by-example/</link><pubDate>Fri, 22 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/22/understand-oidc-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/12/22/understand-oidc-by-example 在《通过实例理解OAuth2》一文中，我们以实例方式讲解了OAuth2授权码模式(Authorization Code)模式的工作原理。实例中的照片冲印服务经过用户(tonybai)的授权后，使用用户提供的code(实则是由授权服务器分配并通过用户的浏览器重定向到照...</description></item><item><title>通过实例理解OAuth2授权</title><link>https://tonybai.com/2023/12/16/understand-oauth2-by-example/</link><pubDate>Sat, 16 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/16/understand-oauth2-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/12/16/understand-oauth2-by-example 在之前的《通过实例理解Go Web身份认证的几种方式》和《通过实例理解Web应用授权的几种方式》两篇文章中，我们对Web应用身份认证(AuthN)和授权(AuthZ)的几种方式做了介绍并配以实例增强理解。 在现实世界中，还有一大类的认证与授权是在前面的文章中没有...</description></item><item><title>通过实例理解Go Web身份认证的几种方式</title><link>https://tonybai.com/2023/10/23/understand-go-web-authn-by-example/</link><pubDate>Mon, 23 Oct 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/10/23/understand-go-web-authn-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/10/23/understand-go-web-authn-by-example 在2023年Q1 Go官方用户调查报告中，API/RPC services、Websites/web services都位于使用Go开发的应用类别的头部(如下图)： 我个人使用Go开发已很多年，但一直从事底层基础设施、分布式中间件等方向，Web应用开...</description></item><item><title>聊聊Go与TLS 1.3</title><link>https://tonybai.com/2023/01/13/go-and-tls13/</link><pubDate>Fri, 13 Jan 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/01/13/go-and-tls13/</guid><description>本文永久链接 – https://tonybai.com/2023/01/13/go-and-tls13 除了一些综述类文章和译文，我的文章选题多来源于实际工作和学习中遇到的问题。这次我们来聊聊近期遇到一个问题：**如何加快基于TLS安全通信的海量连接的建连速度**? TLS(Transport Layer Security)传输安全层的下面是TCP层，我们首先可能会想到的是**优化内核有关TCP...</description></item><item><title>使用multipart/form-data实现文件的上传与下载</title><link>https://tonybai.com/2021/01/16/upload-and-download-file-using-multipart-form-over-http/</link><pubDate>Sat, 16 Jan 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/01/16/upload-and-download-file-using-multipart-form-over-http/</guid><description>1\. Form简介 **Form**(中文译为表单)，是HTML标记语言中的重要语法元素。一个Form不仅包含正常的文本内容、标记等，还包含被称为控件的特殊元素。用户通常通过修改控件（比如：输入文本、选择菜单项等）来“完成”表单，然后将表单数据以HTTP Get或Post请求的形式提交（submit）给Web服务器。 &amp;gt; 很多初学者总是混淆HTML和HTTP。其实，http通常作为html传输的...</description></item><item><title>通过实例理解Go标准库http包是如何处理keep-alive连接的</title><link>https://tonybai.com/2021/01/08/understand-how-http-package-deal-with-keep-alive-connection/</link><pubDate>Fri, 08 Jan 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/01/08/understand-how-http-package-deal-with-keep-alive-connection/</guid><description>HTTP是如今互联网的基础协议，承载了互联网上的绝大部分应用层流量，并且从目前趋势来看，在未来10年，http仍然会是互联网应用的主要协议。Go语言自带“电池”，基于Go标准库我们可以轻松建立起一个http server处理客户端http请求，或创建一个http client向服务端发送http请求。 最初早期的http 1.0协议只支持短连接，即客户端每发送一个请求，就要和服务器端建立一个新TC...</description></item><item><title>如何在Go语言中使用Websockets：最佳工具与行动指南</title><link>https://tonybai.com/2019/09/28/how-to-build-websockets-in-go/</link><pubDate>Sat, 28 Sep 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/09/28/how-to-build-websockets-in-go/</guid><description>如今，在不刷新页面的情况下发送消息并获得即时响应在我们看来是理所当然的事情。但是曾几何时，启用实时功能对开发人员来说是一个真正的挑战。开发社区在HTTP长轮询(http long polling)和AJAX上走了很长一段路，但终于还是找到了一种构建真正的实时应用程序的解决方案。 该解决方案以WebSockets的形式出现，这使得在用户浏览器和服务器之间开启一个交互式会话成为可能。WebSocket...</description></item></channel></rss>