一文搞懂如何在Go包中支持Hash-Based Bisect调试
本文永久链接 – https://tonybai.com/2024/mm/dd/how-to-support-hash-based-bisect-in-go-package bisect是一个英文动词,意为“二分”或“分成两部分”。在数学和计算机科学中,通常指将一个区间或一个集合分成两个相等的部分。 对于程序员来说,最熟悉的bisect应用莫过于下面两个: ...
本文永久链接 – https://tonybai.com/2024/mm/dd/how-to-support-hash-based-bisect-in-go-package bisect是一个英文动词,意为“二分”或“分成两部分”。在数学和计算机科学中,通常指将一个区间或一个集合分成两个相等的部分。 对于程序员来说,最熟悉的bisect应用莫过于下面两个: ...
本文永久链接 – https://tonybai.com/2024/10/11/the-cl-author-guide-to-getting-through-code-review Google在软件工程领域对IT界做出了卓越的贡献,从《Google软件工程》,到Google Style Guides,再到The Change Author’s Guide。这些实践参考不仅提升了软件工程的标准,也为全球IT行业的发展提供了宝贵的资源和指导。由于Go是Google开源的,其cl review基本上是遵循了Google内部的标准和实践,可以帮助开发人员更快地完成审核并获得更高质量的结果。因此在这篇文章中,我翻译一下The Change Author’s Guide,供大家参考。 ...
本文永久链接 – https://tonybai.com/2024/01/01/go-testing-by-example 2023年11月初,Go语言技术负责人Russ Cox在GopherCon Australia 2023大会上进行了题为“Go Testing By Example”的演讲: 12月初Russ Cox重新录制了该演讲内容的视频,并在个人网站上放了出来。这个演讲视频是关于如何编写好的Go测试的,Russ Cox介绍了20个实用建议,非常值得Go初学者甚至Go资深开发者学习并应用到实践中。这里是基于该视频整理的文字稿(可能并非逐字逐句),供广大Gopher参考。 ...
本文永久链接 – https://tonybai.com/2022/08/12/practices-of-multi-label-based-issue-driven-software-development 软件吞噬世界,开源吞噬软件!基于工单跟踪系统(issue tracking system)的issue driven开发的模式不仅对开源系统的开发过程有着重要影响,在商业软件开发领域,越来越多的公司和组织也在使用issue-driven的开发方式。 ...
本文永久链接 – https://tonybai.com/2021/08/11/how-to-test-go-beta-or-rc Go 1.17已经发布到RC2版本!正式版最早将在8月中旬发布,最迟也不会晚于月底。对于喜欢尝鲜的Gopher而言,在体验Go 1.17的新特性的同时,也不要忘了为Go语言项目做做贡献!贡献什么呢?其实很简单,就是在尝鲜的同时,对Go语言的Beta公测版以及RC发布候选版进行测试,并把遇到的问题提交到Go语言项目官方issue列表中去。 ...
本文翻译自Go社区知名Gopher和博主Dave Cheney的文章《The Zen of Go》。 本文来自我在GopherCon Israel 2020上的演讲。文章很长:) 如果您希望阅读精简版,请移步到the-zen-of-go.netlify.com。 该演讲视频还未上线。如上线,我会把它更新到本文中的。 ...
2002年的Bug A与2008年的Bug B同时穿越到2013年,并在某个场合相遇了。 上周六,项目组本应以一个愉快的心情结束一天的工作的,但一个2002年的Bug A与另外一个2008年的Bug B同时穿越时空来到了2013年,并且恰恰在那时那刻(下班前)相遇了,于是项目组由放松变成了忙碌,由愉快变成了紧张,17:30的下班点也因此延迟到了凌晨1:30。 ...
如果你看到一个C程序员在通宵熬夜神情紧张地对着电脑敲代码或阅读代码,多数只有两种可能:一是为了赶进度;二就是查找内存Bug。 — 个人感悟 ...
在版本控制工具大行其道的今天,作为程序员,势必要每天与各种版本控制系统(比如Subversion、Git、Mercurial等)打交道, 每天不commit几次代码都不好意思说自己是专业程序员^_^。不过commit代码可不止敲入commit命令这么简单,对于一个专业程序员 来说,我们还要关注每次commit所携带的背景信息,这里暂且称之为“commit context”。在每次commit时,这些上下文信息只能通过commit log来体现。 ...
今天上午处理了一个线上产品的故障。分析来分析去,最后定位问题还是出在字节序转换的环节上。 其实测试组早在产品上线前就曾报告了这个问题,但是对应的开发人员并未对该问题进行深入地分析,而是有些草率地将该问题归结为客户端模拟器的实现不符合标准。因为这位同事比较资深,所以当时我也没有给予足够关注。 ...