出于好奇心,有人知道在旧系统的新实现中复制错误的术语,以便与依赖于错误功能的旧客户保持向后兼容吗?如果它包含了必须对不正确行为进行逆向工程以便正确复制不符合规范的内容,我会特别感兴趣。
答案 0 :(得分:4)
我认为这是“向后兼容性”所涵盖的。
Joel Spolsky关于Windows 3.1开发的着名“API Wars”帖子的一个很好的例子:
Raymond的博客上最令人印象深刻的事情是Windows团队多年来为支持向后兼容而做出的令人难以置信的努力的故事。
[...]
我第一次从热门游戏SimCity的开发者那里听说过这个,他告诉我他的应用程序中存在一个严重的错误:它在释放后立即使用了内存,这是一个重要的禁忌,它恰好工作正常在DOS上但不能在Windows下运行,其中释放的内存很可能会被另一个正在运行的应用程序抢夺。 Windows团队的测试人员正在浏览各种流行的应用程序,测试它们以确保它们正常工作,但是SimCity一直在崩溃。他们向Windows开发人员报告了这一点,他们拆解了SimCity,在调试器中找到了它,发现了错误,并且添加了特殊代码,检查了SimCity是否正在运行,如果确实如此,运行内存分配器处于一种特殊模式,在释放后你仍然可以使用内存。
答案 1 :(得分:4)
我总是称之为“crapwards compatibility”。
答案 2 :(得分:3)
答案 3 :(得分:2)
我会满足于'与bug兼容':让所有错误都很难对付。