タグ

ブックマーク / product.st.inc (18)

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

    はじめに 2024年1月にリテール(ネットショップ・レジ)部門からサービス(予約)部門に異動になった @ucks です。 異動してからはスマートリストという機能の開発を行っていて、5月6日に無事リリースできたのと、開発途中で障害に至ってしまった部分があるので、裏側を少し紹介しようかなと思います。 はじめに スマートリストとは スマートリストの設計 検索の仕様変更 高負荷時のハンドリング そして障害へ 見逃した点 DBの実行計画確認時の見逃し 動作確認時の漏れ 監視先の漏れ ログの損失 おわりに スマートリストとは スマートリストの開発についての話を行う前に、まずはスマートリストについて簡単に説明しておきます。 スマートリストとは、特定の条件の顧客をラベリングする機能です。 早い話、最終予約日がいつ、予約回数が何回以上等の顧客の検索条件を保存しておいて、閲覧時にラベリングして、視認しやすくし

    データベースの値をちょっとだけ書き換えたら検索に数十分かかる様になって障害になった裏話 - STORES Product Blog
    honeybe
    honeybe 2024/07/02
  • ただひたすらパズルを解くのが好き。推理小説好きな少女がプログラマーになるまで【Rubyistめぐりvol.2 鳥井雪さん】 - STORES Product Blog

    Rubyist Hotlinksにインスパイアされて始まったイベント『Rubyistめぐり』。第2回は鳥井雪さんをゲストに迎えて、お話を聞きました。こちらは前編です。 hey.connpass.com 推理小説に衝撃を受けた小学校時代 藤村:今日はお集まりいただきありがとうございます。STORES のCTO 藤村と申します。10年ちょっとくらいRubyを使って仕事をしています。Rubyistめぐりは、僕がプログラミングを始めた頃にめちゃくちゃ読んでたのがRubyist Hotlinksで、プログラマーの人はこういう人たちなんだ!と、(Rubyist Hotlinksに載っている人は)外れ値がほとんどなんですが、めちゃくちゃ勉強になったし、励みにもなったんですよね。これをなんか引き継げないものか、新たに話を聞きたい人もいるよなと思い、始めたのがRubyistめぐりです。第2回目のゲストは鳥井

    ただひたすらパズルを解くのが好き。推理小説好きな少女がプログラマーになるまで【Rubyistめぐりvol.2 鳥井雪さん】 - STORES Product Blog
    honeybe
    honeybe 2023/06/17
  • WAFを活用する上で入れておきたいファイアウォールのルール定義 - STORES Product Blog

    プロダクト基盤部の藤原です。 エントリではWAF(Web Application Firewall)を活用していく上で、最初に導入をお勧めするファイアウォールルールを解説します。 WAFとは WAF(Web Application Firewall)とはWebアプリケーションに特化したファイアウォールです。 HTTPリクエストのヘッダやボディの内容から不審なリクエストを判別し、アクセスをブロックすることを目的としています(図1)。 図1 WAFの役割 WAFの活用を通じて実現したいこと WAFの活用を通じて実現したいことはなんでしょうか。 悪意のあるリクエストや不審なリクエストからアプリケーションを保護することでしょう。 不審なリクエストとしては、宛先が合っていないリクエスト(HTTPのホストヘッダを誤っている)1や、スクリプトキディ的なものから攻撃対象を精緻に分析したものまでさまざま

    WAFを活用する上で入れておきたいファイアウォールのルール定義 - STORES Product Blog
    honeybe
    honeybe 2023/05/16
  • 社名変更に伴うGoogle Workspaceアカウントの引越し手順を解説します - STORES Product Blog

    社名変更に伴うGoogle Workspaceアカウントの引越し手順を解説します この記事は、 STORES PX Advent Calendar 2023 Spring の1日目の記事です。 はじめに こんにちは、STORES のPX部門IT部でマネージャーをしている中野(@howdy39)です。 IT部ではプロダクトづくりを支える社内ITを構築・運営しているのですが、社名変更という全社的なビッグイベントを最近行ったので、その中でIT部が行ったGoogle Workspaceにおける社名変更対応について書いていこうと思います。 まず背景を軽く説明しますと、2022年10月1日に、ヘイ株式会社から STORES 株式会社へと社名変更を行いました。それに伴い、会社として使用しているドメインもhey.jpからst.incへ変更することになりました。*1 ドメインが変わることで、個人アカウ

    社名変更に伴うGoogle Workspaceアカウントの引越し手順を解説します - STORES Product Blog
    honeybe
    honeybe 2023/04/03
  • RSpecのテストコードを実行時に書き換えて実行速度を改善した話 - STORES Product Blog

    CTOの藤村です。つい最近まで STORES ブランドアプリ のチームでRailsを書いていました。 STORES ブランドアプリ のRailsリポジトリではdatabase_cleanerを(strategy = truncationで)使ってテスト中のデータベースをリセットしており、このことがテストコードの品質、速度などで重荷となっていました。 これを、テスト実行時にテストコード自体を書き換えて改善する仕組みを作り、先日無事Transactional Testへの移行が完了しました。ということで気分がとてもよいので、どうやったか共有させてください。 課題 STORES ブランドアプリのRailsのテストコードは速度に課題がありました。 テストデータを片付ける仕組みとして、 Railsエンジニアにはお馴染みのdatabase_cleanerというGemを使っていました。database_

    RSpecのテストコードを実行時に書き換えて実行速度を改善した話 - STORES Product Blog
    honeybe
    honeybe 2022/10/20
  • Go の勉強会を始めて1年が経ちました - STORES Product Blog

    はじめに こんにちは。テクノロジー部門プロダクト基盤部の@NAL_6295です。 プロダクト基盤部では、ID基盤を開発・運用しており、Go を採用しています。 参考までに、ID基盤のアプリケーションアーキテクチャについて書いた記事を紹介します。 tech.hey.jp 今回、Go WGという名前で社内勉強会をはじめて1年がたったので、その振り返りをしていきます。 昨年の12月にも以下の記事で社内勉強会の紹介をさせていただいていますので、ご興味があれば参照していただけると嬉しいです。 tech.hey.jp 1年が経ちました というわけで、あらためて2021/08/18 にキックオフをして1年が経ちました。 隔週で1時間という間隔で開催しており、ちょうど 2022/08/17 に第25回が開催されました。 毎回、事前にエントリされたテーマについて話したあと、時間いっぱいまでモクモクとそれ

    Go の勉強会を始めて1年が経ちました - STORES Product Blog
    honeybe
    honeybe 2022/08/25
  • 自動化にこだわるのはエンジニアとして正しいあり方。CTOに聞いた生産性をあげるためにやっていること。【ep.9 #論より動くもの .fm】 - STORES Product Blog

    CTO 藤村がホストするPodcast、論より動くもの.fmの第9回を公開しました。今回はCTO藤村が生産性をあげるためにやっていることについて話しました。 論より動くもの.fmはSpotifyとApple Podcastで配信しています。フォローしていただくと、新エピソード公開時には自動で配信されますので、ぜひフォローしてください。 テキストで読みたい方は下記からどうぞ。 パンを作るだけじゃなく、パンを作る機械も作る 藤村:みなさん、こんにちは、論より動くもの.fmです。論より動くもの.fmは、heyのCTO藤村が技術技術にまつわるさまざまなことについてざっくばらんにお話しするPodcastです。今回はゲストに技術広報のえんじぇるさんを招いております。よろしくお願いします。 えん:よろしくお願いします。 藤村:今日は生産性について話したいというお題を受けたので、それについて話そうと思い

    自動化にこだわるのはエンジニアとして正しいあり方。CTOに聞いた生産性をあげるためにやっていること。【ep.9 #論より動くもの .fm】 - STORES Product Blog
    honeybe
    honeybe 2022/08/18
  • STORES におけるセッションストアへの MemoryDB の活用と移行戦略について話してきました(前編) - STORES Product Blog

    はじめに こんにちは。プロダクト基盤部 基盤グループで EM をやっている松 @upinetree です。普段は ID 基盤を作っています。 さて、先日 6月29日(水)にAWS 主催の「インメモリデータベースで実現する超高速データベース活用セミナー」が開催されました。縁がありまして、私と、リテール部 SRE グループの角田さんの2人で、STORES のセッションストアを Cookie から Amazon MemoryDB for Redis に移行した事例をお話してきました。ちなみに、登壇の準備や必要なやり取りなどはCTO室の小室さんが取りまとめをしてくれました。 こちらの記事で予告したイベントです。 tech.hey.jp 資料はこちらです。 https://speakerdeck.com/upinetree/memorydb-for-stores-sessionstore 私は

    STORES におけるセッションストアへの MemoryDB の活用と移行戦略について話してきました(前編) - STORES Product Blog
    honeybe
    honeybe 2022/07/07
  • XStateを支える概念と実装方法について - STORES Product Blog

    最初に STORES 予約 の開発をしているTak-Iwamotoです。 STORES 予約 は元々 Coubic というサービス名でリリースされ、heyにジョインしたタイミングで STORES 予約 としてリブランディングされました。 ただ、今でもエンドユーザーさまが予約する画面は Coubic の名称となっています。 この CoubicNext.jsで作られており状態管理のライブラリはReduxを使用しているのですが、良くないReduxの使い方によって改修に時間がかかったり、コードの見通しが悪い箇所があります。 詳しくはこちらの記事をご覧ください。 そういった背景があり、状態管理のリファクタリングの一環でRedux -> XStateへの移行を検討中です。(ただ、優先順位の都合でまだ格的に移行はできていません。) この記事ではXStateのコアとなる概念、Coubicで抱えている

    XStateを支える概念と実装方法について - STORES Product Blog
    honeybe
    honeybe 2022/04/15
  • v0.0.1-alpha0.1から始めた-CTO 藤村とフロントエンド 藤川のおしゃべり - STORES Product Blog

    heyで採用広報を担当しているえんじぇるです。 7月13日(火)にCTOの藤村 @ffu_ とフロントエンドエンジニアの藤川@ushiro_noko がTwitter Spacesでフロントエンドについておしゃべりしたので、その様子を一部お届けします。 人生で一番弱気なバージョニングをした 藤村:heyでCTOやってる藤村と申します。フロントエンド老人会という名前で、友達と飲んで、ずっとExt JSとか、Backbone.jsより前のUIライブラリの話をして盛り上がったりする、React以降には何にも役に立たないフロントエンドエンジニアです。 藤川:(笑)そんなことないでしょう。 藤村:(笑)で、藤川さんはheyで働いてくれているフロントエンジニアで、最近週に1時間ぐらい時間をもらって、一緒にコードを書いてるんですけど、その話を最初してみようかな。 藤川:そうですね。 藤村:僕ら、今、ST

    v0.0.1-alpha0.1から始めた-CTO 藤村とフロントエンド 藤川のおしゃべり - STORES Product Blog
    honeybe
    honeybe 2021/08/24
  • アイテム画像件数上限アッププロジェクトの裏側 - STORES Product Blog

    はじめに hey でECのフロントエンドエンジニアを担当している @nkoba です。 STORES ECでは先日、アイテム機能のアップデートをリリースしました。そのアップデートのうちの一つが、アイテム画像件数上限アップです。 これは今までアイテムごとに画像を15枚までしか登録できなかった制限を拡大し、30枚まで登録できるようにしたアップデートです(スタンダードプランのみ)。 このアップデートプロジェクトに担当の一人として開発に参画した中で、フロントエンドに求められる仕事について多くの気づきがあったので、この記事で紹介したいと思います。 アイテム画像件数上限アップとユーザー体験 プロジェクトの当初はフロントエンドとバックエンドの画像枚数のバリデーションを修正すれば作業は終わりという認識でした。 そのため、開発期間もかなり短く見積もって計画を立てていました。実際にバリデーション周りのコード

    アイテム画像件数上限アッププロジェクトの裏側 - STORES Product Blog
    honeybe
    honeybe 2021/08/04
  • heyの統合データ基盤と今後の展望 - STORES Product Blog

    はじめに はじめまして、4/1からデータチームでデータエンジニアとして働いている @shoso です。 突然ですが、みなさんデータ基盤って開発したことありますか? 私はheyに来るまでなかったのですが、チームの経験あるメンバーと毎日話しながら(助けてもらいながら)開発する中でようやく少し分かって来たような気がします。 (覚えることが大量にあり大変とても楽しいです!) 今回は、データ基盤開発経験のある方はもちろん、普段サービス開発など他の開発をメインでされている方にも伝わる形で、heyの統合データ基盤と今後やっていきたいことについてご紹介できればと思います。 これまでにも、統合データ基盤のいくつかのトピックについて記事を公開していますが、この記事では統合データ基盤そのものについてより詳細が伝われば幸いです。 統合データ基盤ってなに 一言でいうと、社内に蓄積するあらゆるデータをスムーズ・横断的

    heyの統合データ基盤と今後の展望 - STORES Product Blog
    honeybe
    honeybe 2021/07/31
  • MongoDB(Mongoid)を利用したRails開発のメリット - STORES Product Blog

    はじめに はじめまして、hey でECとかレジのバックエンドエンジニアをやっている @ucks です。 STORES (以下、区別のため STORES EC と表記) と STORES レジでは、Webアプリケーションフレームワークに Ruby on Rails 、 データベースに MongoDB 、 ODM (RDB でいう ORM) に Mongoid を利用しています。 普段 RDB で開発しているエンジニアからすると MongoDB ってどうなの? と思う方も少なくないと思います。 そこで、今回は Rails で一般的なORMである Active Record を殆ど使ったことがない筆者が、 MongoDB + Mongoid での開発の良いところを RDB + Active Record と比較して紹介します。 以前 STORESってMongoDBを使ってるらしいけど正直どうなの

    MongoDB(Mongoid)を利用したRails開発のメリット - STORES Product Blog
    honeybe
    honeybe 2021/07/15
  • チーム内でも目標設定と振り返りをやってみよう!から1年が経ちました - STORES Product Blog

    テクノロジー部門、STORES ECでフロントエンドエンジニアをしている @daitasuです。 私たちのチームでは、会社全体での人事制度で設定する目標とは別に、チーム内で独自にクオーターごとの目標設定と振り返りをしています。 チーム内での目標設定と振り返りを1年ほど続けてきたので、なぜこの取組を始めたのか、実際やってみてどうだったかを書いていこうと思います。 チームの位置づけ UI改善チームとは hey内では、全プロダクト横断的なテクノロジー部門という棲み分けがあり、その中にSTORES ECの開発を進めるECの部隊があります。 私たちフロントエンドチームは、ECのエンジニアチームの中の1つとなっています。 hey社のEC部では、フロントエンドチームはUI改善チームと呼ばれています。 フロントエンドチームの構成 フロントエンドチームは、大きくプロダクト開発のチームと基盤改善のチームに分

    チーム内でも目標設定と振り返りをやってみよう!から1年が経ちました - STORES Product Blog
    honeybe
    honeybe 2021/06/23
  • GitHub ActionsでRuby on RailsのCI環境を構築する上でのポイント - STORES Product Blog

    STORES 予約 でwebアプリケーションエンジニアをやっております。ykpythemindです。 GitHub Actions、とても便利ですよね。STORES 予約チームでは徐々にCircleCI から GitHub Actionsへの移行を進めていますが、この度歴史あるRailsのリポジトリのCIを移行したので知見を公開します。 概要 RSpecを実行する CIの実行速度のチューニング(CircleCIと同等の速度にしたい) node_modulesなどのインストール結果をキャッシュする テストを並列実行する 大きな方針として、CircleCI等の他サービスからの乗り換えの場合、同等のCI速度/課金額でないと移行は現実的でないと思いますので、速度面のチューニングも意識しています。 ほぼそのままの設定を貼ります 一部プロジェクト固有のstep等があり注釈コメントをつけています。適宜調

    GitHub ActionsでRuby on RailsのCI環境を構築する上でのポイント - STORES Product Blog
    honeybe
    honeybe 2021/05/21
  • Rails 6.0へアップグレードしました - STORES Product Blog

    バックエンドエンジニアで STORES EC を担当しているただ @tdakak です。 hey には2021年の1月に入社しました。 現在は業務改善グループという、アプリケーションのセキュリティ対応や運用や開発をなめらかにするための仕組み作りを行うなんでも屋さんなチームに所属しています。 入社後に渡されたタスクの中のひとつが、STORES で採用している Web アプリケーションフレームワークRuby on Rails のアップグレード。バージョンを 5.2 から 6.0 へ上げるタスクです。 先日無事リリースできたので、今回のアップグレードで行ったことを書き残しておきます。 リリースまでのおもな流れ アップグレードは以下の流れで進めました。 Rails 6.0 の変更点を確認 Rails 6.0 に上げて動かなくなったところを修正 bundle update 実行 Rails Diff

    Rails 6.0へアップグレードしました - STORES Product Blog
    honeybe
    honeybe 2021/03/25
  • STORESを支える「運用週」という仕組み - STORES Product Blog

    みなさんは「保守・運用」と聞くとどのようなイメージをお持ちでしょうか? もしかしたら良いイメージをお持ちでない方もいらっしゃるかもしれません。 しかし、売り上げを生み出している既存コードの保守運用はビジネス上、新規機能開発と同等かそれ以上に重要な存在です。 保守運用は歴史あるサービスでは欠かせない作業ですが、STORESもその例外ではありません。 STORESの最初のコードが書かれてから、8年の歳月が経ちました。 今となってはコードの量も多く、今年(2020年)の8月に入社した私(@zakky)も全体を把握しきれてはいません。 STORESにジョインした最初の1ヶ月間、「商品の在庫数を一括で更新する機能」の開発に私は専念しており、その他の機能のコードを触る機会がほとんどありませんでした。 目の前のチケットを消化していくのに必死で、周りを見る余裕が無かったとも言えます。 「運用週」との出会い

    STORESを支える「運用週」という仕組み - STORES Product Blog
    honeybe
    honeybe 2020/11/30
  • 社内UIライブラリの変遷 - STORES Product Blog

    heyのSTORESでECの開発をしている@nkobaです。 この記事ではフロントエンドで使用しているUIライブラリについて発信していきます! 社内UIライブラリとは STORESのECではSTORES.jp-Front-Commonというフロントエンドライブラリを作成しています。 その一部としてUIライブラリが含まれており、これを社内プロダクトで利用することで開発効率を向上させたり、ユーザーにとっての触り心地を担保しています。 基的にSTORESのECではブランド、デザイン、使い心地などを表現するために、ほぼ全てのUIは自作しています。 社内UIライブラリで主に使用している技術は以下になります。 Vue.js Storybook REG-SUIT Jest コンポーネントライブラリの実際 実際に使われているページ 導入期 背景 私がフロントエンドチームに加わったのは2018年の末頃でし

    社内UIライブラリの変遷 - STORES Product Blog
    honeybe
    honeybe 2020/07/31
  • 1