<?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>.NET on Tony Bai</title><link>https://tonybai.com/tags/.net/</link><description>Recent content in .NET on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Mon, 03 Nov 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/.net/index.xml" rel="self" type="application/rss+xml"/><item><title>Go GUI 开发的“绝境”与“破局”：2025 年现状与展望</title><link>https://tonybai.com/2025/11/03/go-gui-development-2025/</link><pubDate>Mon, 03 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/03/go-gui-development-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/11/03/go-gui-development-2025 大家好，我是Tony Bai。 “Go 语言能写桌面应用吗？” 这个问题，如同一个幽灵，常年盘旋在 Go 社区的上空。作为一门在后端、云原生和命令行工具领域所向披靡的语言，Go 在图形用户界面（GUI）开发上的“短板”，一直是其支持者心中一个难以言说的痛。 长期以来，Go...</description></item><item><title>成为更完整的 Go 工程师，从补上这堂系统编程课开始</title><link>https://tonybai.com/2025/09/01/system-programming-in-go/</link><pubDate>Mon, 01 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/01/system-programming-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/09/01/system-programming-in-go 大家好，我是Tony Bai。 作为一名 Go 工程师，我们无疑是幸运的。这门语言为我们提供了简洁的语法、强大的并发模型和一套设计精良的标准库。我们能以极高的效率，构建出高性能的 Web 服务、数据管道和云原生应用。 我们熟练地使用 http.ListenAndServ...</description></item><item><title>Go pprof 迎来重大革新：v2 提案详解，告别默认注册，拥抱飞行记录器</title><link>https://tonybai.com/2025/07/11/net-http-pprof-v2/</link><pubDate>Fri, 11 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/11/net-http-pprof-v2/</guid><description>本文永久链接 – https://tonybai.com/2025/07/11/net-http-pprof-v2 大家好，我是Tony Bai。 Go 语言的性能诊断利器 net/http/pprof 即将迎来一次意义深远的变革。一项编号为 **#74544** 的新提案建议引入一个全新的 net/http/pprof/v2 包，旨在从根本上解决当前版本因“默认注册”行为带来的安全隐患。该提案不...</description></item><item><title>当Gopher拥有了“Go语言女友”：一张图带你读懂Go的那些“可爱”特性</title><link>https://tonybai.com/2025/05/30/gopher-girlfriend/</link><pubDate>Fri, 30 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/30/gopher-girlfriend/</guid><description>当Gopher拥有了“Go语言女友”：一张图带你读懂Go的那些“可爱”特性 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶...</description></item><item><title>API设计的“Go境界”：Go团队设计MCP SDK过程中的取舍与思考</title><link>https://tonybai.com/2025/05/23/go-api-design-mcp-sdk/</link><pubDate>Fri, 23 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/23/go-api-design-mcp-sdk/</guid><description>本文永久链接 – https://tonybai.com/2025/05/23/go-api-design-mcp-sdk 大家好，我是 Tony Bai。 作为开发者，我们每天都在与 API 打交道——调用它们，设计它们，有时也会为糟糕的 API 设计而头痛不已。一个优秀的 API，如同一位技艺精湛的向导，能清晰、高效地引领我们通往复杂功能的彼岸；而一个蹩脚的 API，则可能像一座布满陷阱的迷宫...</description></item><item><title>Go包构建：专家也未必了解的文件选择细节</title><link>https://tonybai.com/2024/11/21/go-source-file-selection-details-when-building-package/</link><pubDate>Thu, 21 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/21/go-source-file-selection-details-when-building-package/</guid><description>本文永久链接 – https://tonybai.com/2024/11/21/go-source-file-selection-details-when-building-package 在Go语言开发中，包（package）是代码组织的基本单位，也是基本的构建单元。Go编译器会将每个包构建成一个目标文件(.a)，然后通过链接器将这些目标文件链接在一起，形成最终的可执行程序。 尽管Go包的构建过...</description></item><item><title>Go编译的几个细节，连专家也要停下来想想</title><link>https://tonybai.com/2024/11/11/some-details-about-go-compilation/</link><pubDate>Mon, 11 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/11/some-details-about-go-compilation/</guid><description>本文永久链接 – https://tonybai.com/2024/11/11/some-details-about-go-compilation 在Go开发中，编译相关的问题看似简单，但实则蕴含许多细节。有时，即使是Go专家也需要停下来，花时间思考答案或亲自验证。本文将通过几个具体问题，和大家一起探讨Go编译过程中的一些你可能之前未曾关注的细节。 &amp;gt; 注：本文示例使用的环境为Go 1.23.0、...</description></item><item><title>单测时尽量用fake object</title><link>https://tonybai.com/2023/04/20/provide-fake-object-for-external-collaborators/</link><pubDate>Thu, 20 Apr 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/04/20/provide-fake-object-for-external-collaborators/</guid><description>本文永久链接 – https://tonybai.com/2023/04/20/provide-fake-object-for-external-collaborators 1\. 单元测试的难点：外部协作者(external collaborators)的存在 -------------------------------------------- 单元测试是软件开发的一个重要部分，它有助于在开...</description></item><item><title>Go标准库依赖的那些modules</title><link>https://tonybai.com/2022/10/25/the-modules-that-go-standard-library-depend-on/</link><pubDate>Tue, 25 Oct 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/10/25/the-modules-that-go-standard-library-depend-on/</guid><description>本文永久链接 – https://tonybai.com/2022/10/25/the-modules-that-go-standard-library-depend-on 对于程序员来说，编写的代码依赖标准库是“天经地义”的事情。标准库在程序员眼中就是高质量的代名词，也是最值得信赖的非自己所写的代码，当然更是代码包依赖关系链条上的最后一环，即所有直接或间接依赖的第三方module最终都会依赖标准...</description></item><item><title>我来告诉你Go项目标准结构如何布局</title><link>https://tonybai.com/2022/04/28/the-standard-layout-of-go-project/</link><pubDate>Thu, 28 Apr 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/04/28/the-standard-layout-of-go-project/</guid><description>本文永久链接 – https://tonybai.com/2022/04/28/the-standard-layout-of-go-project 每当我们编写一个非hello world的实用Go程序或库时，我们都会在项目结构、代码风格以及标识符命名这三个“门槛”前面踯躅徘徊许久，甚至始终得不到满意答案。 本文将通过《Go语言精进之路：从新手到高手的编程思想、方法与技巧》这本书的内容来详细看一看...</description></item><item><title>Go基于I/O多路复用的TCP协议流解析实践</title><link>https://tonybai.com/2021/07/31/io-multiplexing-model-tcp-stream-protocol-parsing-practice-in-go/</link><pubDate>Sat, 31 Jul 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/07/31/io-multiplexing-model-tcp-stream-protocol-parsing-practice-in-go/</guid><description>本文永久链接 – https://tonybai.com/2021/07/31/io-multiplexing-model-tcp-stream-protocol-parsing-practice-in-go 在《Go经典阻塞式TCP协议流解析的实践》一文中，我们基于Go经典的阻塞I/O模型实现了一个基于TCP流的自定义协议的解析。这种**one-connection-per-goroutine*...</description></item><item><title>通过实例理解Go Execution Tracer</title><link>https://tonybai.com/2021/06/28/understand-go-execution-tracer-by-example/</link><pubDate>Mon, 28 Jun 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/06/28/understand-go-execution-tracer-by-example/</guid><description>本文永久链接 – https://tonybai.com/2021/06/28/understand-go-execution-tracer-by-example Netflix（奈飞公司）的性能架构师Brendan Gregg在其《BPF Performance Tools》一书中对tracing、sampling等概念做了细致描述，以帮助开发人员理解这些概念，并基于这些概念对性能优化辅助工具进...</description></item><item><title>使用reflect包在反射世界里读写各类型变量</title><link>https://tonybai.com/2021/04/19/variable-operation-using-reflection-in-go/</link><pubDate>Mon, 19 Apr 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/04/19/variable-operation-using-reflection-in-go/</guid><description>本文永久链接 – https://tonybai.com/2021/mm/dd/variable-operation-using-reflection-in-go Go在标准库中提供的reflect包让Go程序具备运行时的反射能力(reflection)，但这种反射能力也是一把“双刃剑”，它在解决一类特定问题方面具有优势，但也带来了逻辑不清晰、性能问题以及难于发现问题和调试等不足。不过从Go诞生伊...</description></item><item><title>Go 1.16中值得关注的几个变化</title><link>https://tonybai.com/2021/02/25/some-changes-in-go-1-16/</link><pubDate>Thu, 25 Feb 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/02/25/some-changes-in-go-1-16/</guid><description>辛丑牛年初七开工大吉的日子(2021.2.18)，Go核心开发团队为中国Gopher们献上了大礼 – Go 1.16版本正式发布了！国内Gopher可以在Go中国官网上下载到Go 1.16在各个平台的安装包： 2020年双12，Go 1.16进入freeze状态，即不再接受新feature，仅fix bug、编写文档和接受安全更新等，那时我曾写过一篇名为《Go 1.16新功能特性不完全前瞻》的文章...</description></item><item><title>Go语言之禅</title><link>https://tonybai.com/2020/02/24/the-zen-of-go/</link><pubDate>Mon, 24 Feb 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/02/24/the-zen-of-go/</guid><description>本文翻译自Go社区知名Gopher和博主Dave Cheney的文章《The Zen of Go》。 本文来自我在GopherCon Israel 2020上的演讲。文章很长:) 如果您希望阅读精简版，请移步到the-zen-of-go.netlify.com。 &amp;gt; 该演讲视频还未上线。如上线，我会把它更新到本文中的。 我应该如何编写出好代码？ 我最近一直在思考很多事情，每当反思自己的工作成果时，...</description></item><item><title>也谈Go的可移植性</title><link>https://tonybai.com/2017/06/27/an-intro-about-go-portability/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/27/an-intro-about-go-portability/</guid><description>Go有很多优点，比如：简单、原生支持并发等，而不错的可移植性也是Go被广大程序员接纳的重要因素之一。但你知道为什么Go语言拥有很好的平台可移植性吗？本着“知其然，亦要知其所以然”的精神，本文我们就来探究一下Go良好可移植性背后的原理。 一、Go的可移植性 --------- 说到一门编程语言可移植性，我们一般从下面两个方面考量： * 语言自身被移植到不同平台的容易程度； * 通过这种语言编译出来的...</description></item><item><title>使用Visual Studio Code辅助Go源码编写</title><link>https://tonybai.com/2016/12/23/write-go-code-in-vscode/</link><pubDate>Fri, 23 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/23/write-go-code-in-vscode/</guid><description>作为VIMer，日常编码中，Vim编辑器依然是我的首选。以前以C语言为主要语言的时候是这样，现在以Go为主要语言时亦是这样。不过近期发现Mac上使用Vim在编写Go代码时，Vim时不时的“抽风”：出现一些“屏幕字符被篡改”的问题，比如下面这幅图中”func”变成了”fknc”: 虽然一段时间后，显示会自动更正过来，但这种“篡改”是会让你产生“幻觉”的。你会想：是不是我真的将”func”写成”fkn...</description></item></channel></rss>