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

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

    STORES 予約 でエンジニアリングマネージャーをしている Natsume です。 STORES 予約 は10年モノの45万行、380テーブルある大きなモノリスの Rails アプリケーションです。 業種にとらわれない汎用的な予約システムであり、それらに対応するように複雑なコードベースになっています。また、ここ 1~2 年はプロダクト間連携を進めており、各基盤やアプリケーションともつなげていく開発を進めています。今後も新規プロダクトとの連携や機能開発を進めるには、少しでも認知負荷を上げずに開発しやすい状態を保ち続けるか、が重要だと感じました。 その課題感の中で、今回はモジュラモノリスを選択し導入をしましたので、そちらのお話をしたいと思います! 現状の課題感 私が入社した3年前から STORES 予約 の開発メンバーは3倍になり比較的新しいメンバーが多く、また古くからいるエンジニアも少数な

    STORES 予約 をモジュラモノリス化しました! - STORES Product Blog
    toshikish
    toshikish 2024/07/03
  • データベースの値をちょっとだけ書き換えたら検索に数十分かかる様になって障害になった裏話 - STORES Product Blog

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

    データベースの値をちょっとだけ書き換えたら検索に数十分かかる様になって障害になった裏話 - STORES Product Blog
    toshikish
    toshikish 2024/07/02
  • Remix x Cloudflare Workersで0->1 - STORES Product Blog

    こんにちは、うしろのこです。直近1年ではVueから離れて、maja と呼ばれる組織管理基盤の新規プロダクトの開発をしていました。 プロダクトの話はこちら(maja)↓ note.st.inc 今回は、0->1における技術選定や開発中の工夫、結果どうだったかなどを書きます。 技術選定 初めに、前提条件は以下のような感じでした。 メンバーはReactの経験が豊富、フロントを触るのは多くて3,4人くらい 常にユーザー認証された状態で操作されるため、FE用のmiddleware的な層があるとうれしい toBアプリケーション せっかくなので使ったことのないものを使ってみよう、ということで、すでにWAFでの導入が進んでいたCloudflare技術の採用をFEでも検討しました。少し触った感じではdeploy体験がよく、ローカル開発環境であるwranglerの出来も申し分なかったため、Cloudflar

    Remix x Cloudflare Workersで0->1 - STORES Product Blog
    toshikish
    toshikish 2024/06/30
  • Ruby "enbugging" quiz の解説 - STORES Product Blog

    STORESでフルタイムRubyコミッタをやっている遠藤(@mametter)です。 STORESは今回RubyKaigi 2024で、託児所を運営する「ナーサリースポンサー」として参加していました。この様子は後日詳報しますが、それ以外にも参加者に楽しんでもらえる企画をいろいろな形でしていました(予告記事を参照)。 この記事ではその中でも、ブースでやった「Ruby "enbugging" quiz」について、解答や出題意図などを紹介します。 Day 1 終了時のスコアボードです! 3点の方もたくさんいらっしゃいました! Day 2のクイズも楽しんでください😊#rubykaigi https://t.co/RJIBEqsFSf pic.twitter.com/ewp22Cs7jr— STORES Tech (@storesinc_tech) 2024年5月16日 概要 動作しているプログラ

    Ruby "enbugging" quiz の解説 - STORES Product Blog
    toshikish
    toshikish 2024/05/27
  • Ruby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - STORES Product Blog

    テクノロジー部門で Ruby インタプリタの開発をしている笹田です。RubyKaigi 2024 楽しみですね。 さて、Ruby のメソッドを定義するとき、仮引数がある場合、カッコを省略することができます。 def foo(x, y) end def bar x, y end bar の定義の方法ですね。私は好んでこの書き方をしてたんですが、同僚の遠藤さんに「そんな書き方をしているのは今時笹田だけだ」と言われてショックを受けたので、ちょっと調べてみました。 ちなみに、カッコがないと使えないメソッド定義の方法があるので、その時には涙を呑んでカッコをつけます。 def foo(kw:) # 必須キーワード引数 end def bar(&) # 無名ブロック引数 end 補足1:Ruby では「メソッド呼び出し時にカッコをつけるかどうか」にいろいろな論争がありますが、ここでは「メソッドを定義する

    Ruby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - STORES Product Blog
    toshikish
    toshikish 2024/04/12
  • Pull Request は早くマージしたい - STORES Product Blog

    こんにちは。 STORES ブランドアプリのチームで iOS エンジニアをしている榎( @enomotok_ )です。 これは STORES Advent Calendar 2023 の記事です。 私が普段仕事をしていて感じるPull Request (以下 PR )を迅速にマージすることの効用について、日々の取り組みと考えを言語化してまとめます。 なぜ Pull Request を早くマージしたいか 私たちは日々多くの仕事に忙殺されています。 PR を完成させたら、基的には次のタスクに取り掛かります。 PR の生存期間が長いと、次のタスクとのマルチタスクが増え、それが長引くことになります。マルチタスクにおけるコンテキストスイッチが生産性に悪影響を及ぼすというのはよく言われる話です。 また PR が大きなタスクの一部であった場合に、 PR をマージできないことが次の仕事をブロックする可

    Pull Request は早くマージしたい - STORES Product Blog
    toshikish
    toshikish 2023/12/25
  • スマホアプリの脆弱性診断って何するの?(iOS編) - STORES Product Blog

    *記事は STORES Advent Calendar 2023 6日目の記事です こんにちは。セキュリティ部のsohです。 現在、弊社ではスマホアプリ診断内製化の準備を進めています。 同じようにスマホアプリの脆弱性診断を内製化したい、というニーズがある会社は多く存在しますが、実際のところ、スマホアプリを対象とした脆弱性診断士の確保は困難であり、外部ベンダーの方にすべてお願いせざるを得ないケースも多いかと思います。 また、その情報の少なさから、スマホアプリ診断を実施したいと考えている開発者や脆弱性診断士にとっても、「何をやればいいのか」「何から始めればいいのか」がわからないものである場合は多いかと思います。 そこで、この記事では「スマホアプリ診断って実際何をしているのか」と疑問を持つ方をターゲットとして、一般的なスマホアプリ診断の検証要件や検証方法について解説します。 要件とガイドライ

    スマホアプリの脆弱性診断って何するの?(iOS編) - STORES Product Blog
    toshikish
    toshikish 2023/11/26
  • Google Play Developer Accountを統合しました - STORES Product Blog

    こんにちは @tomorrowkey です。 STORES はいくつかの会社が集まってできた会社という経緯から、それぞれの組織のGoogle Play Developer Accountを持っており、それらをそれぞれの部署によって管理してきました。 一方で先日Google PlayからApp Storeと同様にD-U-N-S番号が必須になることがアナウンスされました。 android-developers.googleblog.com すでに新規開設にはD-U-N-S番号が必須となっており、既存アカウントについては10月に設定方法について詳細な続報がリリースされる見込みです。 D-U-N-S番号は企業を一意に識別するコードなので、1組織で複数発行できないため、STORESでは複数あったGoogle Play Developer Accountを1つに統合しました。 このエントリーではその具

    Google Play Developer Accountを統合しました - STORES Product Blog
    toshikish
    toshikish 2023/09/30
  • プログラミングの世界をもっとたくさんの人に知ってもらいたい【Rubyistめぐりvol.2 鳥井雪さん】 - STORES Product Blog

    Rubyist Hotlinksにインスパイアされて始まったイベント『Rubyistめぐり』。第2回は鳥井雪さんをゲストに迎えて、お話を聞きました。記事は後編です。 hey.connpass.com Rails Girlsが時代遅れになる時がくるといい 藤村:このまま漫画の話で最後までいけるんですけど、Rubyに戻ります。鳥井さんと僕がプログラミングを始めたのも同じくらいの時期っぽいので。 鳥井:そうなんですね。 藤村:1年遅れて社会人になって、その夏ぐらいに始めて、その2年後ぐらいにRubyやり始めた感じなので。Rails Girlsって一番最初はいつでしたっけ? 鳥井:何年前でしたっけ?この間10周年になったんですよ。この間といっても1年前ですけど。 角谷:初回は2012年です。 藤村:どうやってRails Girlsを知りましたか? 鳥井:角谷さんがRails Girlsをやりたい

    プログラミングの世界をもっとたくさんの人に知ってもらいたい【Rubyistめぐりvol.2 鳥井雪さん】 - STORES Product Blog
    toshikish
    toshikish 2023/06/19
  • 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
    toshikish
    toshikish 2023/05/16
  • 初めてのデプロイを見守る喜び。Rails GirlsでCTOがコーチをして、エンジニア未経験の技術広報がGirlsとして参加した話【ep.20 #論より動くもの .fm】 - STORES Product Blog

    CTO 藤村がホストするPodcast、論より動くもの.fmの第20回を公開しました。今回は4月7日・8日に開催されたRails Girls Tokyo 15thに藤村がコーチとして、技術広報のえんじぇるがGirlsとして参加したので、参加した感想やコーチをしている理由を話しました。 podcasters.spotify.com 論より動くもの.fmはSpotifyとApple Podcastで配信しています。フォローしていただくと、新エピソード公開時には自動で配信されますので、ぜひフォローしてください。 テキストで読みたい方は下記からご覧ください。 自分もプログラミングできるんだ! 藤村:こんにちは、論より動くもの.fmです。論より動くもの.fmは、STORES のCTO 藤村が技術技術じゃないことについてざっくばらんに話すPodcastです。今日は先週末に Rails Girls T

    初めてのデプロイを見守る喜び。Rails GirlsでCTOがコーチをして、エンジニア未経験の技術広報がGirlsとして参加した話【ep.20 #論より動くもの .fm】 - STORES Product Blog
    toshikish
    toshikish 2023/04/18
  • 社名変更でドメインが変わる際にOkta周りでやったことと苦労したこと - STORES Product Blog

    この記事は STORES PX Advent Calendar 2023 Spring 2日目の記事です。 はじめに こんにちは、STORES のPX部門IT部でコーポレートエンジニアをしている加来 (thdy_jp) です。 この記事では社名変更でドメインが変わったことによりOkta関連で対応したことや、その中で苦労したことなどについて書いています。 内容としてはOktaに限らず何らかのIDaaS製品 (例えばAzure ADやOneLoginなど) でシングルサインオンを構成している組織であれば発生するであろう課題について書いているので、Oktaを利用されていないID管理者の方にもぜひ読んでいただきたいと思っています。 背景 弊社は昨年の10月にヘイ株式会社からSTORES 株式会社へ社名変更しました*1。 社名変更に伴いメールアドレスのドメインを hey.jp から st.inc

    社名変更でドメインが変わる際にOkta周りでやったことと苦労したこと - STORES Product Blog
    toshikish
    toshikish 2023/04/04
  • 社名変更に伴う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
    toshikish
    toshikish 2023/04/03
  • GitHub Copilot for Business 始めました - STORES Product Blog

    こんにちは、STORES CTO室でフロントエンドを色々やっている ushironoko です。 今回は巷で噂の GitHub Copilot について、弊社でも導入を始めたためその所感などをつらつらと述べていこうと思った記事になります。 GitHub Copilot について すでに多くのテックブログなどで綺麗にまとめられているため、サボらせてもらいます。というか、下記記事に大体 for Individuals、for Businessの気になりポイントがまとまっており急ぎの人はこれで良いかもしれません。 【Copilot はじめました】GitHub Copilot 導入におけるハードルの整理 - M&Aクラウド開発者ブログ 要するに VSCode などのエディタ上で機械学習によって強化されたコード補完がいい感じに出るやつです。あとで触れますが、当初懸念されていたライセンス問題についても

    GitHub Copilot for Business 始めました - STORES Product Blog
    toshikish
    toshikish 2023/04/01
  • Railsで成功するには、 コンピュータ書鑑賞、本との出会い方【Rubyistめぐりvol.1 takahashimさん】 - STORES Product Blog

    Rubyist Hotlinksにインスパイアされて始まったRubyistめぐり。第1回は高橋征義さんをゲストに迎えて、お話を聞きました。こちらは後編です。前編はこちら。 Rubyが他の言語に与えた影響 藤村:第2部、高橋さんについて聞いてみようと思います。今更ながらRubyについて聞きたいんですけど、好きな機能とかありますか? 高橋:好きな機能ですか?あんまり機能としてこれというのなくて、全体的に使い勝手がいいですね。まあでも、そういう意味でいえばオープンクラスの方がいいんじゃないの?みたいな感じがしますね。オープンクラスじゃないRubyはつらそうだって。 藤村:確かに。 高橋:つらそうというかつまらなさそうですね。オープンクラスが原因でつらいことになるのはわかるんですけど、でもあれがないんだったら他の言語でもいいよね、って。 藤村:Rubyがああじゃなかったら他の言語は今のようになって

    Railsで成功するには、 コンピュータ書鑑賞、本との出会い方【Rubyistめぐりvol.1 takahashimさん】 - STORES Product Blog
    toshikish
    toshikish 2023/03/23
  • 音声文字起こし技術で業務効率化: Google Text to Speech と OpenAI Whisper の活用 - STORES Product Blog

    こんにちは、CTO室技術基盤グループの id:hogelog です。 STORES Product Blog でも多くの文字起こし記事がありますが、社内重要会議の文字起こしなど STORES 社内には様々なところで音声の文字起こし業務が存在します。そんな文字起こし業務ですが完全に人力で実施するのは作業コストがかなり高いです。今日はそのような業務を効率化する音声文字起こし技術とその変遷について紹介します。 Google Text to Speech の活用 以前 論より動くもの.fmを支える技術Podcast初心者が使っているツール紹介〜 - STORES Product Blog でも紹介しましたが STORES 社内では Google Text to Speech が STORES 社内の様々な文字起こし業務に活用されてきました。 product.st.inc Google Text

    音声文字起こし技術で業務効率化: Google Text to Speech と OpenAI Whisper の活用 - STORES Product Blog
    toshikish
    toshikish 2023/03/17
  • そのアウトプットは業界最高水準ですか?CTOはどうやって技術力を磨いているのか【ep.16 #論より動くもの .fm】 - STORES Product Blog

    CTO 藤村がホストするPodcast、論より動くもの.fmの第16回を公開しました。今回は STORES のテクノロジー部門のマニフェストから技を磨き続ける重要性について話しました。 論より動くもの.fmはSpotifyとApple Podcastで配信しています。フォローしていただくと、新エピソード公開時には自動で配信されますので、ぜひフォローしてください。 テキストで読みたい方は下記からご覧ください。 個々人が専門家として技を磨き続けることで、六角形が大きくなる 藤村:こんにちは、論より動くもの.fmです。論より動くもの.fmは、STORES のCTO 藤村が技術とか技術じゃないことについてざっくばらんに話すPodcastです。今日は論より動くもの.fmを運営しているえんじぇるさんに来てもらってます。よろしくお願いします。 えん:よろしくお願いします。 藤村:今日は僕に聞いてみたいこ

    そのアウトプットは業界最高水準ですか?CTOはどうやって技術力を磨いているのか【ep.16 #論より動くもの .fm】 - STORES Product Blog
    toshikish
    toshikish 2023/01/16
  • 開発フローでちょっと便利なツールをCloudflare Workersで作る - STORES Product Blog

    STORES 予約 でエンジニアリングマネージャーをしています、ykpythemindです。この記事は STORES Advent Calendar 2022 の20日目です。 STORES 予約 では以前ご紹介した、細かくPull Requestを積み重ねてデプロイをしていく戦略 で開発をしています。今回はCloudflare Workers を用いて私達の開発を少し改善にした方法をご紹介します。 今回つくったもの 以前の記事 にあるように私達はPull Requestをマージした後、Slack上のデプロイ専用のチャンネルでスラッシュコマンドを打つことでデプロイを発火しています。 デプロイしている図 Pull RequestのAuthorがマージをし、その人がデプロイするフローにしています。しかし、 マージしたあと人がデプロイを忘れることがある スラッシュコマンドだけ見てもこの後なにの

    開発フローでちょっと便利なツールをCloudflare Workersで作る - STORES Product Blog
    toshikish
    toshikish 2022/12/20
  • Nuxt 3 への移行に向けて頑張ってます - STORES Product Blog

    STORES フロントエンドエンジニアの wattanx です。 2022/11/16、ついに Nuxt 3 が正式リリースされましたね。 nuxt.com 私たちのプロダクトである STORES でも Nuxt を利用しており、絶賛 Nuxt 3 への移行中です。 記事では、私たちのプロダクトにおいてどのようにNuxt 3 に移行しようとしているのか紹介します。 また、これは STORES Advent Calendar 2022 の 11日目の記事です。 移行の基方針 Nuxt 2 を利用しているプロダクトを Nuxt 3 に移行する場合、以下の2とおりの方法が一般的だと思っています。 Nuxt 2 から Nuxt 3 に直接移行する。 Nuxt 2 から Nuxt Bridge に移行する。その後 Nuxt Bridge から Nuxt 3 に移行する。 Nuxt Bridge

    Nuxt 3 への移行に向けて頑張ってます - STORES Product Blog
    toshikish
    toshikish 2022/12/12
  • STORES フロントエンドの現在地 2022 - STORES Product Blog

    こちらは STORES Advent Calendar 2022 8日目の記事です。 みなさんこんにちは、STORES のリテール部でフロントエンドエンジニアリングマネージャーをしています、 daitasuと申します。 2022年の年の瀬、 STORES のフロントエンド組織は立ち上がりから約4年の月日を迎えました。 日々のカジュアル面談や採用活動のなかで、「STORES のいまの技術状況ってどんな感じですか?Nuxt化って進み具合どうですか?」といった質問を受けることがよくあります。 STORES のフロントエンドグループについて、対外的に全体像を示すような記事が今までなかったので、記事では、下記を紹介していこうと思います! STORES フロントエンドの成り立ち 技術負債の解消・改善にどのように向き合っているか 2022年末現在での主な技術状況 2022年現在のスナップショットを

    STORES フロントエンドの現在地 2022 - STORES Product Blog
    toshikish
    toshikish 2022/12/08