メドピア開発者ブログ

集合知により医療を再発明しようと邁進しているヘルステックカンパニーのエンジニアブログです。読者に有用な情報発信ができるよう心がけたいので応援のほどよろしくお願いします。

Ruby

OpenID Connect Authorization Server を Golang 実装から Rails 実装にリプレイスした話

皆様こんにちは、メドピアのサーバーサイドエンジニアの内藤(@naitoh)です。 社内の OpenID Connect Authorization Server を Golang 実装から Rails 実装にリプレイスしたので、技術ブログで紹介させていただきます。 前提 OpenID Connect は OAuth 2.0 …

環境ごとの設定管理が可能な ClinPeer のフィーチャーフラグの紹介

こんにちは。サーバーサイドエンジニアの佐藤太一(@teach_kaiju)です。 今回の「ClinPeerアプリ開発の裏側連載記事」ではサーバーサイドにおける、フィーチャーフラグの実装方法を紹介します。 tech.medpeer.co.jp 目次 フィーチャーフラグとは 機能の有効化…

#RubyKaigi 2025 セッションレポート

皆様こんにちは、メドピアのサーバーサイドエンジニアの内藤(@naitoh)です。 RubyKaigi 2025に参加されていた皆さん、お疲れ様でした。 今回、内藤がRubyKaigi 本編に登壇しました。 発表内容の詳細は以下の記事にまとめておりますのでよろしければご覧く…

RubyKaigi 2025 に@naitoh が登壇します #rubykaigi

皆様こんにちは、メドピアのサーバーサイドエンジニアの内藤(@naitoh)です。 この度、2025/04/16(水)-18(金)の3日間で開催される「RubyKaigi 2025」に登壇させていただくこととなりました! タイトルは「Improvement of REXML and speed up using StringSc…

Railsの「ActiveSupport::ErrorReporter」って知ってる?

こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 またまた「ClinPeerアプリ開発の裏側連載記事」です。 tech.medpeer.co.jp 今回はClinPeerで活用しているRailsの ActiveSupport::ErrorReporter についてご紹介します。 目次 ActiveSuppor…

ClinPeer Railsプロジェクトのオブザーバビリティ強化施策

こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 N番目の「ClinPeerアプリ開発の裏側連載記事」でございます(連載記事を同時執筆しているため本記事が何番目になるのかもはや不明)。 tech.medpeer.co.jp 今回はClinPeerで実践した「Rail…

ClinPeer Maintenance Tasks Gemの活用事例

こんにちは! サーバーサイドエンジニアの伏見です。 弊社で新しくリリースした「ClinPeer」の裏側連載。 tech.medpeer.co.jp この記事では、サーバーサイドで導入したGem Maintenance Tasks について書いていきます。 導入のモチベーション 開発初期や今後…

ClinPeer Railsプロジェクトの設定値管理(2025年版)

こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 こちらでご案内した通り、弊社で新しくリリースした「ClinPeer」の裏側をご紹介します。 tech.medpeer.co.jp 今回は小ネタとして「Railsプロジェクトの設定値管理」についてご紹介します。…

ClinPeer Railsプロジェクトの技術選定(2025年版)

こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 こちらでご案内した通り、弊社で新しくリリースした「ClinPeer」の裏側をご紹介します。 tech.medpeer.co.jp 今回はClinPeerのバックエンドについての簡単なシステム概要と選定技術の紹介…

Amazon CloudFront環境におけるクライアントIPアドレスについて 〜CloudFront-Viewer-Addressの紹介〜

こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 本日はRuby・Railsの話に限定せず、Amazon CloudFront を利用している方に役立つ情報をご提供します。 目次 はじめに 「X-Forwarded-For」を活用する方法 「CloudFront-Viewer-Address」を…

SolidQueue解体新書

こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 さて、Railsエンジニアの皆さんは非同期処理にどのようなライブラリを利用していますか? ちなみに弊社では Sidekiq を利用するプロジェクトが多いです。 tech.medpeer.co.jp 今回はRails…

HTTP API Clientライブラリの自作を手助けするGemを公開しました

こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 育休明け早々猛暑の熱気にやられ部屋に閉じこもっています。 今回はとあるGemを作成したので、そちらの紹介をさせていただきます。 目次 前フリ Gemの概要 カスタマイズ性について まとめ …

Matzさんを交えて、RubyKaigi 2024の社内共有会を実施しました!

こんにちは!メドピアの伏見(@fussy113)です! メドピアでは、Rubyの父でありメドピアの技術アドバイザリーを務めていただいているMatzさん(@yukihiro_matz)をお招きして、オンライン会議を開催しています。 そのオンライン会議にて、5月に開催されたRubyKai…

#RubyKaigi 2024 セッションレポート

サーバーサイドエンジニアの内藤(@naitoh) です。 RubyKaigi 2024に参加されていた皆さん、お疲れ様でした。 RubyKaigi のセッションの中で印象に残った発表をご紹介します。 RubyKaigi 2024 セッションレポート タイムテーブル タイムテーブルは以下から確…

メドピアはRubyKaigi 2024にPlatinumスポンサーとして協賛します!

メドピアは2024年5月15日〜17日に沖縄・那覇文化芸術劇場なはーとで開催される RubyKaigi 2024 にPlatinumスポンサーとして協賛します!今年もメドピアは会場でブースを出展します!

お財布に優しいCI改善小ネタ集

こんにちは。サーバーサイドエンジニアの三村(@t_mimura)です。 主に保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariのサーバーサイド開発(Ruby on Rails)を担当しています。 今回はRailsシステムのCI時間をコスト追加なしで半減した話…

Railsプロジェクトへの「頑張らない型導入」のすすめ

こんにちは。サーバーサイドエンジニアの三村(@t_mimura)です。 主に保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariのサーバーサイド開発(Ruby on Rails)を担当しています。 突然ですが! この度kakariプロジェクトは「型導入」をしま…

Rails APIサーバーで Ruby 3.2 の YJIT を有効化してみた。

サーバーサイドエンジニアの内藤(@naitoh) です。 Rails で構築された小規模な APIサーバー(Rails の API モードで構築したもの)で、Ruby 3.2 の YJITを有効化する事で性能アップすることができましたので、喜びを分かち合いたく共有させて頂きます。 shopif…

RubyKaigi 2022 感想戦を開催しました!

こんにちは、バックエンドエンジニアをやっている吉野です。 9月の 8, 9, 10日に三重県で開催された RubyKaigi 2022 に現地で参加してきました。 現地参加はもちろん、RubyKaigi 自体に初参加だった私は Rubyist たちの熱量の高さ、レベルの高さにひたすら圧…

RubyKaigi 2022 セッションレポート Day 2

バックエンドエンジニアの田中悠大(@ytnk531)です。 RubyKaigi 2022で三重県に来ています。2日目(9/9)に聴いたセッションについて、簡単に紹介させていただきます。 ruby/debug - The best investment for your productivity ruby/debug - The best invest…

メドピアはRubyKaigi 2022にRubyスポンサーとして(今年も)協賛します

皆さんこんにちは!春から社会人大学生をやっているサーバサイドエンジニアの福本です。開催がいよいよ来週に迫っているRubyKaigi2022ですが、メドピアは今年も(Ruby)スポンサーとして協賛することになりました。ちなみに、RubyKaigiで弊社がスポンサーを行…

Feature Toggleを用いたRailsアプリの継続的なリリースと要注意事項

開発者の皆様、実装したソースコードはこまめにリリースしていますか? 「大きい機能なので開発に時間がかかる」などの理由で、Featureブランチのままコミットが伸びに伸びたりしていませんか? 大きすぎるFeatureブランチは、本流ブランチとの挙動の乖離や…

Ruby v3.1.0のSegmentation faultに遭遇した話

Ruby v3.1.0で発生したSegmentation faultに対するbugs.ruby への報告や再現コード作成などの経緯をまとめました。

Ruby × jemallocのすすめ

Rubyアプリケーションのメモリ使用を効率化する方法として、メモリアロケーターを jemalloc に切り替える方法があります。 本記事では jemalloc を実際にプロダクション投入してみた結果とともに jemalloc について紹介したいと思います。

Ruby3.0でのパターンマッチ機能の変更点

2020年12月25日、ついに待望のRuby3.0がリリースされましたね。 以前、Ruby2.7で発表されたパターンマッチについての記事を執筆したのですが、Ruby3.0になりいくつか追加/変更が入っています。 この記事ではそれらの変更点を確認していきます。

薬局向けサービス”kakari”にruby-vipsを導入した話

こんにちは。 外出自粛が続き、大胸筋の育成が疎かになっているエンジニアの宮原です。 ruby-vipsという画像処理用のGemを、かかりつけ薬局化支援サービスの「kakari(かかり)」で導入してみました。 今回は、ruby-vipsとkakariに実装した画像処理の内容に…

特定保健指導"フィッツプラス"事業を支えるモノリシック Rails + VIPER Swift アーキテクチャ

みなさんこんにちは。フィッツプラス開発エンジニアの福本(@terry_i_)です。 早いもので入社して半年が経ちました。普段はRailsを中心に色々と書いてます。 リモートワークが長く続いていることもあって、最近は自宅の開発環境を(過剰に)整備するのがマ…

CIで稀にSegmentation faultが起きてRubyが死ぬ問題と対応

CTO室SREの@sinsokuです。 先日、弊社のCIで稀によく Segmentation fault が起きるようになりました。 _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ 調べてみた 最初は気づかなかったけど、画像の右端のダウンロードっぽいアイコンをクリックすると、実行…

CircleCIのYAMLを短く書けるRails Orbを作りました

11月に入社したCTO室SREの@sinsokuです。 主にやっていることはRailsアプリのレビューや開発環境の改善です。*1 社内のRailsアプリを横断して浅くレビューする(8つくらい) MedPeerの開発環境の改善 docker-compose up で30個のコンテナが起動するのを減ら…

Ruby2.7の(実験的)新機能「パターンマッチ」で遊ぶ

はじめまして、メドピアのサーバサイドエンジニアの草分です。 RubyKaigi2019 1日目のセッションにてRubyのexperimental(実験的)な新機能「パターンマッチ」(Pattern Matching)が発表されましたね。 speakerdeck.com この記事では発表で紹介されたパターンマ…