编写 Ruby 向后兼容代码的实用指南
1. 引言
在开发过程中,并非所有人都能使用最新、最强大的工具。尽管 Ruby 1.9 在开发者中逐渐流行,但仍有大量遗留代码运行在 Ruby 1.8 上。因此,确保代码在 Ruby 1.8.6 和 Ruby 1.9.1 上都能顺利运行是很有必要的。本文将介绍如何在不影响代码在 Ruby 1.9.1 上运行的前提下,保持与 Ruby 1.8.6 的向后兼容性。
2. 避免代码混乱
很多人会先在一个版本的 Ruby 上运行测试套件,确保所有测试通过后,再在另一个版本上运行,查看哪些测试失败。然后,为了让测试再次通过,可能会直接添加如下代码:
def my_method(string)
lines = if RUBY_VERSION < "1.9"
string.to_a
else
string.lines
end
do_something_with(lines)
end
但这种做法不可取,它会导致代码混乱,难以重构,并且降低代码的可读性。我们应该采用更有条理的方式来处理。
3. 选择性反向移植
在重复工作之前,先检查是否有其他合理的方式编写代码,使其能在 Ruby 1.8 和 1.9 上原生运行。即使这意味着代码会更冗长,但通常是值得的,因为它可以防止代码库出现分歧。
如果这种方法行不通,可以考虑将所需的功能反向移植到 Ruby 1.8。由于 Ruby 的开放类特性,这很容易实现。我们甚至可以放宽更改,使其检查特定功能而非特定版本号,以提高与其他应用
超级会员免费看
订阅专栏 解锁全文

316

被折叠的 条评论
为什么被折叠?



