2013年5月30日~6月1日の3日間,
2日目の基調講演の演者はJose Valimです。司会の角谷さんにより
自己紹介
Joseは,
どうして,いま,並行性(concurrency)なのか
Joseはまず,
かつて,
そして,
プログラム自体をそのようなメニーコアに対応させる場合,
クラスのアクセサにおけるレースコンディション
一つの問題は,
単純なクラス変数へのアクセサを経由した代入を考えてみます。例えば,User.
という変数があるとします。
そして,
User.
にユーザをセット …(1)current_ user - 少し時間のかかる処理を実行する …(2)
- ユーザにメールを送る …(3)
しかしながら,
具体的には,current_
が置き換わってしまい,
このようなUser.
は,
そして実は,ActionMailer::Base.
,ActionController::Base.
などがそうだとのことです。実はJose自身のライブラリであるDeviseなどにもそのような設定項目はあります。
様々な実装の存在するRuby - 実装による違い
Joseは,
例えば,ActionView::Resolver
が内部で行っているように,
ここで問題があります,
実は,
そのため,
この手の低レイヤーなプログラミングについて,
- コードのメンテナンス性が下がる
- YARVのパフォーマンスも下がる
- 開発者の幸福度も下がる!
そこで,