Rails Developers Meetup 2018 Day 4 Nouvelle Vague で発表してきました。 趣旨は「ActiveRecordやActiveJobなどのRailsの用意した抽象インタフェースを使うと、アプリケーションのミドルウェア構成、ひいてはアーキテクチャの決定を遅らせる事ができる。その分開発に集中できる」です。
Rails中・上級者向けの話をして良いとのことだったので、Rails開発のレアのシチュエーションの話をしました。 そもそも対象のアプリケーション要件が特殊なので、その説明に20分中5〜6分使いました。
内容が少しマニアックすぎたので、伝わる相手は多くはなかったようです。 その中でも良いリアクションを頂けたので、発表した身としては大変満足でした。
反応
一般的なwebアプリケーションとはだいぶ違う前提が多いなー面白い #rdm2018A #railsdm
— おおた@10/5にサーバレス本 (@ota42y) 2018年12月8日
数秒から10分ぐらいの応答速度を期待されている検索エンジン…そういう世界もあるのね(遺伝子情報の世界) #rdm2018A #railsdm
— おおた@10/5にサーバレス本 (@ota42y) 2018年12月8日
あーなるほど、Railsアプリとしてはバックエンドに投げるだけなのでほぼ何もしないし、SQLite3でいいという選択をするのか… #rdm2018A #railsdm
— おおた@10/5にサーバレス本 (@ota42y) 2018年12月8日
ピークタイムに凄く集中するタイプのアプリでも無いからこういう判断はありだなーなるほど。 #rdm2018A #railsdm
— おおた@10/5にサーバレス本 (@ota42y) 2018年12月8日
async アダプタは Ruby のメモリ上にキューためるっていう点でも有利っすね #railsdm #rdm2018A
— Kai Minaty (@kamina_zzz) 2018年12月8日
Rails Wayの端っこ...
— シロ (@shiroemons) 2018年12月8日
たしかにSQLite3の本番環境の知見はあまり聞かない... #rdm2018A
SQLite3やAsyncAdapterをproductionで動かしている例は少ないから情報がない…確かに(´・_・`) #rdm2018A #railsdm
— おおた@10/5にサーバレス本 (@ota42y) 2018年12月8日
DBのコネクション数を1にする…mjk #rdm2018A #railsdm
— おおた@10/5にサーバレス本 (@ota42y) 2018年12月8日
ActiveRecordを使っててconnectionを意識したこと確かに基本的に無いなー #rdm2018A #railsdm
— おおた@10/5にサーバレス本 (@ota42y) 2018年12月8日
すごく道なき道を走ってる #railsdm #rdm2018a
— Katsumata Ryo (@katsumata_ryo) 2018年12月8日
私の前にRail Wayはなく、私の後ろにRail Wayはある*1
補足
Webフロントエンド
検索に時間がかかるとブラウザ側がタイムアウトしたりしそうだけどそのあたりは対策してそう。
— color_box (@color_box) 2018年12月8日
#rdm2018a
Web用フロントエンドとブラウザの間はWebSocketでつないで、サーバから非同期に結果を送っています。 今回はWeb用フロントエンドに関わる話はしないので、端折りました。
Web用フロントエンドでの、WebSocket(とスレッド)に関わる、技術的落とし穴の話は下でしました。 speakerdeck.com アプリケーションの構成は説明していません。
Sucker Punch
発表時に詳細を端折った、Sucker Punchに当てるモンキーパッチの説明をQiitaに書きました。
同じく端折ったDockerの話もどっかーに書きたいです。
ActiveRecord
発表後に聞いた話では、該アプリケーションはSQLiteからPostgreSQLへ、ソースコード修正無しで、乗り換えできたそうです。 ActiveRecordの抽象化の完成度、すごいですね。
その他
動画もあるみたいです。恥ずかしいので自分では、見ていません。
twitter.com12/8(土)に実施されたRails Developers Meetup 2018 Day 4の @ledsun さんのセッション動画を公開しました。 #railsdmhttps://t.co/BDdxZtbkQN
— 徳用カルパス (@yoshi_hirano) 2018年12月12日
*1:実際は先人が作った巨大なRail Wayの端っこを、ちょっと開拓しただけです。