Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連
  • 勉強会

銀座Rails#17で「出張Railsウォッチ」発表させていただきました

morimorihogeです。2020とタイプしようとして2019と未だに間違える昨今です。

2020/01/16(木)に開催された銀座Rails#17 @リンクアンドモチベーションでTechRachoの週刊Railsウォッチの出張版ということで参加させていただきました。スライドは以下の通りです。

今回の特集は「リソース管理スコープについて」ということで、Railsアプリケーションコードを書くエンジニアから見たときに扱っているデータ(ファイルやメモリ上に展開したオブジェクト)がどこに保存され、それぞれどのような特徴を持つのかといった話を話題にしてみました。
「リソース管理スコープ」という言葉は僕の造語で一般的な技術用語ではないのですが、アプリケーションプログラマから見たこうしたデータリソース管理の概念を表す一般用語がなさそうだったので今回新たに名付けました。

Webアプリも昔のpureなCGI時代はDBとプロセス内のメモリくらいしかなかったのが、昨今のWebアプリケーションではサーバーホストの冗長化、アプリケーションサーバープロセスのマルチプロセス・マルチスレッド化、DB以外にもRedisなどのKVS的なデータ置き場にAWS S3のようなオブジェクトストレージなど、様々なデータを様々な場所に置いて開発するようになりました。

Rails Wayに従ってgeneratorベースのごくごく一般的なCRUDアプリケーションを書くだけであればDBサーバーなどのアプリケーション・サーバーの外部系のものだけ気にしていればそれほど大きな問題にはならないのですが、アプリケーションが育ってきてサービスオブジェクトやドメインオブジェクトを導入したり、高速化のためにキャッシュを導入していったりすると思わぬところでハマることがあります。

ある程度以上コンピュータサイエンスの知識があったり、そこそこにシステムプログラミングをしている人はこの辺り意識してコードを書いているかと思いますが、Ruby on Railsがはじめてのプログラミング言語という形で使い始めた人などは、今ひとつこの辺りのイメージがしっくり来ていない人もいるのではないでしょうか。

そんなわけで、この辺りの内容を自分でも整理して再構築したのがスライドになります。
この辺りの話はまだ僕の中でもきれいに整理されきった感覚がないのですが、まずはversion 1ということで話させていただきました。
後日きちんと記事に文章でまとめたバージョンも用意する予定ですので、そうした中で更にブラッシュアップしていければと思います。

次回は銀座Rails#18 @リンクアンドモチベーションは2/20(木)19:00~となります。
ピックアップトピックはまた開発・運用系から何か考えようと思っていますが、もし何か取り上げてほしいネタなどありましたらTwitterにて @morimorihoge までご意見お寄せ下さい。

週刊Railsウォッチ 公開つっつき会のお知らせ

1/9(木)19:30より、弊社会議スペースにて毎月恒例の週刊Railsウォッチ 公開つっつき会を開催します。気軽に技術雑談といった感じの会ですので、もしよろしければご参加検討下さい。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。