- Ruby / Rails関連
週刊Railsウォッチ: Ruby 3.2のData.define、RubyPrize 2022最終ノミネート、Puma-dev gemほか(20221026後編)
こんにちは、hachi8833です。RubyKaigi 2022の動画がYouTubeチャンネルにアップロードされ始めたようです。
#RubyKaigi 2022 の動画が YouTube に出始めた
— yancya (@yancya) October 25, 2022
🔗Ruby
🔗 Ruby 3.2で導入されるData.define
(Ruby Weeklyより)
つっつきボイス:「この記事はData.define
を提案・実装したZverokさんにレビューしてもらったそうです」
# #6353より
Measure = Data.define(:amount, :unit)
Measure.new(1, 'km') # => OK
Measure.new(amount: 1, unit: 'km') # => OK
Measure.new(1) # ArgumentError
Measure.new(amount: 1) # ArgumentError
Measure.new(1, 'km', 'h') # ArgumentError
Measure.new(amount: 1, unit: 'km', comment: 'slow') #=> ArgumentError
「Data
型はStruct
に似ているけどイミュータブルなんですね」「イミュータブルで高速なValue Objectを手軽に作るのによさそうな感じ」「Data
はStruct
を継承していない、Ractorにイミュータブルなオブジェクトを渡せるようにしたい、なるほど」
参考: Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ
参考: Value object - Wikipedia
「記事にもあるようにdry-rbでも似たような実装はできるけど、そうすると通常のRubyオブジェクトの範疇にとどまってしまいますね: イミュータブルなData
型をプリミティブに実装することでMJITやYJITによる最適化にもつながるかも」「お〜」「Data
型が入れば今後はイミュータブルなData
型を使うのがだんだん当たり前になってきて、Ractorに渡すデータやgRPCなどのメッセージ通信やProtocol Buffersでも基本的にData
型を使おうみたいな機運になってくるかもしれませんね: こういう機能が言語に公式に入るのはとてもいいことだと思います👍」
参考: サービス間通信のための新技術「gRPC」入門 | さくらのナレッジ
🔗 Puma-dev gem(Ruby Weeklyより)
つっつきボイス:「Puma-devというgemをこの記事で知ったんですが、どんなときに嬉しい感じでしょうか?」「記事を見ると、ローカル開発でhttp://localhost:3000
のようなホスト名+ポートの代わりにたとえばhttps://web.test
やhttps://auth.test
のような複数のバーチャルホスト名でローカルサーバーにアクセスできるようになるみたい」「あ〜なるほど」
「Puma-devにはmkcert的な機能も全部入っていてhttpsで通信できるらしい」「これは便利そう」「mkcertで証明書を作ってローカルサーバーをhttps通信にするのはたしかに面倒ですよね」
🔗 RubyPrize 2022最終ノミネート発表(Ruby Weeklyより)
/
Ruby Prizeノミネート者公開✨
\Ruby Prize2022のノミネート者を公開しました!
最終ノミネート者は近々公開予定です😆https://t.co/mGRguJy8Rq#Rubyworld#RubyPrize— Ruby City MATSUEプロジェクト (@rubycitymatsue) October 12, 2022
つっつきボイス:「Ruby Prize 2022の最終ノミネート3名が発表されました」「8名のノミネート者の中から選ばれたんですね」「RubyKaigi 2022のキーノートスピーチで強烈な印象を残したkateinoigakukunさんもノミネートされている」「ShopifyのbyrootさんとRubyInstallerのLars Kanisさんも」
参考: RubyKaigiとiOSDCでWasmの話をしてきた -- kateinoigakukunのブログ
「Windows向けのRubyInstallerのメンテナーがノミネートされたのはいいですね: 以前OpenSSLライブラリのメンテナーがRubyPrizeを受賞したときのように、地道なメンテナンスを長年続けてきたコントリビュータに感謝を伝える場を提供するのもRubyPrizeの大事な役割のひとつとして位置づけられているのだろうと自分は思っています👍」
参考: RubyInstaller for Windows
参考: library openssl (Ruby 3.1 リファレンスマニュアル)
参考: 山口一生:1ページ|RubyPrize2016 受賞者インタビュー
🔗DB
🔗 PostgreSQL 15リリース(Publickeyより)
つっつきボイス:「PostgreSQL 15がリリースされた🎉」「年に1回のメジャーリリースだと目まぐるしいですね」
「MERGE文がついにぽすぐれに入ったのが嬉しい👍」「今までMERGEがPostgreSQLになかったとは知りませんでした」「MERGEがなくても同等のことはできるんですが、以前SQL ServerあたりのMERGE文をPostgreSQL用に書き換えたときはつらかった...」
参考: MERGE - オラクル・Oracle SQL 入門
参考: MERGE (Transact-SQL) - SQL Server | Microsoft Learn
🔗クラウド/コンテナ/インフラ/Serverless
🔗 DockerのTeamプランの値上げ
参考: Pricing - Docker
Dockerの突然の値上げヤバすぎる。101名以上でTeamを使ってた企業にとっては $84/人/年から $288/人/年に値上げ。しれっと告知して2週後に適用 / “October 2022 Pricing Change FAQ - Docker” https://t.co/XWAwtEoRJl
— Teppei Sato (@teppeis) October 18, 2022
つっつきボイス:「DockerのTeamプランの急な値上げアナウンスでだいぶざわついていますね」「Dockerの詳しい方針はわからないけど、現時点でDocker for Desktopが力を入れているextensionsにあまり魅力を感じられなくて、むしろDocker Hubの方がユーザーにとっての重要性はずっと高いと思うんですよ」「Docker Hubが要らない人はまずいませんよね」「その意味ではDocker Hubのうまいマネタイズを工夫してもらえる方がユーザーとしてはありがたいんですけどね」「たしかに」
参考: Docker Hub Container Image Library | App Containerization
🔗言語/ツール/OS/CPU
🔗 正規表現の脆弱性「ReDoS」徹底解説
https://t.co/W1mRYpSmmz 第74回 正規表現の脆弱性「ReDoS」徹底解説 ~原理と対策から、Perlでの最適化まで(1) https://t.co/cGPNfh18zi
— tomi rss (@tomirss) October 17, 2022
- 元記事: 第74回 正規表現の脆弱性「ReDoS」徹底解説 ~原理と対策から、Perlでの最適化まで(1) | gihyo.jp
- 元記事: 第74回 正規表現の脆弱性「ReDoS」徹底解説 ~原理と対策から、Perlでの最適化まで(2) | gihyo.jp
つっつきボイス:「正規表現好きとしてこの記事は理論から解説してくれているのが嬉しいです😂: ReDoSは正規表現と対象文字列の両方が関連するために人間の目で発見するのも機械的な判定も難しくて、自分の連載記事↓でもReDoSをどう解説するか試行錯誤中なので」「今見たらパート2記事も出ているので後で読まなきゃ」
後編は以上です。
バックナンバー(2022年度第4四半期)
週刊Railsウォッチ: rodauth-rails gem作者の解説記事、turbo-railsの有料チュートリアルほか(20221025前編)
- 20221019後編 Ruby技術者認定試験再受験無料キャンペーン、Starlink日本で販売開始ほか
- 20221018前編 Rails向けLanguage Server “refreshing”開発中、JetBrains Fleetほか
- 20221012後編 RailsとPostgreSQLで列挙型を作成する6つの方法、Ubuntu Proほか
- 20221011前編 Turbo 7.2.0リリース、GitLabのDevSecOpsサーベイ結果ほか
- 20221004後編 ヒアドキュメント拡張の提案、『組織に自動テストを根付かせる戦略』ほか
- 20221003前編 Kaigi on Rails 2022のタイムテーブル発表、書籍『Practicing Rails』ほか
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp SlackやRedditなど)です。
週刊Railsウォッチについて
TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)