[特別講演] Rails 6 に向けた ActiveRecord の改善


yhirano55
yhirano55 commented 25 days

登壇者: Railsコミッター @kamipo

現在、Active Record にどのような改善・修正を行なっているか、また、今後の性能改善などの展望についてお話しいただきます。なお、本セッションでは、ActiveRecordを中心としたRailsに関する質疑応答時間を設けます

https://techplay.jp/event/679666


  • このセッションに関する質問を募集中です
  • ActiveRecordについて、またはRails について、また、kamipo氏に直接聞いてみたいことを質問してください。
  • 質問への回答はお約束できません。あらかじめご了承ください

Like(0)

Questions and feedbacks (14)

fursich
fursich commented 6 days

ActiveRecordだけでなくArelにもMySQLにも精通されているkamipoさんに質問です。

ActiveRecordで表現しきれない複雑なクエリを書くときに、個人的にSQL/Arelどちらで書くべきかという考え方はありますか?また、railsとして今後Arelをどう位置付けていきたいのか(あくまでinternal APIなのかActiveRecordを補完する存在になるのか)という方針のようなものをご存知だったら伺いたいです。

Like(3)

284km
284km commented 6 days

MySQL のみならず、他 DB の adapter にも多くのパッチを送られている kamipo さんに質問です。 adapter による機能や実装の違いがあると思いますが、統一したい部分や、この adapter のこれをこっちにも取り入れたい。などの観点で考えていることなどありますでしょうか?

Like(2)

284km
284km commented 6 days

Active Record と MySQL 両方を熟知する kamipo さんに質問です。 Rails (Active Record) と MySQL 、kamipo さんの興味の対象としてより強いのはどちらか、選ぶことはできるものでしょうか?

Like(2)

y-yagi
y-yagi commented 6 days

数えきれない位Active Recordの性能改善をされてらっしゃるkamipoさんに質問です。 実はこの機能を消せれば(or Rails本体から外せれば)もっと性能改善が出来る、というような機能はありますでしょうか?

Like(2)

y-yagi
y-yagi commented 6 days

Active RecordだけではなくMySQLについても造詣が深いkamipoさんに質問です。 Active RecordはORMとして複数のDatabaseをサポートしていますが、仮にMySQLだけをサポートするActive Recordを作れるとした場合、Active Recordに対してもっと行える最適化はありますでしょうか?

Like(2)

alpaca-tc
alpaca-tc commented 7 days

ActiveRecordには、AdequateRecordやAttributes APIなどのように、コミッターによる熱い想いで入った機能がいくつかあります。 kamipoさんにも、そのような入れたい新しい機能などありますか?できれば、前例のように銘打つようなものがあれば伺いたいです。

Like(3)

saboyutaka
saboyutaka commented 7 days

Railsの今後のロードマップなどはどう議論されて、どういうプロセスで実装されているのでしょうか??またその議論にDHHがどのぐらい関与してるのかに興味があります。

Like(1)

yahonda
yahonda commented 9 days

ユーザーがcollationもcharsetもどちらも指定しなかった時に、MySQLの DEFAULT CHARACTER SETはutf8になっています。*1 これを、utf8mb4 にするのはいいアイディアだと思われますでしょうか。

また、このためにはMySQL 5.5以上が必要になります。現在、RailsではMySQL 5.1.10以上をサポートしていますが、すでにMySQL 5.1はOracleからPremier Support Endが2013年の12月で終了しております*2ので、Rails 6でMySQLのサポートバージョンを5.5以上にあげることに大きな懸念はないかと思います。ご意見お聞かせください。

*1 https://github.com/rails/rails/blob/7fc499d1353f98b96c09ee755045e4aa37880962/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb#L252

*2 https://www.oracle.com/us/assets/lifetime-support-technology-069183.pdf

Like(5)

unasuke
unasuke commented 10 days

日々 rails/rails の開発に関わる上で使用しているツールなどはありますか? (eg https://jasperapp.io/ )

Like(2)

koic
koic commented 10 days

以前 amatsuda さんが ActiveModel::Presence#present? (blank?) を導入することによって、Model#present? (blank?) のコールスタックを減らす PR rails/rails#23394 を開いて sgrif さんによりクローズされていますが、kamipo さんだったらマージしていたでしょうか?あるいは既存の状態のようにクローズしていたでしょうか?

Like(1)

koic
koic commented 14 days

Rails 6 までに非推奨にしたいと考えている Active Record の API はあるでしょうか?またあるとすればどのような理由からでしょうか?

Like(4)

koic
koic commented 14 days

Rails 6 のリリースまでに、rails/rails の Pull Request / Issues が 40000 まで進んだ場合にキリ番ゲットして、Rails コミュニティに伝えたいパッチはあるでしょうか?

Like(0)

yhirano55
yhirano55 commented 23 days

rails/rails 以外でウォッチしているリポジトリはありますか

Like(0)

koic
koic commented 25 days

キリ番ゲッターとして DHH にもメンションされた kamipo さんに質問です。 直近では rails/rails#30000 のキリ番で RangeError にまつわる Pull Request を開かれていますが、もし次のキリ番の機会を得たときに直して広めたい Active Record への変更はありますか?

Like(4)

Create Comment

Please sign in to comment.

Sign in with GitHub
This software is available as open source under the terms of the MIT License.
Copyright © 2018 Yoshiyuki Hirano