STORES Product Blog

こだわりを持ったお商売を支える「STORES」のテクノロジー部門のメンバーによるブログです。

Ruby

Euruko 2025 発表してきました

技術推進本部の shia です。最近東京は天気が荒れやすく、湿っぽい夏になっている印象ですが、ひと足先に秋を感じてきましたのでその話をしようと思います。 先日 09/18-19 にポルトガルの Viana do Castelo で開催された Euruko 2025 に参加してきました。…

深掘りRubyKaigi 2025 with tompng & ima1zumi 文字起こしレポート vol.2

2025年5月28日に『深堀りRubyKaigi 2025 with tompng & ima1zumi』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は後編です。 hey.connpass.com プログラミングの最初は金融系のシステム 開発環境とエディタ Rubyistから…

深掘りRubyKaigi 2025 with tompng & ima1zumi 文字起こしレポート vol.1

2025年5月28日に『深堀りRubyKaigi 2025 with tompng & ima1zumi』を開催しました。深堀りRubyKaigiはRubyKaigi 2022からはじめており、今回で4回目です。 イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は前編です。 hey.connpass.com 登…

Ruby言語そのものの開発に挑戦する特別なインターンシップ、「Ruby開発インターンシップ」を始めます

こんにちは、STORES で VPoE をしている id:hogelog です。 本日はプログラミングそのものが好きな学生の皆さんに向けて、特別なインターンシップの募集をお知らせします。Railsプロダクトを一緒に開発するのでもなく、講義的なワークショップをやるのでもな…

インタラクティブなコマンドラインも自動化できるって知ってた?

こんにちは、tomorrowkeyです。 普段はAndroidアプリを書いていますが、100% Androidアプリ開発というわけでもないので、今回の記事ではAndroidではない話題を書いてみようかなと思います。 開発の現場ではたくさんのワークフローを実行しないといけない場面…

「Ruby on Rails の楽しみ方」への高橋会長のレビューコメント

STORES エンジニアの morihirok です。 先日サポーターズさん主催の勉強会「技育CAMPアカデミア」にて、学生の皆様に向けてSTORES社が講義をさせていただきました。 テーマは「『なぜ今 Rails を学ぶべきなのか』Ruby on Rails から学ぶ Web アプリケーショ…

Goで作られたシステムをRuby on Railsに移植しています 〜GraphQL編〜

STORES でエンジニアをしている片桐です。 先日、「Goで作られたシステムをRuby on Railsに移植しています」という記事を投稿させていただきました。 product.st.inc product.st.inc ベース部分の実装について別ブログで紹介したいと書かせていただきました…

Goで作られたシステムをRuby on Railsに移植しています 〜データベース編〜

STORES でエンジニアをしている片桐です。 先日、「Goで作られたシステムをRuby on Railsに移植しています」というブログを投稿させていただきました。 product.st.inc ベース部分の実装について別ブログで紹介したいと書かせていただきましたが、今回はその…

モバイルオーダーの予約システムで複雑な時間の計算を集合演算で解決した

こんにちは、Webアプリケーションエンジニアのsomeziです。 皆さんは予約システムをつくったことはありますか?私は現在モバイルオーダーを開発しており、その中で時間を指定せずに最短で受け取れるように注文する「即時注文」と、あらかじめ決められた時間…

Goで作られたシステムをRuby on Railsに移植しています

STORES でエンジニアをしている片桐です。 STORES では店舗運営に関するさまざまなプロダクトを提供しています。これらのプロダクトは元々別の会社で運営されてきた完全に異なるプロダクト群で、アカウント体系から全く異なるシステムになっていました。近年…

`Ractor::Port` ― Ractor の API を一新した話

本稿では、Ruby で並列処理を手軽に実現するための機構 Ractor の API について、以前から気になっていた部分を最近になって一新し、`Ractor::Port` というものを導入したので、その内容をご紹介します。

STORES はRubyKaigi 2025も全力!ブース、ミートアップ、関連イベント、Nursery Sponsorのご紹介

こんにちは、技術広報のえんじぇるです。RubyKaigi 2025が近づいてきましたね! STORES はRubyKaigi 2025もNursery Sponsor(託児サポート)として協賛しています。 Nursery Sponsorの他にも、さまざまな取り組みをするので下見時の写真をまじえながら紹介さ…

開発版のRubyを用いてCIを定期実行する試みとその成果

こんにちは。本記事は ykpythemind、mame、 ko1 が共著しています。 今回は開発版のRuby(Ruby head)を用いてSTORESのRailsアプリケーションのCIを定期実行していることと、それによってRuby本体の開発にフィードバックをしていることについてお話します。 モ…

東京Ruby会議12で「混沌とした例外処理とエラー監視に秩序をもたらす」というタイトルで登壇しました

STORES でソフトウェアエンジニアをやっております @morihirok です。タイトルの通り先日行われた東京Ruby会議12で登壇しました。 regional.rubykaigi.org 発表資料はこちらとなります。 speakerdeck.com STORES は Sliver Sponsors として協賛させていただ…

一括生成された大量のデータを効率的に基盤システムへ送信する設計

はじめに 基盤システムへのデータ送信 コールバックを利用したデータ送信 課題 データ作成のバッチと送信処理を分ける 実装の概要 バッチ処理で作成された事実を記録するテーブルを用意 バッチ処理でのログ記録 コールバック処理 送信バッチ処理 まとめ はじ…

Action Mailerに学ぶ闇の魔術と闇の魔術に対する防衛術

はじめに STORES 予約でエンジニアをやっている@ucksです。 大体年内にやりたかったタスクが捌けてきたので空いた時間でブログを書いています。 Railsからのメール送信でお世話になるAction Mailer。 インスタンスメソッドを定義しているのにクラスメソッド…

プロと読み解くRuby 3.4 NEWS

プロと読み解くRuby 3.4 NEWS テクノロジー部門技術基盤グループの笹田(ko1)と遠藤(mame)です。Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 …

データベースのJSON型をRailsらしく扱う方法の提案

データベースのJSON型をRailsらしく扱う方法の提案 この記事はSTORES Advent Calendar 2024の13日目の記事です。 はじめに STORES 予約のエンジニアの@ucksです。 なぜかブログはDBネタばかり書いていますが、今回もDBネタになります。 多くのRailsアプリケ…

RSpec で書くひとにやさしいテストコード

こんにちは。 STORES ネットショップ の開発をしている、hsm_hx です。 この記事は STORES Product Blog Advent Calendar 2024 8日目 の記事です。 わたしと RSpec STORES ネットショップ チームでは、ネットショップの注文データを保存するために作られたモ…

データ移行の話で RubyWorld Conference 2024 で発表してきました

テクノロジー部門リテール GTM B グループの @phayacell と申します。 RubyWorld Conference で発表してきましたので、その報告投稿としての STORES Advent Calendar 2024 7日目の記事です。 どんな発表してきたの? 以下の発表をしてきました。 speakerdeck…

Railsのテストコードで使われているNamed Routesを実行時に文字列に直した話

CTOの藤村です。最近はぜんぜんRailsを書いていません。ふとSuggestion: Use string literals instead of named routes or URL helpers in tests · Issue #328 · rubocop/rails-style-guideというIssueを見て、2年ほど前にやったことを思い出したので、今更…

大阪Ruby会議04に参加しました

こんにちは。STORES 予約 の開発をしているima1zumiです。夏も終わり秋も深まる季節になってしまいましたが、8/24に開催された大阪Ruby会議04という地域Ruby会議*1に参加したのでレポートします。 会場は中之島フェスティバルタワーでした。ビル1FにGLITCH C…

Kaigi on Rails 2024に STORES から2名が登壇、ゴールドスポンサーとして託児所運営をします&STORES.rb 開催のお知らせ

こんにちは、技術広報のえんじぇるです。 STORES は10月25日・26日に開催されるKaigi on Rails 2024にゴールドスポンサーとして協賛し、託児所運営をします。また、2名が登壇します! この記事では、 当日登壇するメンバーと、 スポンサーとしての STORES に…

EuRuKo2024 で発表してきました(YARVの話)

テクノロジー部門の笹田です。寒暖差が大きく、体調が心配になる季節ですね。うちの家族は私以外が風邪ひいてしまい、いつ私にうつるか戦々恐々しています。皆様もどうぞご自愛ください。 先月 9/11-13 に Sarajevo, Bosnia & Herzegovina で開催された EuRu…

CDNとWasm、WasmになってるCRubyはそれ自体が素晴らしい。深掘りRubyKaigi 2024 文字起こしレポート vol.3

2024年6月20日に『深掘りRubyKaigi 2024 with kateinoigakukun & ledsun & remore』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は第3部です。 hey.connpass.com イベントのアーカイブはYouTubeでも公開しています。 登…

Rubyでフロントエンドを書く未来、おもしろRuby in the browser事案。深掘りRubyKaigi 2024 文字起こしレポート vol.2

2024年6月20日に『深掘りRubyKaigi 2024 with kateinoigakukun & ledsun & remore』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は第2部です。 hey.connpass.com イベントのアーカイブはYouTubeでも公開しています。 登…

ブラウザで動くMastodonを作るまでの道のり、これからのruby.wasmの開発方針。深掘りRubyKaigi 2024 文字起こしレポート vol.1

2024年6月20日に『深掘りRubyKaigi 2024 with kateinoigakukun & ledsun & remore』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は第1部です。 hey.connpass.com イベントのアーカイブはYouTubeでも公開しています。 登…

rubocop-todo-corrector で .rubocop_todo.yml を撲滅する

rubocop-todo-corrector で .rubocop_todo.yml を撲滅する STORES でソフトウェアエンジニアをやっている @morihirok です。 先日 【増枠】10年超えRails開発の振り返りと未来 - 持続可能な開発の具体策 というイベントで STORES の Rails 開発について話…

複数の検索条件をリアルタイムに判定するスマートリストの設計

こんにちは、STORES でエンジニアをしているmochizukiです。 STORES 予約 では、5月に「スマートリスト」という新機能をリリースしました。 このブログでは、このスマートリストを実現するために採用した設計と、その背景についてお話しします。 スマートリ…

データベースの値をちょっとだけ書き換えたら検索に数十分かかる様になって障害になった裏話

はじめに 2024年1月にリテール(ネットショップ・レジ)部門からサービス(予約)部門に異動になった @ucks です。 異動してからはスマートリストという機能の開発を行っていて、5月6日に無事リリースできたのと、開発途中で障害に至ってしまった部分があるので…