大江戸Ruby会議01 高速なテストサイクルを回すには

10,207 views
10,120 views

Published on

0 Comments
30 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,207
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
63
Comments
0
Likes
30
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • テスト時間は早ければ早いにこしたことはない。全部のテスト通すの遅いとやらなくなりがち\n
  • 1テストと、全テスト実行・主に二つに分けられる\n
  • ソリューションはいくつかありますがこんなものがあります なんでこんなのがあるかというと巨大なフレームワーク rails とかは実行コスト高いから\n
  • rails などは初期化コストが高いため、そのコストを削ることで高速化\n
  • 初期化処理=Railsでいうboot.rbの読み込み=必須ライブラリ等の読み込み\n
  • prefetch-rspec は自分自身を立ち上げ直してる。実際にテスト実行後すぐにコードを書き直して実行することは少ない(すくなくとも数秒かかる)ので、その空き時間を利用\n
  • テストを実行して結果を知るフィードバックの高速化\n
  • 明示的に「テストを実行」しなくてもゼロコストで実行\n
  • \n
  • \n
  • \n
  • \n
  • autotest はイレギュラーなことをやろうと思うとソース読んだりで面倒。watchr はまんま ruby でなんでもできる。この辺は好き嫌い。\n
  • \n
  • \n
  • クックパッドの事例\n
  • \n
  • テスト16分が遅いかどうか感じるのは日とそれぞれかも知れませんが\n
  • Cookpad ではどんどんエンジニアが増えていき、書かれてない箇所のコードはspecを追加して云ってるのでテストの実行時間は右肩上がり(ここも見直す必要があるかも知れないけど、テストが遅くなるから必要なspecを書かなくなるのは全く持って良くない)\n
  • ちなみにCIが通ってないともちろんデプロイ自体できない仕組みになってるので、他チームに大きく迷惑が\n
  • ちなみにCIが通ってないともちろんデプロイ自体できない仕組みになってるので、他チームに大きく迷惑が\n
  • \n
  • \n
  • るびーえんたーぷらいずえでぃしょん\n
  • \n
  • \n
  • \n
  • \n
  • メモリたくさん食べるけど…\n
  • 続いて…\n
  • \n
  • \n
  • \n
  • gcc なんかは結構昔からできたけど、LL のテストにも使えるなんて全然考えても居なかった\n最近のマシンって複数コアだったりスレッド実行できたりするよね\n
  • ただ並列実行時にも問題はあるはある\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • ならリモートにマシン用意して実行させれば良くない?\n
  • \n
  • \n
  • \n
  • メモリも減ってるのは、ローカルではリモートにタスク投げて結果を受け取るだけだから\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • ×