<?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>编码 on Tony Bai</title><link>https://tonybai.com/tags/%E7%BC%96%E7%A0%81/</link><description>Recent content in 编码 on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Fri, 13 Feb 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/%E7%BC%96%E7%A0%81/index.xml" rel="self" type="application/rss+xml"/><item><title>UML 之父 Grady Booch：别听 CEO 瞎忽悠，软件工程的第三次黄金时代才刚刚开始</title><link>https://tonybai.com/2026/02/13/grady-booch-uml-software-engineering-third-golden-age-begins/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/13/grady-booch-uml-software-engineering-third-golden-age-begins/</guid><description>本文永久链接 – https://tonybai.com/2026/02/13/grady-booch-uml-software-engineering-third-golden-age-begins 大家好，我是Tony Bai。 在 2026 年初的今天，如果你问一个软件工程师“最近感觉如何？”，得到的回答大概率是焦虑。 Anthropic 的 CEO Dario Amodei 曾预言：“软件...</description></item><item><title>还在当“上下文搬运工”？我写了一门课，帮你重塑AI开发工作流</title><link>https://tonybai.com/2025/11/20/ai-native-dev-workflow/</link><pubDate>Thu, 20 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/20/ai-native-dev-workflow/</guid><description>本文永久链接 – https://tonybai.com/2025/11/20/ai-native-dev-workflow 大家好，我是Tony Bai。 最近半年，我发现我的开发日常，正被一种新的“工作流摩擦”所困扰。 我猜，你可能也感同身受。 我们在一块屏幕上沉浸于IDE中的Go代码，在另一块屏幕上，则像一个勤奋的“学生”，不断向AI大模型提问。我们从代码库中精心挑选上下文，复制，切换窗口，...</description></item><item><title>string 与 rune 的设计哲学：为什么Go 程序员很少为“乱码”烦恼？</title><link>https://tonybai.com/2025/10/13/string-and-rune-in-go/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/13/string-and-rune-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/10/13/string-and-rune-in-go 大家好，我是Tony Bai。 &amp;gt; “为什么我的字符又乱码了？！” 这是一个在软件开发历史上，曾让无数程序员彻夜难眠的哀嚎。处理文本，是编程中最基础的任务之一，但其背后关于编码 (Encoding) 和字符集 (Character Set) 的水，远比看起来要深。正如 Joe...</description></item><item><title>软件工程的永恒法则：《代码大全》作者访谈给我们的三大启示</title><link>https://tonybai.com/2025/09/14/code-complete-with-steve-mcconnell/</link><pubDate>Sun, 14 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/14/code-complete-with-steve-mcconnell/</guid><description>软件工程的永恒法则：《代码大全》作者访谈给我们的三大启示 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列...</description></item><item><title>NASA的十大编码“诫律”：Go视角的全新解读</title><link>https://tonybai.com/2025/09/09/the-power-of-ten-in-go/</link><pubDate>Tue, 09 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/09/the-power-of-ten-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/09/09/the-power-of-ten-in-go 大家好，我是Tony Bai。 在软件工程领域，有些智慧是永恒的。 2006 年，NASA/JPL（喷气推进实验室）的 Gerard J. Holzmann 公布了其团队用于开发**安全关键 (Safety-Critical)** 软件的十条黄金法则——“The Power...</description></item><item><title>Go json/v2实战：告别内存爆炸，掌握真流式Marshal和Unmarshal</title><link>https://tonybai.com/2025/08/09/true-streaming-support-in-jsonv2/</link><pubDate>Sat, 09 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/09/true-streaming-support-in-jsonv2/</guid><description>本文永久链接 – https://tonybai.com/2025/08/09/true-streaming-support-in-jsonv2 大家好，我是Tony Bai。 Go 开发者长期以来面临一个痛点：标准库 encoding/json 在处理大型 JSON 数据时，即使使用 Encoder/Decoder，也因其内部的全量缓冲机制而导致巨大的内存开销。备受期待的 encoding/js...</description></item><item><title>Anthropic内部实践首次公开：揭秘Claude Code如何引爆全员生产力</title><link>https://tonybai.com/2025/07/25/how-anthropic-teams-use-claude-code/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/25/how-anthropic-teams-use-claude-code/</guid><description>本文永久链接 – https://tonybai.com/2025/07/25/how-anthropic-teams-use-claude-code 当 AI 编程助手从简单的代码补全工具，演变为深度集成于开发者工作流核心的“终端原生 AI”（Terminal-native AI）时，一个根本性的问题浮现出来：**顶尖团队究竟是如何在日常工作中驾驭这股新力量的？** 理论和演示层出不穷，但真实、...</description></item><item><title>写作即思考：AI 时代，开发者为什么要警惕“思考外包”？</title><link>https://tonybai.com/2025/07/25/writing-is-thinking/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/25/writing-is-thinking/</guid><description>写作即思考：AI 时代，开发者为什么要警惕“思考外包”？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列...</description></item><item><title>Go 解析器的“隐秘角落”：encoding/json 的安全陷阱与 JSONv2 的救赎</title><link>https://tonybai.com/2025/06/22/unexpected-security-footguns-in-go-parsers/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/22/unexpected-security-footguns-in-go-parsers/</guid><description>本文永久链接 – https://tonybai.com/2025/06/22/unexpected-security-footguns-in-go-parsers 大家好，我是Tony Bai。 在 Go 语言中，标准库的 encoding/json 包无疑是我们日常打交道最多的伙伴之一。它简洁易用，性能尚可，支撑了无数 Go 应用的数据交换需求。然而，正如俗话所说，“最熟悉的地方可能藏着最深的...</description></item><item><title>Sam Altman的“温和奇点”已至：我们真的越过了AI的“事件视界”吗？</title><link>https://tonybai.com/2025/06/11/the-gentle-singularity/</link><pubDate>Wed, 11 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/11/the-gentle-singularity/</guid><description>Sam Altman的“温和奇点”已至：我们真的越过了AI的“事件视界”吗？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进...</description></item><item><title>Go：值与指针</title><link>https://tonybai.com/2023/05/05/go-value-and-pointer/</link><pubDate>Fri, 05 May 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/05/05/go-value-and-pointer/</guid><description>本文永久链接 – https://tonybai.com/2023/05/05/go-value-and-pointer 1\. 计算机中的值 ---------- 在百万年的演化历史中，人类对事物的属性进行了抽象，有了数量、精度、信息等概念的表示，对应的我们称之为整数、小数、文本文字等。计算机出现后，我们使用计算机对真实世界的问题进行建模，通过计算机的高效计算解决这些问题并输出答案。为了建模，计...</description></item><item><title>使用Golang开发微信公众平台-发送客服消息</title><link>https://tonybai.com/2014/12/30/send-custom-service-text-msg-for-wechat-public-platform-dev-in-golang/</link><pubDate>Tue, 30 Dec 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/12/30/send-custom-service-text-msg-for-wechat-public-platform-dev-in-golang/</guid><description>关注并使用过微信“飞常准”公众号的朋友们都有过如下体验：查询一个航班情况后，这个航班的checkin、登机、起降等信息都会在后续陆续异步发给你，这个服务就是通过微信公众平台的客服消息实现的。 微信公众平台开发文档中关于客服消息的解释如下：“当用户主动发消息给公众号的时候（包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功 事件、用户维权），微信将会把消息数据推送给开发者，开发者在一段...</description></item><item><title>CBehave – 一个C语言行为驱动开发框架</title><link>https://tonybai.com/2011/08/15/cbehave-a-bdd-framework-for-c/</link><pubDate>Mon, 15 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/15/cbehave-a-bdd-framework-for-c/</guid><description>Behaviour-Driven Development，即行为驱动开发在业界早已不是什么新鲜玩意了。我之前也略有了解，不过一直没有&amp;#34;深入钻研&amp;#34;。直到今年年初InfoQ的几篇有关BDD的文章才让我对BDD有了更多的认识。与TDD一样，C语言在BDD领域依旧是一个&amp;#34;后进分子&amp;#34;，在多数主流语言(Java，C#，Ruby等)都已经拥有比较成熟的BDD框架(如JBehave、SpecFlow和Cucumb...</description></item><item><title>行为驱动开发导引</title><link>https://tonybai.com/2011/08/10/introducing-bdd/</link><pubDate>Wed, 10 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/10/introducing-bdd/</guid><description>本文翻译自Dan North的文章&amp;#34;Introducing BDD&amp;#34;。 我遇到了一个问题。当我在不同环境的多个项目中使用和教授类似测试驱动开发(test-driven development, TDD)这样的敏捷实践时，我总是能遇到来自程序员们相同的困惑和误解。他们想知道从哪里开始、测什么不测什么、一次测试多少、谁来调用他们的测试以及如何理解为什么一个测试失败了。 越是深入TDD，我越能感觉到我对...</description></item><item><title>把握好编码的节奏</title><link>https://tonybai.com/2011/06/03/hold-the-coding-rhythm/</link><pubDate>Fri, 03 Jun 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/06/03/hold-the-coding-rhythm/</guid><description>最近观察到这样一种情况，项目组内的两位比较资深同事似乎都习惯于这样来编码：他们可能会花上两、三周时间将一个模块的成百上千行代码一气呵成的编写完，然后再去与其他人编写的代码集成在一起编译，测试，最终提交。这种情况让我有些惊讶，因为我觉得一个良好的编码节奏不应该是这样的，原因有三： .这样的节奏不利于问题的早发现早解决 我们都知道问题发现越早，其解决成本越小。如果只是一味地编写代码，甚至连一次编译都不...</description></item><item><title>聆听编程“古训”</title><link>https://tonybai.com/2011/05/10/listen-to-old-maxim-respectfully/</link><pubDate>Tue, 10 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/10/listen-to-old-maxim-respectfully/</guid><description>市面上关于优秀编程风格和习惯养成的书籍还真不少，其中“叫好又叫座”的书诸如《代码大全》、《编程精粹:编写高质量C语言代码》、《编程匠艺》、《重构》以及《Clean Code》等。不过前些天我在网上下载了一本名为《The Elements of Programming Style》的电子书，看过此书后，我才知道开创编写优秀风格代码之路的鼻祖是谁（不知道是否还有比这本书更加古老的且系统地讲述优良编程元...</description></item><item><title>只对代码无法表达的东西写注释</title><link>https://tonybai.com/2011/05/05/comments-only-what-the-code-cannot-say/</link><pubDate>Thu, 05 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/05/comments-only-what-the-code-cannot-say/</guid><description>本文翻译自”Comments Only What the Code Cannot Say“，来自于《程序员应该知道的97件事》一书中的某个章节。 我们知道理论与实践之间存在差异。在实践中，这个差异远大于其在理论中所描述的那样 – 一份对注释（comments）的观察数据也证实了这一点。理论上，通常的注释代码的想法听起来是值得的：它可以为读者提供更多的细节，可以解释发生了什么事情。有什么能比自我帮助...</description></item><item><title>使用正确的算法和数据结构</title><link>https://tonybai.com/2011/04/19/use-the-right-algorithm-and-data-structure/</link><pubDate>Tue, 19 Apr 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/04/19/use-the-right-algorithm-and-data-structure/</guid><description>本文翻译自”Use the Right Algorithm and Data Structure“，来自于《程序员应该知道的97件事》一书中的某个章节。 _一家拥有多个分行的大银行抱怨说他们为出纳员新买的计算机运行得太慢了。这件事儿发生在电子银行以及ATM机使用普及程度远不及现在的那个年代。人们更多的是亲自到银行办理业务，这些运行超慢的计算机使得大家排起了长队。因此，这家银行威胁计算机供货商要结束...</description></item><item><title>借开源实现你的雄心壮志</title><link>https://tonybai.com/2011/03/26/fulfill-your-ambitions-with-opensource/</link><pubDate>Sat, 26 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/26/fulfill-your-ambitions-with-opensource/</guid><description>本文翻译自&amp;#34;Fulfill Your Ambitions with Open Source&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 如果你在工作中没能开发那些可以实现你雄心壮志的软件，那你将有很不错的机会。也许你正在为一家庞大的保险公司开发软件，然而你实际上却宁愿供职于Google、Apple、Microsoft或是你自己初创的公司去开发下一个对世界影响巨大的软件。如果你去为你根本...</description></item><item><title>你应该关心你的代码</title><link>https://tonybai.com/2011/03/22/you-gotta-care-about-the-code/</link><pubDate>Tue, 22 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/22/you-gotta-care-about-the-code/</guid><description>本文翻译自”You Gotta Care about the Code“，来自于《程序员应该知道的97件事》一书中的某个章节。 即使不用大侦探福尔摩斯，我们也能知道优秀的程序员能写出好代码。糟糕的程序员…则不能。他们生产出代码巨兽，而其他人则不得不去清理。你想写出好代码，对不对？你渴望成为一名优秀的程序员。 好代码不会凭空冒出来。它也不是什么需要各大行星排成一列时靠运气才发生的事情。为了写出好代码...</description></item><item><title>通过精减来改善代码</title><link>https://tonybai.com/2011/03/17/improve-code-by-removing-it/</link><pubDate>Thu, 17 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/17/improve-code-by-removing-it/</guid><description>本文翻译自&amp;#34;Improve Code by Removing It&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 少即是多。这是一句有些陈腐的短小格言，但有时它确实是正确的。 在过去的几周里我对代码库所作的改善工作之一就是删除了其中的几大块代码。 我们编写软件时一直遵循着XP的（译注：极限编程，eXtreme Programming）原则，包括YAGNI（即You Aren&amp;#39;t Gonn...</description></item><item><title>知道如何使用命令行工具</title><link>https://tonybai.com/2011/03/16/know-how-to-use-command-line-tool/</link><pubDate>Wed, 16 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/16/know-how-to-use-command-line-tool/</guid><description>本文翻译自”Know How to Use Command-line Tool“，来自于《程序员应该知道的97件事》一书中的某个章节。 现今，很多软件开发工具被打包成集成开发环境（Integrated Development Environments，IDE）提供给开发者。微软的Visual Studio和开源的Eclipse就是两个颇受欢迎的IDE，当然还有很多其他类似的工具。很多程序员喜欢使用...</description></item><item><title>专业程序员</title><link>https://tonybai.com/2011/02/24/the-professional-programmer/</link><pubDate>Thu, 24 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/24/the-professional-programmer/</guid><description>本文翻译自&amp;#34;The Professional Programmer&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 什么是专业程序员？ 一个专业程序员的唯一的、最重要的特点是个人的责任。专业程序员会对他们的职业生涯负责，会对他们的估计负责，会对他们的计划承诺负责，会对他们的错误负责，会对他们的技艺负责。一个专业程序员绝不会将他们的责任推到其它人身上。 ·如果你是一名专业程序员，你将对你自己...</description></item><item><title>持续学习</title><link>https://tonybai.com/2011/02/23/continous-learning/</link><pubDate>Wed, 23 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/23/continous-learning/</guid><description>本文翻译自&amp;#34;Continuous Learning&amp;#34;，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 我们生活在一个引人入胜的时代。软件开发分布在全球各地，你知道那里有很多人可以胜任你的工作。你需要不断学习以保持你在市场上的竞争力。否则，你将变成一条恐龙，专心从事某一个工作，直到有一天，你不再被需要或者你的工作被外包给了其它更为廉价的开发人...</description></item><item><title>代码评审</title><link>https://tonybai.com/2011/02/22/code-reviews/</link><pubDate>Tue, 22 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/22/code-reviews/</guid><description>本文翻译自&amp;#34;Code Reviews&amp;#34;，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 你应该做代码评审。为什么呢？因为代码评审可以提高代码质量并且降低缺陷比例。但进行代码评审未必是因为你想到的那些理由。 由于之前有过一些代码评审的糟糕体验，因此许多程序员不喜欢代码评审。我曾经见过一些组织，它们要求所有代码在部署到生产环境之前必须通过一个正...</description></item><item><title>把一切都纳入版本控制</title><link>https://tonybai.com/2011/02/18/put-everything-under-version-control/</link><pubDate>Fri, 18 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/18/put-everything-under-version-control/</guid><description>本文翻译自&amp;#34;Put Everything Under Version Control&amp;#34;，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 把项目中的一切都纳入版本控制。你需要的资源包括：免费的工具，比如Subversion，Git，Mercurial和CVS；充足的磁盘空间；便宜且性能强大的服务器；无处不在的网络；甚至包括项目托管服务。安装好...</description></item><item><title>将你的编码标准自动化</title><link>https://tonybai.com/2011/02/16/automate-your-coding-standard/</link><pubDate>Wed, 16 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/16/automate-your-coding-standard/</guid><description>本文翻译自”Automate Your Coding Standard“，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 也许你也曾经经历过。在一个项目开始阶段，每个人都有着很多良好的意愿，我们称这些意愿为“新项目决议”。多数情况下，这些决议都会被记在文档中。关于代码的那些决议最终成了项目的编码标准。在项目启动会议上，主程序员带着大家一起浏...</description></item><item><title>使用iconv做内码转换</title><link>https://tonybai.com/2009/10/31/internal-code-transform-by-iconv/</link><pubDate>Sat, 31 Oct 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/10/31/internal-code-transform-by-iconv/</guid><description>前不久某南方省份的客户反馈说我们的产品对某些生僻字(如“赟”)的转码支持的不好，终端收到后无法显示这个字。 经分析，发现类似“赟”这样的字在GB2312编码标准中并未收录，要想支持这样的生僻字的内码转换需要产品支持目前最新的中文编码标准GB18030。而我们的产品在诞生到现在就一直只支持GB2312，这就是导致这一问题的直接原因。 产品以前的代码库中内码转换的接口都是自己实现的，仅支持GB2312...</description></item></channel></rss>