Ahm*_*ish 5 ruby software-design
所以,这就是交易。我目前在 Ruby on Rails 环境中工作,已经工作约 1 年了。在此之前,我在 C++/Java 领域工作了近十年。我(仍在)试图弄清楚 Ruby 的断言方式是什么。
我不担心技术细节。我知道 TestUnit 有可以在测试环境中使用的断言,并且我知道我可以将自己的断言方法添加到我的 Ruby 项目中,并在生产 Rails 中使用它们来锁定已知条件。问题是:Ruby 的方式是什么来确保代码中我知道应该/不应该发生的事情?
作为记录,我一直在测试中断言并在生产中提高。我仍然忍不住想念我的生产断言......
断言确实不应该在生产代码中使用,原因有两个。
assert x非常实用,因此很难阅读。使用 raise/if 组合可以增加可读性。
断言并没有明确说明如果条件失败将会引发什么错误。尽管,
raise ObscureButInformitiveError if condition
让应用程序层进一步做一些相关的事情。例如向管理员发送电子邮件或写入特定日志。