0

当方法可能具有破坏性时,我应该应用 ruby​​ 约定并将 bang('!') 添加到 rake 任务名称还是我是否更符合 unix 类型标准,因此我个人的理解是不经常使用 bang。

例如。哪个更好?

$ rake update_products   # OR
$ rake update_products!

背景

我有一种方法可以从外部 API 中提取产品数据,并使用每个产品新导入的数据更新系统中的记录。

该方法是这样调用的:

e = ExternalConnection.new
e.update_products!

我正在创建一个 rake 任务,因此我可以在 cron 作业/heroku 调度程序中使用它。

# scheduler.rake
task :update_products => :environment do
    e = ExternalConnection.new
    e.update_products!
4

1 回答 1

1

这取决于你,如果你想遵循约定。该 update_products 方法是否会修改e对象?如果是这样,我们可以说这是一种“危险的方法”,因为e状态将会改变,也许其他人依赖于那个对象。

我个人会添加“!”。为什么?因为如果另一个(Ruby)程序员要玩代码,他会说“哦,等等,让我们小心这个”。

于 2012-08-11T01:46:26.577 回答