株式会社メドレーDeveloper Portal

2025-04-23

RubyKaigi 2025 参加レポート - Platinum Sponsor として協賛しました!

はじめに

こんにちは! 人材プラットフォーム本部プロダクト開発室 第一開発グループ所属の山下です。 メドレーには今年2月に入社したエンジニアで、日本最大級の医療介護求人サイト ジョブメドレー の開発を担当しています。

メドレーは 4 月 16 日から 18 日に 愛媛県松山市の 愛媛県県民文化会館 にて開催された RubyKaigi 2025 に Platinum Sponsor として協賛しました! RubyKaigi 2025 は Ruby をテーマとした国際的なカンファレンスで、世界中から様々な Ruby エンジニアが集う大規模なイベントです。 入社したての私も含め、エンジニアとエンジニア採用担当の計 13 名が現地参加し、たくさんの方々と交流させて頂きました。 今回は会場・ブースと発表の様子をご紹介します。

会場の様子

当日は3日間とも天候に恵まれ穏やかな春の日和の中、RubyKaigi 2025 が行われました。 愛媛県民文化会館は松山市の道後温泉と大街道にほど近い立地で、県内最大級の文化施設の一つです。メインホールには2,725席を有しています。

gaikan 重厚で堅牢な印象を与える外観

100を超える企業の協賛のもと、1,518名ものRubyistが参加。歴代でも最大規模のイベントとなりました!

jounai 広々として開放感のある場内

参加者に配布された公式グッズは、オリジナルTシャツに加えて御朱印帳や砥部焼の箸置き、松竹錠の形をしたアクリルキーホルダーなど、開催地・愛媛県の特色を活かしたグッズとなっていました。 official novelty

弊社ブースの様子

弊社は会場に入ってすぐ正面の場所にブースを設置させていただきました。

みなさんが感じている医療DXの課題をアンケートでヒアリングし、弊社がそれらの課題に技術を活用してどのように取り組んでいるかをご説明しました。 また、弊社公式X をフォローしていただいた方や、弊社のイベントやテックブログなどの情報をご案内するメーリングリストに登録していただいた方にノベルティも差し上げました。医療事業を手がける企業としてのアピールも兼ねて、ノベルティには衛生キットと絆創膏をご用意しました。

medley novelty オリジナルデザインの絆創膏も衛生キットも大人気でした!

communication1

医療DXの課題アンケートで特に回答が多かったのが 「待ち時間が長い」 という課題でした。 メドレーの提供するオンライン診療・服薬指導アプリ「CLINICS」では病院や調剤薬局の予約、事前の問診票入力などが可能です。オンラインによる診療・服薬指導(薬剤師によるお薬の説明)を予約した場合は待ち時間だけではなく移動時間も削減されることや、Uber Eats との連携で服薬指導後、最短30分程度で自宅までお薬を届けてもらうことも可能なことをご説明しました。

また、直接的ではありませんが、待ち時間の長さには人員不足や院内オペレーション、利用システムも影響していることがあります。それらをジョブメドレーや医療機関向けのシステム(CLINICSMALLPharmsDentis)を通じてサポートしていること、それぞれの課題に対して多様なサービスで様々なアプローチをとっていることなどをお話ししました。

メドレーブースにお越しいただいた皆様、ありがとうございました! members 参加メンバー全員で

発表の様子

どのセッションも大変興味深く、一部難解な内容もありましたが、特に印象深かった下記のセッションについてご紹介します。

  • Day1 Keynote: Ruby Taught Me About Encoding Under the Hood - Mari Imaizumi
  • Day1: Introducing Type Guard to Steep - Takeshi KOMIYA
  • Day2: Making TCPSocket.new "Happy"! Misaki Shioi
  • Day3: Matz Keynote

Day1 Keynote: Ruby Taught Me About Encoding Under the Hood - Mari Imaizumi

Day1の基調講演は、@ima1zumiさんによる、普段意識せずに使っている「文字」のコンピュータ上での表現と、Rubyでの扱いに関するセッションでした。文字コードの歴史的背景から最新動向まで深く掘り下げられました。

引用元: speakerdeck.com

概要

文字コードの進化

文字符号化の歴史として、のろしやモールス信号から、コンピュータ時代の ASCII、EBCDIC が紹介されました。特にEBCDICでの日本語表現の困難さ( Shift-In/Out による 1バイト/2バイト 切り替え)の話は印象的で、現在の文字入力環境のありがたさを痛感しました。その後、世界中の文字を統一的に扱うUnicodeが誕生。「Universal」「Efficient」「Unambiguous」を目指し、UTF-8 や UTF-16 といったエンコーディング方式が普及しました。

Reline の事例から見えた課題

Rubyの REPL ライブラリ「Reline」で、特定の絵文字 🧑‍🧑‍🧒 家族 を入力して Backspace を押すとクラッシュする問題がありました。この絵文字は見た目上1文字でも、内部的には複数の Unicode コードポイント(7つ)で構成されています。Reline がこれをバイト数で処理しようとしたため問題が発生しました。ここで重要なのが、ユーザーが「1文字」と認識する単位である「書記素クラスタ (Grapheme Cluster)」です。合成文字や結合絵文字のように、見た目の文字数と内部コードポイント数が一致しないケースが存在します。Reline の問題は、この書記素クラスタを正しく認識していなかった点にありました。

Ruby における Unicode サポート

Ruby は Unicode 15.1.0 仕様への準拠を進めています。Unicode標準のデータベースファイルを取り込み、内部処理に反映させています。正規表現エンジン「Onigmo」もUnicodeに対応しており、\X(書記素クラスタ)や \p{Property}(Unicodeプロパティ)といったメタ文字が利用できます。これにより、開発者は内部表現を意識せずとも直感的な操作が可能です。書記素クラスタの分割ルール(例:GB9c)にも準拠しようとしています。今後の課題としてUnicode 16.0.0への追従や正規化対応が挙げられました。

感想

文字コードの奥深さ、支える技術、そして Ruby の対応を具体例と共に学べました。文字を入力し表現できていることが当たり前ではないこと、Unicode の複雑さに対応し、開発者が直感的に文字を扱えるようにする Ruby コミュニティの継続的な努力に感銘を受けました。今後の Unicode 標準と Ruby の進化に注目していきたいです。

Day1: Introducing Type Guard to Steep

Takeshi KOMIYA さんによるセッションでは、Ruby の静的型チェッカー Steep における型ガード機能の改善と今後の展望が語られました。

引用元 drive.google.com

概要

これまでの Steep と型ガードの課題

Steep は型誤りを防ぐツールですが、従来の型ガードではRubyで多用されるpresent?メソッドのような存在確認と型絞り込みを兼ねるパターンが機能せず、不必要な型エラーが発生し、開発体験を損なう一因となっていました。

Union Type に対する型ガードの強化

この課題に対応するため、Steep 1.10 以降で UnionType(例: String | nil)への型ガードが強化されました。設定記述によりpresent?のようなメソッド呼び出しで nil でない型へ絞り込めるようになり、Ruby らしい自然なコードで型チェックの恩恵を受けられます。この機能は開発者定義のメソッドにも適用可能で、柔軟性が向上しました。

また、より直感的な型ガード宣言のため、新しいアノテーション構文 a{guard: self is AdminUser} が紹介されました。特定の条件下で変数の型が特定の型であることを Steep に伝え、複雑な条件分岐における型情報を明確にします。

今後の展望

将来的な拡張として「Conditional Types」構想が紹介されました。これは特定条件下でのカスタム型ガード適用や返り値型の限定を可能にする機能です。複数の型情報を組み合わせる機能(例: UserAdmin & Publish)も関連して検討されており、より高度で精密な型チェックが実現します。

感想

Steep が開発者のフィードバックを取り入れ、より実践的に進化していると感じました。Guard アノテーションや Conditional Types など、今後の機能追加にも期待が持てます。Ruby における静的型チェックがより身近で強力なものになりつつあり、Steep の活用を検討したいと思いました。

Day2: Making TCPSocket.new "Happy" !

Misaki Shioi さんによるセッションでは、Ruby 標準ライブラリのTCP接続改善、特にTCPSocket.newへの Happy Eyeballs Version 2 (HEv2) 実装の経緯と技術的挑戦が語られました。

引用元: speakerdeck.com

概要

TCPSocket.new を "Happy" にする試み

TCPSocket.newへの Happy Eyeballs Version 2 (HEv2, RFC8305) の実装について。HEv2はIPv4/IPv6両対応ホストへの接続を高速化する技術で、名前解決を並行し、早く応答があった方へ接続することで遅延を最小化します。Shioiさんは先行してSocket.tcpにHEv2を実装した経験を活かし、より低レイヤーのTCPSocket.newへの改善に挑みました。

課題

先行実装したSocket.tcp 自体の課題(並行処理によるステートマシンの問題)に直面し、if文ベースのロジックに再実装して解決しました。この知見をもとにTCPSocket.new(C言語)へのHEv2実装に着手しましたが、RubyとCでの名前解決ライブラリの挙動差異など、新たな壁にぶつかりました。プラットフォーム間の差異吸収など、C言語レベルでの細かな調整を経てプルリクエストを完成させました。

プルリクエストのマージ後も、CI環境でのテスト失敗やユーザーからのバグ報告など、リリース直前まで予期せぬ問題への対応に追われました。これらの困難を乗り越え、この改善はRuby 3.4に無事に取り込まれました。

感想

HEv2実装の一連の取り組みが、時系列で非常に分かりやすく解説されました。Socket.tcpの再実装からTCPSocket.newへの実装、リリースまでの課題と解決策を追体験できました。実装コードの引用も多く、理解の助けになりました。ネットワーク低レイヤーの改善は Ruby エコシステム全体の品質向上に繋がる重要な取り組みであり、普段利用するTCP接続の裏側で行われているパフォーマンスと信頼性向上のための緻密な努力に感銘を受けました。

Day3: Matz Keynote

matz keynote

RubyKaigi 2025 の最後は Matz 氏によるセッションでした。ステージのせり上がるギミックを利用して堂々と登場し、会場を驚きと笑いで包んだ Matz 氏は、現代の開発環境と Ruby の未来について語りました。

AIによる開発支援が急速に進む現代において、本来「楽しい」はずのプログラミングが、AIへの指示出し作業に終始し、人間がまるでAIの「しもべ」であるかのように勘違いしてしまう……。そんな「逆アルファシンドローム」に陥らないよう、Matz 氏は注意を促しました。Ruby の根幹にある「プログラミングを楽しむ」という精神を、技術が進化する今だからこそ、改めて胸に刻むべきだと語りました。

一方で、AIとの協調も未来の重要なテーマです。Matz氏は、将来の高度なAIとのコミュニケーションにおいて、Ruby が持つ「簡潔さ」「豊かな表現力」「高い拡張性」といった特性が、理想的なインターフェースとなり得るとしました。そして、AIがより良く学習できるよう、モダンで質の高い Ruby コードをコミュニティ全体で積極的に公開していくことの重要性を提言しました。

そして Ruby 自体の進化についても、RuboCop、IRB や Parser の進化といった開発者体験を向上させるツールの充実、YJIT/ZJIT や Deoptimization といった技術による着実なパフォーマンス向上についても触れ、Ruby がより強力で使いやすい言語へと進化し続けていることを強調しました。

また、Matz 氏は改めて Ruby の強さの源泉はコミュニティにあると述べました。多様なバックグラウンドを持つ人々を歓迎するオープンな姿勢と、コミュニティ全体で Ruby という言語を育てていく文化こそが、Rubyを特別なものにしています。

さらに、今年の12月に迎えるRubyの30周年を記念して、Ruby4.0 のリリースを予定していることを発表していました。

昨今のAIの目覚ましい発展は、エンジニアとして非常に心躍るものである一方、一抹の不安を感じさせる面もあります。しかし Matz 氏の講演は、むしろ Ruby と共に新しい未来を切り拓いていく希望を与えてくれるものでした。Ruby の「楽しさ」という原点を決して忘れず、AIを強力なパートナーとして、より創造的な開発を追求していきたいと、決意を新たにしました!

さいごに

Ruby の可能性を肌で感じ、熱意ある仲間たちと出会い、技術への情熱を改めて確認できた素晴らしいイベントでした。
運営スタッフの皆さん、登壇者の皆さん、一緒に盛り上がった参加者の皆さん、本当にありがとうございます!

来年は北海道・函館での開催を予定しているそうです。 メドレーには はこだて未来大学出身のメンバーも在籍しており、学内セミナーへの参加も積極的に行なっております。ゆかりある地での開催に向けて、今から非常に楽しみです。 私たちはこれからも Ruby コミュニティとともにさらに成長し、チャレンジし続けます!

After RubyKaigi 2025 を開催します!

after event https://increments.connpass.com/event/351891/

メドレーは同じくRubyKaigi スポンサー企業である Qiita社・OPTiM社 との合同開催によるアフターイベントを 5 月 14 日 に行います。
RubyKaigi の思い出や Kaigi Effect を受けて挑戦したことなど、楽しく話し合いましょう!

メドレーではこのようなイベントの開催のほかにも、Roppongi.rb など地域コミュニティや技術カンファレンスのスポンサーなどを通して、技術とコミュニティの発展を応援しています。

メドレーではエンジニアを積極採用中です!

メドレーでは領域を問わず、Ruby を積極的に活用して医療ヘルスケアの未来をつくるプロダクトを開発しています。
Ruby を活用した医療ヘルスケア領域の課題解決に興味がある方は、ぜひお気軽にご連絡ください!

募集の一覧 https://www.medley.jp/jobs/
※カジュアル面談ご希望の際は、<その他>にてその旨をご記載ください

株式会社メドレーDeveloper Portal

© 2016 MEDLEY, INC.