こんにちは、hachi8833です。RubyKaigi 2024開催まであと4か月ですね。
書きました
RubyKaigi 2024の予習をしに沖縄に行ってきた | うなすけとあれこれ https://t.co/lhmOsw7QCF
— うなすけ (2/17 高専DJ部#39) (@yu_suke1994) January 28, 2024
🔗Ruby
🔗 技術評論社サイトのRuby 3.3新機能解説記事
Ruby 3.3リリース! 新機能解説 「Prism:エラートレラントな、まったく新しいRubyパーサ」 公開 https://t.co/VxPhQNtFQn
— gihyo.jp (@gihyojp) January 23, 2024
"具体的な目標を挙げると、Ruby 3.4からはparser gemのバックエンドとしてRubyのパーサを使えるようにします。"
parse.c への Ruby バインディングによる AST は Prism 互換インタフェースなのかな?https://t.co/lrXORm65mK— Koichi ITO (@koic) January 24, 2024
RBSのここ1年の動きが追える記事書きました! https://t.co/tZEkhQbVzw
— ksss (@_ksss_) January 26, 2024
つっつきボイス:「Ruby 3.3新機能解説記事が技術評論社サイトで続々公開されていました」「こういう詳細な記事を日本語で読めるのはやっぱりいいですね👍」「以下の記事もKevin NewtonさんによるPrism開発の経緯を解説していますが↓、上のPrism記事はKevin NewtonさんがRuby 3.3向けに新たに書いた総括という感じですね」「Lrama LRパーサジェネレータ記事は構文解析の奥深くを探る内容: RubyKaigiの予習用に読んでおこう」「RBSの最新情報もありがたい🙏」
🔗 aws-sdk-rubyの全gemにRBSファイルが追加
つっつきボイス:「上のRBS記事で思い出したんですが、aws-sdk-rubyで使われる全gemにRBSファイルが追加されたそうです」「お〜、aws-sdk-rubyで型チェックが使えるようになるのはかなりありがたい🎉」「ruby-jp Slackでも偉業が褒め称えられていました」「"私が実装を担当しました"、強い」「コミットもさすがに大きいですね」
🔗 文字ときどきRuby
“文字ときどきRuby / Character and Ruby (NSEG)” https://t.co/7rYxC9DEgq
— Watson (@watson1978) January 28, 2024
つっつきボイス:「Ruby以外でも重要な文字コードと正規化と絵文字の定番の話ですね👍」
「絵文字といえば、Googleが最近やっているEmoji Kitchenというサービスがちょっと面白い↓」「お〜、絵文字を意味のある形で組み合わせたり改造したりできるんですね」「作った絵文字をWebで自由に使えるのが偉い❤️」
参考: Emoji Kitchen
🔗 nokogiri-diff: HTML/XMLのdiffツール(Ruby Weeklyより)
つっつきボイス:「nokogiriを使ってHTMLやXMLのdiffを取るんですね」「名前もわかりやすくて便利そう」「知っていたら使うかも👍」
require 'nokogiri/diff'
doc1 = Nokogiri::HTML('<div><p>one</p> two </div>')
doc2 = Nokogiri::HTML('<div><p id="1">one</p> <p>three</p></div>')
doc1.diff(doc2) do |change,node|
puts "#{change} #{node.to_html}".ljust(30) + node.parent.path
end
# <div>
# <p>one</p> two </div> /
# <p>one</p> /div
# - two /div
# + /div
# + <p>three</p> /div
# + id="1" /div/p[1]
# one /div/p
🔗 その他Ruby
- 元記事: Programming Ruby 3.3 (5th Edition): The Pragmatic Programmers' Guide by Noel Rappin, with Dave Thomas(Ruby Weeklyより)
つっつきボイス:「お、Programming Rubyが早くも3.3に対応🎉」「前のを持っていると差分だけ読みたい気持ちに一瞬なったけど、公式Changelogを読めばいい話だった」「zverokさんがライフワークでやっているRuby Changesも参考になりますね↓」
参考: Ruby 3.3 changes - Ruby Changes
🔗DB
🔗 RailsのPostgreSQLを高パフォーマンスにする(Ruby Weeklyより)
つっつきボイス:「以下の動画のQ&Aを文章化した記事のようです」インデックスへの配慮や生SQLを使うことの検討、パーティショニング、キャッシュの活用、PostgreSQL拡張など、どれも一般的な手法」「データベースチューニング方面は昔からそれほど変わっていませんよね」「Railsもそういう意味では円熟したフレームワークになっていると思いますね」
「RailsでPostgreSQLを使うときの定番パフォーマンスチューニングをさらっと読むのによさそうな記事👍」
🔗 Solid QueueとUPDATE SKIP LOCKEDを理解する
つっつきボイス:「これは近々翻訳を公開するので、ここではドラフト翻訳を読むことにします」「Solid QueueはRails 8でActive Jobのジョブバックエンドとして採用されるんですか(ウォッチ20240117)」「PostgreSQLでは前から使えているUPDATE SKIP LOCKEDがMySQL 8でも使えるようになったのでSolid Queueで使っているという話ですね」「UPDATE SKIP LOCKEDのしくみを知りたかったので書いた記事だそうです」「SQLite3にはUPDATE SKIP LOCKEDはないけど別の仕組みでカバーできるのね」
「DBベースの別のワーカーキューであるGoodjobや昔ながらのdelayed_jobについても言及していて、GoodjobでもPostgreSQLのUPDATE SKIP LOCKEDを採用するかもしれないという流れになっているらしい」「GoodjobはPostgreSQL専用でしたね」
「流れとしては、ワーカーキューだけのためにRedisサーバーを別途セットアップしてメンテナンスするのは手数が増えるので、DBベースのワーカーキューならそれをしなくて済むよね、という話ですね」「Redisなしでできるといろいろ嬉しい」「Solid QueueがRailsのワーカーキューとして標準的に使えるようになると、ワーカーキューをどうするか悩むことが減りそう👍」
🔗 設計・セキュリティ
🔗 thoughtbotの"Product Designスプリントキット"
- 元記事: Introducing the Product Design Sprint Kit by thoughtbot!
- 動画: thoughtbot Product Design Sprint Kit - YouTube
つっつきボイス:「thoughtbotがプロダクト設計の動画を多数YouTubeで公開したそうです」「件数は多いけど、動画1つが数分程度と短いので見やすそうですね」「プロダクト設計に興味のある人はどうぞ」
🔗言語/ツール/OS/CPU
🔗 キャッシュメモリの効果
すごく有益な動画なので皆で見よう。「キャッシュメモリの効果」について。 https://t.co/HsFhAa7U2S
— 徳丸 浩 (@ockeghem) January 31, 2024
つっつきボイス:「キャッシュメモリについてはmorimorihogeさんが社内勉強会でも毎年詳しくやっていますね」「動画で引用されているこのサイト↓は有名ですよね」「以前ウォッチでも取り上げましたね(ウォッチ20200602)」
参考: Numbers Every Programmer Should Know By Year
「ちょうどこのあたりに関連しそうな『プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか』という本がちょうど発売されたそうです↓」「おぉ、このあたりは大学で学んだな〜」「メモリ順序付けって知らなかった」
「プログラマーですがなぜキャッシュメモリは早いのかといった物理的なことがネットで調べてもしっかり理解できません」という質問には、「『プログラマーのためのCPU入門』を読んで」って答えるのが簡単だと思いました https://t.co/AVibi61Ws7
— 専門性・売上・原稿 (@golden_lucky) January 29, 2024
🔗 chmodは何と読む
動画があった https://t.co/YurpVpHdau
— Tatsuhiko Miyagawa (@miyagawa) January 24, 2024
つっつきボイス:「やっぱり人によるのでは」「上の動画でも人それぞれですね」「自分はchmodはチェンジモード、chownはチェンジオーナーって読んでたかも」
後編は以上です。
バックナンバー(2024年度第1四半期)
週刊Railsウォッチ: Pumaのデフォルトスレッド数変更、Rails 1.0をRuby 3.3で動かすほか(20240206前編)
- 20240125後編 RailsコントローラのparamsはHashではない、ruby-enumほか
- 20240123前編 Railsの必須Rubyバージョンが3.1.0以上に変更ほか
- 20240119後編 Ruby 3.3でYJITを有効にすべき理由、Turbo 8の注意点8つほか
- 20240117前編 Rails 8マイルストーン、2023年のRails振り返り、Solid Queueほか
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp SlackやRedditなど)です。
週刊Railsウォッチについて
TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)