微软开发趣史 | 我们之所以叫它 RAID 是因为它能干掉 BUG

作者 | Raymond 

译者 | 明明如月,责编 | 夕颜

出品 | CSDN(ID:CSDNnews)

在 Windows 团队中,缺陷跟踪的历史可以追溯到 Windows 1.0,当时他们把缺陷记录到一个文本文件中。

 

在 Windows 1.01 发布后,应用部门的一群人聚在一起,组建了一个 bug 跟踪数据库。

 

这个名字是在团队中通过投票选出的,被选中的名字是 RAID,这是一个杀虫剂品牌,其在美国的广告中使用的标语是 “干掉 bug”  ,于是自然而然地就把一罐杀虫剂的图案当做这个程序的图标。

 

RAID 是“Reporting and Incidents Database(报告和事故数据库)”的首字母缩写,但没有人知道或关心这一点。

 

在构建了 bug 查询之后,可以将其保存以备将来使用,文件扩展名为 `. rdq ` 是“ RAID Query(查询)”的缩写。

 

RAID 这个名称在语言学上很有用,因为你可以“ RAID 一个 bug” ,意思是“在项目的 RAID 数据库中存储一个 bug”。`.rdq` 也可以当名词来用,意思是查询文件。“你能把明天要复盘的 bug 相关的 .rdq 发给我吗?”

 

这个数据库是在 16 位计算的时代编写的,所以最多支持 32,767 个 bug。多年来这已经足够了,但是最终产品遇到了记录限制,不得不“切换” 到新的数据库,所有来自旧数据库的尚未关闭的 bug 都被复制到新数据库 (并接收新的记录编号) ,旧数据库被置于只读模式。

 

当你阅读一些代码的时候,当你看到类似 “ 修复了 3141 号 bug” 的注释时就会很困惑,因为它没有指出 bug 号属于哪个 bug 数据库。

 

Windows 95 在其生命周期中就经历了三个 RAID 数据库。

 

RAID 的最初作者并不知道他们的小 bug 跟踪数据库工具会成为微软几十年来主要的缺陷跟踪工具。如果他们知道,他们可能会因为害怕而不敢写。当回顾 RAID 的起源时,一位最初的开发人员承认,“它真的不能服务那么长时间。对不起! ”

 

另一个可扩展性问题是,当 Windows XP 项目进展顺利的时候,会遇到这样的情况: 有太多的人同时使用 RAID,以至于服务器不再接受新的连接。当在"船坞"(会议室) 开会讨论 Windows 项目的状态时,他们有时不得不呼叫操作系统开发小组,要求他们切断一些与后端 RAID 数据库的活动连接,以便"船坞"的人能够连接到 RAID。

 

很明显,RAID 的能力远远超出最初设计的范围。于是出现了新的缺陷跟踪系统,该系统被被命名为 Product Studio,因为当时将应用命名为某某 Studio 是很流行的。

 

没有 32767 条记录的限制。它使用了三层架构来提高可靠性和灵活性,并且支持文件附件!

 

Product Studio 多年来一直是主要的 bug 跟踪数据库。但是即使改进过架构,还是经常会遇到这样的情况: 应用程序停止响应,只是简单地告诉你“连接中间层时出错了”。

 

我喜欢开玩笑说,我们应该干掉中间层, 因为它总是那个引起麻烦的人。

 

Product Studio 一直延续到 Windows 8,这时 Windows 切换到本地的 Team Foundation Services 进行工作项跟踪。

 

最近一次是在 Windows 10 中,当时 Windows 团队切换到 Visual Studio Online,用于工作项跟踪数据库。请注意,这并不意味着一切都很稳定,因为光服务的名称就从 Visual Studio Online 改成了 Visual Studio Team Services,然后又改成了 Azure DevOps Services。

 

Azure DevOps 也还不够强大,无法容纳所有的 Windows 工作项。旧的工作项要定期归档并移到另一个项目中[^1]。但至少其余的工作项没有重新编号。谢天谢地,他们保留了原来的编号。

 

[^1]: 不幸的是,归档项目重新编译了工作项。幸运的是,在标题中记住了最初的工作项,因此您可以搜索 originalid: 3141 来查找编号为 3141 的旧工作项。

 

原文链接:

https://devblogs.microsoft.com/oldnewthing/20200317-00/?p=103566

本文为CSDN翻译文章,转载请注明出处。

【End】

2020 AI 开发者万人大会将于6月26日通过线上直播形式,让开发者们一站式学习了解当下 AI 的前沿技术研究、核心技术与应用以及企业案例的实践经验,同时还可以在线参加精彩多样的开发者沙龙与编程项目。参与前瞻系列活动、在线直播互动,不仅可以与上万名开发者们一起交流,还有机会赢取直播专属好礼与技术大咖连麦

今日福利:评论区留言入选,都可获得价值299元的「2020 AI开发者万人大会」在线直播门票一张。  快来动动手指,写下你想说的话吧

推荐阅读 

软件欺诈的骗局揭露:“替罪羊”究竟是如何构建的?

提气!阿里平头哥三篇论文入选 ISCA

无代码时代来临,程序员如何保住饭碗?

GitHub 疑遭中间人攻击,无法访问,最大暗网托管商再被黑!

为何你的 SaaS 想法总是失败?没想清楚这 4 个原因可能会继续失败!

万字好文:智能合约编写之Solidity的编程攻略,建议收藏!

你点的每一个在看,我认真当成了喜欢

在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSDN资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值