读懂Go的设计哲学:为什么说它是“恰到好处”的80/20语言?

读懂Go的设计哲学:为什么说它是“恰到好处”的80/20语言? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

July 5, 2025 · 5 min · Tony Bai

Go testing包将迎来新增强:标准化属性与持久化构件API即将落地

Go testing包将迎来新增强:标准化属性与持久化构件API即将落地 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

April 7, 2025 · 10 min · Tony Bai

也谈技术布道 – 影响因素及有效实践

昨天中午收到图灵出版的《布道之道 – 引领团队拥抱技术创新》一书,晚上就迫不及待地翻看开来。这是我读过的第一本有关推动组织内部技术变更/创新实践方面的书,感觉书作者对受众的分类很是准 确到位,很多布道技巧也十分值得借鉴。但就我个人多年来的体验来看,组织内部技术布道的结果,不仅仅与受众的类型有关,还与布道者自身的资历、所担任的角 色、组织内部的文化和环境、布道路线以及布道时机和对象的选择有一定关系。下面就是我在这方面的一些粗略心得。 ...

April 24, 2012 · 6 min · Tony Bai

CBehave – 一个C语言行为驱动开发框架

Behaviour-Driven Development,即行为驱动开发在业界早已不是什么新鲜玩意了。我之前也略有了解,不过一直没有"深入钻研"。直到今年年初InfoQ的几篇有关BDD的文章才让我对BDD有了更多的认识。与TDD一样,C语言在BDD领域依旧是一个"后进分子",在多数主流语言(Java,C#,Ruby等)都已经拥有比较成熟的BDD框架(如JBehave、SpecFlow和Cucumber)的今天,C语言却似乎仅有一款BDD框架-CSpec可用。于是年初的时候我就把设计和实现一个用于C语言的行为驱动开发框架加入到我今年的ToDoList中了。 ...

August 15, 2011 · 7 min · Tony Bai

行为驱动开发导引

本文翻译自Dan North的文章"Introducing BDD"。 我遇到了一个问题。当我在不同环境的多个项目中使用和教授类似测试驱动开发(test-driven development, TDD)这样的敏捷实践时,我总是能遇到来自程序员们相同的困惑和误解。他们想知道从哪里开始、测什么不测什么、一次测试多少、谁来调用他们的测试以及如何理解为什么一个测试失败了。 越是深入TDD,我越能感觉到我对TDD认知过程是时断时续、逐步掌握的,还远未进入到死胡同。我记得多数时间我想到的都是"这只是别人告诉我这样做的",而不是"哇,我明白为何要这样做了"。我断定一定可以通过某种方法将TDD直截了当地呈现给那些优秀的程序员们,并且可以避免所有陷阱。 ...

August 10, 2011 · 12 min · Tony Bai

C单元测试包设计与实现

在Java、C++和C#等高级语言的单元测试正进行的如火如荼的时候,C好像做了看客,冷清的躲在了一个不起眼的角落里。C并不是没有单元测试工具,像Check和CUnit这样的工具也很有名气,只是和大名鼎鼎的JUnit比起来,还是显得有些英雄气短。很多大型的C项目,如APR等都没有使用像Check、CUnit这样通用的单元测试框架,而是另起炉灶自己编写。其实编写一个仅能满足单个项目需要的C单元测试工具包并非难事。在部分参考APR的ABTS的前提下,我们也来设计一套自己的简单的C语言单元测试包。 鉴于减少复杂性,我们的目标仅仅是设计和实现一套能在单进程、单线程下工作良好的C单元测试包,我们暂且将之命名为CUT – C Unit test Toolkit。 1、CUT涉及的术语解释 曾经接触过多个有名的单元测试框架如JUnit、CppUnit、TestNG等,它们在对单元测试某些概念的理解上并不是全都一样的。这里我们也有我们自己的定义。 a) 一个逻辑unit test包含至少一个或者多个suite; b) 一个suite包含至少0或者多个test case; c) 每个test case中至少包含1个或者多个“断言类”语句。 ...

November 8, 2005 · 5 min · Tony Bai

CppUnit入门实践-Tony与Alex的对话系列

Tony : Hi Alex ! you just looks like drowing in your project. what is up? Alex : 我们的项目要求引入单元测试,but i’ve no experience in unit test. Tony : i think cppunit is your best choice. Alex : 是的,我刚从网上把它down了下来,正准备研究它呢。 Tony : Really ? I have done some practice on unit test before. would you like me to join you? Alex : Oh Tony, I’m so glad that you could help me ! Tony : My pleasue ! Alex : 我们从哪里开始呢? Tony : The simplest case! 我们拿一个最简单的例子吧。now we have a class with the name “SimpleCalculator” and it has four basic methods ‘add’, ‘sub’, ‘mul’ and ‘div’, All we should do is to test whether these methods run as same as we expect. First of all , complete the “SimpleCalculator” class, Alex. Alex : It is simple! ...

May 30, 2005 · 4 min · Tony Bai

一个Xml Parser的TDD开发过程-Tony与Alex的对话系列

Tony : Alex今天我们来做一个xml parser.我们使用的开发工具为Eclipse + JUnit Alex : 好啊,喜欢接受挑战。 Tony : 先看看我们要解析的xml file的样子: ...

April 30, 2005 · 4 min · Tony Bai

再谈Mock Object

发现静寂的夜能让我的思维加快。 用Mock Object进行Unit Test已经一周多了,发现以前对Mock Object还是很肤浅,即使是现在我也不敢说我对Mock Object的理解就一定正确。 ...

December 28, 2004 · 3 min · Tony Bai

认识Mock Object

上周六我们Dominoo group讨论(以下称讨论)TDD和JUnit的时候,提到过Mock Object,那次可能是我第一次听到Mock Object这个概念,程序员对新鲜的的东西都是敏感的,所以今天晚上花了一些时间了解了一下Mock Object的概念,做了一些简单实践。 ...

December 10, 2004 · 4 min · Tony Bai