20倍

メンテナンス作業終了しました。3分で終わってしまった・・・

@ubiregi

というわけで、実際のmigration作業に20〜30分、トラブルにも対処できるよう余裕を持ってその倍、切りが良い感じで1時間、と計画していたメンテナンス作業が3分で終わりました。

20倍の高速化は、ActiveRecordのupdate_allメソッドを発見したからでした。

Checkout.find_each do |checkout|
  checkout.deleted = false
  checkout.save!
end

Checkout.update_all(:deleted => false)

へと!まあ、これは最初のコードもかなりアホなので(add_columnに:defaultつけたらそれでいい気もする)、べつに良いんですけど。

昨日、こういうことがありまして。「『君のコメントが読みたい!』っていう機能が欲しいな!」って適当なことを言ってみたら、20分後に実装されてたという。けっこうびっくりしました。(ほんと思いつきなので、この機能が価値があるものかどうかはよくわからないんだけど、まあそれは俺の問題じゃない。)

Ikejiの冗談を真に受けてたようです。すでにそういう機能あったんですって。穴があったら入りたいくらいはずかしい。

  • 実装するかしないか一瞬で判断できる決断力
  • すぐに実装できる腕力
  • すぐに実装できるようになっている環境

すごいなぁ。

ユビレジでそれができるかというと、なかなか難しいと思う。(まあ、実装するかどうか、という点について言えば、私がかなり保守的な立場を取っていて、そう簡単には新機能を提供しないというのはあるんだけど。)


まず、根本的な姿勢として、もっとほいほい新機能を実装するように、保守的な体制を取りやめるべきなのかもしれない。さらに、実装するという決断から先をすばやくできるように、どういう風にすれば良いのか考えないといけない。がんばります。


そういうことがあったので、3分でdb:migrate終わってちょっといっそう喜んでみたりしたのでした。