STORES Product Blog

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

STORES 予約

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

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

STORES 予約 をモジュラモノリス化しました!

STORES 予約 は 10 年モノの 45 万行、380テーブルある大きなモノリスの Rails アプリケーションです。 業種にとらわれない汎用的な予約システムであり、それらに対応するように複雑なコードベースになっています。また、ここ 1~2 年はプロダクト間連携を進…

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

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

TypeScript v4.9からv5.5で追加された機能のおさらい

STORES 予約 エンジニアの水野です。STORES 予約 の店舗管理画面で利用しているTypeScriptをv4.8からv5.5にアップグレードしたので追加された主な機能をおさらいしようと思います。 satisfies (v4.9) v4.9で実装されました。 型アノテーションのように型付け…

予約フローのリニューアルを行いました

こんにちは、STORES 予約 でエンジニアをしている@tontokoです。 STORES 予約 では、お客さまが予約を入れるための予約フローをリニューアルしました。この記事ではその内容を少しご紹介します。 予約フローとは STORES 予約には大きく2つの画面があります。…

STORES 予約のRubyを3.3、Railsを7.1へアップデートしました。

こんにちは。STORES 予約 で開発エンジニアをしている矢作です。 ぼちぼちアップデートするかなということで先日、 STORES 予約で利用しているRubyのバージョンを3.2から3.3へとアップデートしました。 またRubyのアップデートとは別軸で近いタイミングでRai…

サービス間通信を GraphQL Schema Stitching で実装する

はじめに STORES 予約でエンジニアをしているhiromu617です。この度 STORES では STORES レジ に STORES 予約 がもつ予約情報を連携できる機能をリリースしました。 この機能を提供するにあたってサービス間で通信をする必要がありました。サービス間の通信…

STORES モバイルだより 2023冬号

こんにちは、STORESでモバイルエンジニアをしている @tomorrowkey です。 2023年もおわりに近づいてきたので、今年のSTORES モバイルだよりをお送りしたいと思います。 半年くらいのペースでだしたいところだったのですが、前回 のおたよりから1年も経ってし…

RailsでのJSON Serializationをもっと簡単にやる

この記事は STORES Advent Calendar 2023 の30日目の記事です。 はじめに STORES 予約でエンジニアをしている望月です。 近年、Webアプリケーションのフロントエンド開発において、Reactなどのモダンな技術がリッチなユーザーインターフェースの実現を目指し…

STORES 予約 におけるFullCalendarの活用事例

この記事は STORES アドベントカレンダーの12月20日の記事となります。 はじめに こんにちは、 STORES 予約 でエンジニアをしているyuta07です。 この度 STORES 予約 では、12月に予約カレンダーを正式リリースしました。 突然ですが、Web上でカレンダーの開…

STORES 予約 のデプロイフロー今昔

はじめに こちらは STORES アドベントカレンダーの12/15日分の記事となります。 STORES 予約 のバックエンドエンジニアをしている矢作です。 私がこのプロダクトの開発に携わり出してから約3年半ほど経過しております。 その中で何度かデプロイパイプライン…

Visual regression testingを導入してみた

はじめに この記事はSTORES Advent Calendar 2023 19日目の記事です。 こんにちは、 STORES 予約 でエンジニアをしている@tontokoです。 STORES 予約 の開発チームでは月に1回、コードクリーニングタイムと呼ばれる日を設けています。 これは普段なかなか手…

年末に向けた大掃除 〜Androidアプリのライブラリバージョンアップ〜

こんにちは、モバイルアプリエンジニアのnekoです。 今回は STORES ADVENT CALENDAR 10日目の記事として、先日行ったKotlinを始めとしたAndroidアプリのライブラリバージョンアップの話を書きたいと思います。 概要 まず、概要として、主なバージョン変更箇…

RubyKaigi 2023に参加した結果、RailsのYJITを有効化しパフォーマンス向上した

STORES 予約 でエンジニアリングマネージャーをしている natsume です。 今回はRubyKaigi 2023に参加して「うぉぉなんかやるぞぉ!」となった結果、STORES 予約 のバックエンドであるRailsアプリケーションをYJIT有効化しパフォーマンス向上できました。 動…

STORES 予約 における予約者さま向けアプリリニューアルの裏側 Androidアプリ編

はじめに STORES 予約 モバイルエンジニアの satoryo です。 この記事は「STORES 予約 における予約者さま向けアプリリニューアルの裏側 Androidアプリ編」になります。 ここからは Coubic by STORES 予約 Android版のリニューアルについてソースコードを交…

STORES 予約 における予約者さま向けアプリリニューアルの裏側 iOSアプリ編

はじめに STORES 予約 モバイルエンジニアの neko です。 この記事は「STORES 予約 における予約者向けアプリリニューアルの裏側 iOS編」です。 今回のリニューアルついては、この記事のほか、PM&デザイナーとAndroidエンジニアの記事も公開されています。 …

STORES 予約 における予約者さま向けアプリリニューアルの裏側 PM・デザイナー編

リニューアルの背景と目的 具体的にやったこと リリース当初のアプリコンセプトと、現在の利用状況との差分理解 リニューアルコンセプトを決めるワークショップ 既存の情報設計整理 理想の情報設計整理 UI / UXの設計と狙い 画面デザイン タブの設計 現在の…

2022年の「推しプロ」開発を振り返る

こんにちは。宮里(@miyahirok)と申します。STORES 予約 のプロダクトマネージャーをしております。 年末の振り返りを兼ねて記事を書こうとアドベントカレンダーにエントリーしたのですが、師走の忙しさとサッカーW杯の興奮の合間で筆無精っぷりを発揮してし…

開発フローでちょっと便利なツールをCloudflare Workersで作る

STORES 予約 でエンジニアリングマネージャーをしています、ykpythemindです。この記事は STORES Advent Calendar 2022 の20日目です。 STORES 予約 では以前ご紹介した、細かくPull Requestを積み重ねてデプロイをしていく戦略 で開発をしています。今回はC…

STORES 予約 Androidアプリを Jetpack Compose でフルリニューアルしました

はじめに こちらは STORES Advent Calendar 2022 19日目の記事です。 はじめまして、モバイルアプリエンジニアの satoryoです。 4月に入社し、 STORES 予約 の Androidアプリを担当しています。 先日その STORES 予約 Androidアプリを Jetpack Compose でフ…

予約受付期間改善プロジェクトで得た知見と反省

予約受付期間改善プロジェクトで得た知見と反省 目次 はじめに 受付期間改善 概要 改善点 table 設計 デモ機能 反省と知見 double write/callback を行う際に気にかけること issue を積むことの重要性 planning の質 命名のトレードオフ 利用者側に立って機…

STORES 予約 アプリへのasync/await導入

この記事は STORES Advent Calendar 2022 の 14日目の記事です。 はじめに STORES 予約 のモバイルアプリエンジニアnekoです。 先日、開発を担当している STORES 予約 iOSアプリでasync/awaitを導入しました。 まだリファクタリングすべき箇所は残っているも…

初めてEMになって半年間でやってきたことの振り返り

STORES 予約 でエンジニアをしている natsume です。生後半年の子猫をお迎えし毎日癒やされています。 はい、かわいい STORES 予約 の開発チームは、自分が入社した2021年6月の段階ではエンジニア6名のチームでしたが、1年経った2022年6月では15名になり、エ…

2つのプロダクト開発チームを横断した開発環境セットアップもくもく会を実施しました

ネットショップ開設サービス STORES でフロントエンドグループのエンジニアリングマネージャーをしております、 daitasuと申します。 STORES には大きく5つのプロダクトがあり、それぞれ別のチームとして開発を進めています。 今までプロダクトを越境して開…

STORES 予約 コンテナ化への道のり 前編

はじめに STORES 予約でSREを担当している矢作です。 STORES 予約では今年(2022年)の9月にアプリケーションを構成する大多数のサーバーをEC2からECSへと移行することでコンテナ化(以降ECS化)しました。 今回はコンテナ化をすることで解決を目指した課題につ…

STORES 予約 のリファクタリング(後編)

STORES 予約 で Webアプリケーションエンジニアをしています。ykpythemindです。 STORES 予約 では機能開発する際に積極的にリファクタリングを行っています。 前回 は支払い方法API部分のリファクタリングを途中まで紹介しました。後編ではより踏み込んだリ…

入社後の3ヶ月を振り返る

はじめに STORES 予約 でモバイルアプリの開発を行なっているnekoと申します。 私は2022年の3月にheyに入社し、まもなく5ヶ月が経過しました。 STORES 予約 のモバイルアプリチームは、私が入社した時点ではエンジニアが1人しらおらず、私が入社して2人にな…

【イベントレポート】SmartHR×hey PM10人規模の組織・プロダクトのリアル

5月25日(水)に開催した【SmartHR×hey】PM10人規模の組織・プロダクトのリアル」にて、お話した内容を一部ご紹介します! トークテーマの紹介 PM組織の課題ぶっちゃけトーク編として、①プロダクト戦略ってどう作っていますか?②採用以外の組織課題は何です…

STORES 予約 のリファクタリング(前編)

STORES 予約 で Webアプリケーションエンジニアをしています。ykpythemindです。 STORES 予約 では機能開発する際に積極的にリファクタリングを行っています。今回は実際の例からその手法を前後編に分けて紹介します。 想定読者はWebアプリケーション開発を…

mablを活用した STORES 予約 のE2Eテスト戦略

最初に STORES 予約 の開発をしているTak-Iwamotoです。 STORES 予約 ではmablを使用して、少しずつE2Eテストを導入し始めています。 この記事ではmablをどのように使用しているのか、利用する上でのtipsなどを書かせていただきます。 mablとは mablはブラウ…