STORES Product Blog

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

バックエンド

Kaigi on Rails 2022で気になったセッションは?『ふりかえりKaigi on Rails 2022』文字起こしレポート

2022年10月24日に『ふりかえり Kaigi on Rails 2022』と題してイベントを開催しました。イベントでお話した内容を文字起こしレポートでお届けします。 自己紹介 kwappa:そろそろ「ふりかえりKaigi on Rails 2022」を始めます。みなさん、こんにちは。 みん…

AWS Security Groupの棚卸とその後の運用

STORES 決済 バックエンドエンジニアの nannany です。 この記事は STORES Advent Calendar 2022 の 22日目の記事です。 概要 システムを運用していくと、過去使っていたけれど現在は使っていない AWS Security Group (以下、Security Group)がどうしても出…

Goのマイナーアップデートを追っている方法の紹介

こんにちは。 テクノロジー部門プロダクト基盤本部の大橋(@nal_6295)です。 この記事は STORES Advent Calendar 2022 の7日目となります。 はじめに このプロダクトブログで過去2回、Goの社内勉強会を実施していることについて書いてきました。また、その中…

RSpecのテストコードを実行時に書き換えて実行速度を改善した話

CTOの藤村です。つい最近まで STORES ブランドアプリ のチームでRailsを書いていました。 STORES ブランドアプリ のRailsリポジトリではdatabase_cleanerを(strategy = truncationで)使ってテスト中のデータベースをリセットしており、このことがテストコ…

Go の勉強会を始めて1年が経ちました

はじめに こんにちは。テクノロジー部門プロダクト基盤本部の@NAL_6295です。 プロダクト基盤本部では、ID基盤を開発・運用しており、Go を採用しています。 参考までに、ID基盤のアプリケーションアーキテクチャについて書いた記事を紹介します。 tech.hey.…

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

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

OpenID Connect フレームワーク fosite にコントリビュートしました

こんにちは。プロダクト基盤本部 基盤グループの inari111 です。 私の部署は STORES 各プロダクトへ導入する ID 基盤の開発をしています。 今回は ID 基盤内で使われている OpenID Connect フレームワーク ory/fosite にコントリビュートしたことについて書…

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

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

モックしないテストも書く話

STORES 予約 でwebアプリケーションエンジニアをやっております。ykpythemindです。 皆さん、Webアプリケーションのテストを書いていますか。 モック(mock)を使っていますか。 今回は自動テスト上で、偽物だけではなく(要所で)本物を使おうよという話を書…

業務の中で出会った default gem のアップグレードによる CVE 対応と rubygems 3.2.0 未満の不具合の話

こんにちは! CTO 室所属エンジニアの id:hogelog です。 もういくつ寝るとクリスマスというわけで毎年クリスマスのお楽しみ、新バージョンの Ruby がリリースされます。次バージョンの Ruby 3.1 では { foo:, bar: } のようなハッシュのショートハンドや改…

マイクロサービス化を進めていたが、切り戻してモノリスで開発しているお話

はじめに この記事はhey Advent Calendar16日目の記事です。 STORES 予約 開発チーム @arrow_make です。 昨年度まで進めていたマイクロサービス化を止めてモノリスで開発するに至った過程について書いていきます。 STORES 予約 におけるマイクロサービス化 …

Go で実装した ID 基盤のアプリケーションアーキテクチャ

こんにちは。hey 株式会社 プラットフォーム本部 基盤グループの inari111 です。 私の部署は STORES 各プロダクトへ導入する共通基盤を開発しており、1つ目のプロダクトとして ID 基盤を Go で実装しました。 この記事では、その Go アプリケーションのアー…

「GraphQL スキーマで支えるレジアプリ開発」というタイトルで話しました

hey で STORES(EC)や STORES レジのバックエンドエンジニアをしております、知花です。 先日“hey Talk” Engineers 新プロダクト「STORES レジ」を支えるエンジニアリングというイベントにて「GraphQL スキーマで支えるレジアプリ開発」というタイトルで、…

Rails開発でやっておくと良かったCI設定集

STORES 予約 でwebアプリケーションエンジニアをやっております。ykpythemindです。 Rails開発で、どのようなアプリケーションでも抑えておくとチーム開発が少し楽になるポイントがあります。今回はいくつか実例を載せながら紹介します。 アプリケーションの…

STORES Rails アプリを Zeitwerk 有効化するまでの道のり

こんにちは、ヘイ株式会社でエンジニアをしている id:hogelog です。 2021年6月に入社し CTO 室という部署に所属しつつなんだかあちこちの部署に首を突っ込むような役割をしています。まだ入社したばかりで把握してないものも多いですが、ビジネスの勢い、人…

STORES ECでのMongoDB(Mongoid)とSTIの使い方紹介

はじめに hey のECとかレジのバックエンドエンジニアをやっている @ucks です。 前回は、Mongoid の基本的な使い方と MongoDB を利用した開発のメリットを紹介しました。 今回はもう少し踏み込んで、STORES (以下、区別のため STORES EC と表記)、STORES レ…

POSレジの長期プロダクト開発

STORES, STORES レジでバックエンドエンジニアをしている @charlie です。 先日 STORES から新しいプロダクト STORES レジ がリリースされました。 プロジェクト発足からリリースまで開発に実は1年9ヶ月かかっています。 全体像は @ide も公開しているので読…

MongoDB(Mongoid)を利用したRails開発のメリット

はじめに はじめまして、hey でECとかレジのバックエンドエンジニアをやっている @ucks です。 STORES (以下、区別のため STORES EC と表記) と STORES レジでは、Webアプリケーションフレームワークに Ruby on Rails 、 データベースに MongoDB 、 ODM (RDB…

CSPを利用してRailsアプリから安全にiframeを制限する

STORES EC本部のソフトウェアエンジニア @_morihirok です。 STORES ECではクリックジャッキングの脆弱性に対応するため、2021年の2月に他ドメインのサイトからのiframe要素などによる読み込みを制限するアップデートを行いました。 コンテンツセキュリティ…

GitHub ActionsでRuby on RailsのCI環境を構築する上でのポイント

STORES 予約 でwebアプリケーションエンジニアをやっております。ykpythemindです。 GitHub Actions、とても便利ですよね。STORES 予約チームでは徐々にCircleCI から GitHub Actionsへの移行を進めていますが、この度歴史あるRailsのリポジトリのCIを移行し…

Rails 6.0へアップグレードしました

バックエンドエンジニアで STORES EC を担当しているただ @tdakak です。 hey には2021年の1月に入社しました。 現在は業務改善グループという、アプリケーションのセキュリティ対応や運用や開発をなめらかにするための仕組み作りを行うなんでも屋さんなチー…

Goで静的解析してlinterを作る

STORES 予約 でwebアプリケーションエンジニアをやっております。ykpythemindです。 本記事は hey アドベントカレンダー2020の11日目です。 概要 heyではOpenAPI(Swagger)の導入が行われています。 note.com STORES 予約 チームでも一部で使用し始めており、…

Rubyのカスタム例外をちゃんと使おうと思った話

STORES のバックエンドエンジニアの@zakkyです。 本記事は、hey アドベントカレンダー 2020 の 4 日目の記事です! アドベントカレンダーに記事を書くのは初めてで、何を書くか悩みました。 技術記事は過去の自分に向けて書くのがちょうど良いという言葉を先…

STORESってMongoDBを使ってるらしいけど正直どうなの?

STORESのECサービスを開発している@morihirokです。 STORES ECはRuby on Railsで開発されているWebアプリケーションですが、データベースにはMySQLやPostgreSQLといったリレーショナルデータベースではなく、MongoDBを採用しております。 この記事ではカジュ…