Railsコミュニティの調査とアンケート
はい、こんにちは。第19回目のtanaken on Railsです。
今週は、2つのお知らせと1つのプレリクエストを紹介します。
1つ目、Ruby on Railsコミュニティサーベイ2024ということで、
Railsコミュニティの現状を把握するために、 アンケートが実施されているということです。
この調査は2009年から実施されていて、 およそ2年に1度ぐらいのペースで開催されているものですね。
最初だけ2009年で、2回目からは2012、 2014、16、18、20、22ということで、
2年に1度やられていて、 2024年、今年は調査対象の年であるということで、
今回の調査は2024年の8月2日まで回答ができます。
先ほど私も回答しました。
なかなかのアンケートのボリュームですが、 基本的にはいくつかの選択肢の中から、
1つないし複数を選ぶスタイルになっていて、 時々自由入力で記載するところもありますが、
基本的には選んでいくだけなので、 そんなに難しくはないかなと。
例えば使っているRubyのバージョンは何ですかとか、 Railsのバージョンは何ですかとか、
テストは何を使っていますかとか、 テストフレームワークね、
ミニテストですか、Rスペックですかとか、 そういうやつとかね。
いろいろCDNは何を使っていますかとか、
Docker使ってますかとか、 Rubyのバージョン管理はどうしてますかとか、
そんな話とかを含めてね、 いろいろあるという感じですので、
ぜひ答えてみてください。
RailsConf 2025の開催地とプレリクエスト
2つ目。
2つ目は、 A New Error for Ruby Central Eventsということで、
Ruby Centralからのお知らせです。
RailsConf 2025の開催地に関する アンケートが実施されています。
これまでは運営チームが主軸となって、 開催地を独断で決めていたという形だと思うんですけど、
正直僕はあまりRailsConfには詳しくないんですけど、 そういう形だったんですが、
今回は来年の開催地に関して 一般のアンケートを取っていますと。
おそらくそのアンケートで全部確定するかというと、 そうではない気もするんですけど、
そのアンケート結果を参考に 開催地を決めるということだそうです。
また、RailsConf 2025をもちまして、 RailsConfの最後の開催にする、
というふうに発表されています。
詳しい理由等は、 今回リンクを貼った記事を読んでほしいんですけども、
自分が読み解いた理解で言うと、
RailsConfという大きいイベントを、 どこかの国とか町でバーンとやるのもいいんだけども、
地域のカンファレンスだったり、 ミートアップだったり、
それぞれのオープンソースのあらゆるものへの サポートに注力をしていきたい、
というところを記載してありました。
その背景として、COVID-19を受けて、
インパーソンでのさまざまな小さいものから大きいものまで、
さまざまな技術者の集まりが結構減ったよねと、
なかなか完全に復活してきているかというと、 そうではない状況がありますよね、
というのが前提にあるようで、
そういった中でRailsConfの運営チーム自体も、 運営にすごく影響があったし、
各所でそういう影響があるだろうという中で、 大きいイベントをバーンとやるよりも、
各地域だったり、それぞれのオープンソースのプロジェクトに 支援をしていきたいというような趣旨に読めました。
もしかしたら僕の理解が違うかもしれないんですけど、
気になる方がいらっしゃれば、 その記事を読んでいただければなと思います。
RailsConf 2025、来年が最後になるということなので、
ご興味がある方は、まだ2025の開催地も決まっていないので、
もちろん開催地のアンケートに答えていただいたりとか、
おそらく何月か前から参加者募集とかがあると思うので、
そういった情報をキャッチしていただければなと思います。
続いてプレリクエストの紹介です。
タイトルが、AdEnv.SkipTestDatabaseTranquil Flag to SpeedUpMultiProcessTestRuns
ちょっと区切りがおかしかったな。もう一回言いますね。
AdEnv.SkipTestDatabaseTranquil Flag to SpeedUpMultiProcessTestRuns
これはアクティブレコードに関する変更でございます。
環境変数、スキップテストデータベーストランケートというのを設定することによって、
テスト用のデータベースのテスト実行時のトランケートをスキップできるようになるよと、
そういう変更でございます。
なんでそんなことをしたいかというと、
大規模なデータベースを使ってテストをしている場合、
複数のプロセスを使って一気にテストをしているぞみたいな場合に、
トランケートをする処理が結構重いというか、時間がかかっちゃうと。
このトランケートの処理をスキップすることによってかなり高速化したよという実績があるみたいです。
このプルリクエストはDHHさんが出しているもので、
実際にこれぐらいの規模のアプリケーションでトランケートをスキップしたら、
これぐらい速くなったぜみたいなことがプルリクエストには書いてあるんですけど、
そういうことを期待して今回の環境変数による制御というのが実装されたということですね。
ただし前提条件にはなりますが、
全てのテストコードがデフォルトのトランザクションで実行される必要があるよと、
そういう実装になっている必要があるよというふうに書いてありますね。
これはプルリクエストにも詳しく書いていないので、
自分なりの解釈なんですが、
このデフォルトのトランザクションで実装されていないと、
おそらくテストの結果が保証されなくなっちゃうということだと思います。
トランケートをすることによってデータベースが真っさらになって、
ゼロからテストを実行する分には問題ないんだけど、
デフォルトのトランザクションで実行されていない場合は、
例えば変なデータがテスト用のデータベースに残っちゃうとか、
ということがあり得るので、
トランケートをスキップしちゃうと、
テスト結果が期待しないものになり得るよ、みたいなことだと解釈しました。
デフォルトのトランザクションって何ですかという話なんですけど、
これは例えばテストコード内でトランザクション.スタートとか、
トランザクション.コミット、トランザクション.ロールバックとか、
そういったトランザクションを制御するような実装をテストコード内にしている、
手動で記載しているというような場合、
こういった場合は、
意図しないデータとかが実装の仕方によっては残り得ると思うので、
テスト結果が保証されないケース、
つまりデフォルトではなく、自分たちで独自にトランザクションを実装しちゃっている場合ということですね。
これとほぼ同様ですが、テストフレームワークだったり、
ライブラリによってそういった独自のトランザクションの制御が実装されている場合も同様ですね。
そういった状況だと、このトランケートをスキップしちゃうと、
変なデータが残っていた場合、予期せずに結果に繋がるということだろうなと解釈しました。
という感じですね。
こんなところで、今週の田中オンレイルスは以上とします。
ではまた来週。バイバイ。