タグ

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

  • 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
    ryshinoz
    ryshinoz 2024/04/13
  • Passkeys を完全に理解するために Rails で実装してみた with Remix - STORES Product Blog

    この記事は STORES Advent Calendar 2023 22日目の記事です。 こんにちは STORES 予約開発チームでエンジニアリングマネージャーをしています Natsume です。 昨今 Passkeys が各サービスで導入されており、勢いを感じています。 個人では 1Password のパスワードマネージャーを使っており、1Password が Passkeys 対応してから試しています。 Passkeys でのログインは ID/PW/OTP の autofill などに比べて 1step 省略される程度ですが、ログイン体験が良いと思っており、導入されていたらどんどん切り替えています。 ほどんどのサービスでは ID/PW との併用となっているケースが多く、セキュリティ面でのメリットを享受できるのはまだ先になりそうです。 個人的に Passkeys の実際の挙動や導入する時

    Passkeys を完全に理解するために Rails で実装してみた with Remix - STORES Product Blog
    ryshinoz
    ryshinoz 2023/12/13
  • CSPを利用してRailsアプリから安全にiframeを制限する - STORES Product Blog

    STORES EC部のソフトウェアエンジニア @_morihirok です。 STORES ECではクリックジャッキングの脆弱性に対応するため、2021年の2月に他ドメインのサイトからのiframe要素などによる読み込みを制限するアップデートを行いました。 コンテンツセキュリティポリシー(以下CSP)を利用し安全にアップデートを行うことができましたので、今回はその取り組みについてご紹介させていただければと思います。 今回のアップデートに至るまでの背景 STORES ECのバックエンドはRuby on Railsで開発されています。Railsではデフォルトの設定で X-Frame-Options に SAMEORIGIN が指定されているため、「そもそも何もしなくてもクリックジャッキングの脆弱性には対応されているのでは?」と思われる方も多いと思います。 これには歴史的経緯がありまして、 S

    CSPを利用してRailsアプリから安全にiframeを制限する - STORES Product Blog
    ryshinoz
    ryshinoz 2023/09/28
  • 経理からプログラマへ、Lramaの今後、なぜBisonを倒したのか。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.2 - STORES Product Blog

    2023年6月15日に『深掘りRubyKaigi 2023 with spikeolaf & makenowjust』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は第2部です。 hey.connpass.com 登場人物 ゲスト makenowjust/藤浪 大弥さん spikeolaf/金子 雄一郎さん STORES fujimura/藤村 大介 shyouhei/卜部 昌平 hogelog/小室 直 パーサとの出会い fujimura:金子さんのパートにいきます。簡単にどんな話をRubyKaigi 2023でしたか紹介していただけますでしょうか? spikeolaf:ここ2年ぐらい、主にAnd the WorldっていうRubyKaigiの名物コンテンツを見ていると、パーサへの関心というのは高まってきていて、ここ何年かで何が問題かはだいぶ整理されてきて

    経理からプログラマへ、Lramaの今後、なぜBisonを倒したのか。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.2 - STORES Product Blog
    ryshinoz
    ryshinoz 2023/07/26
  • 開発フローでちょっと便利なツールを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
    ryshinoz
    ryshinoz 2022/12/20
  • STORES 予約 コンテナ化への道のり 前編 - STORES Product Blog

    はじめに STORES 予約でSREを担当している矢作です。 STORES 予約では今年(2022年)の9月にアプリケーションを構成する大多数のサーバーをEC2からECSへと移行することでコンテナ化(以降ECS化)しました。 今回はコンテナ化をすることで解決を目指した課題についてや、コンテナ環境でどういったアーキテクチャを構築し、その後移行していったのかについてお話ししていきます。 コンテナ化以前の構成 コンテナ化する前のSTORES 予約のざっくりとしたインフラ構成は以下のようになっています。 一台のEC2インスタンスの中に、Nginx(緑のアイコン)、Next.js(黒のアイコン)を利用して作られたコードベース、Railsを利用して作られたコードベースの3者が同梱されています。 Nginxがリクエストを受け取り、パスベースでNext.jsRailsのプロセスへとインスタンス内でリバー

    STORES 予約 コンテナ化への道のり 前編 - STORES Product Blog
    ryshinoz
    ryshinoz 2022/11/16
  • Rails 6.1 にアップグレードしたら ActionController::Parameters が ActiveSupport::HashWithIndifferentAccess に入れ替わる不具合に出会った話 - STORES Product Blog

    こんにちは、ヘイ株式会社 CTO 室の id:hogelog です。 先日 STORES https://stores.jp/ec を支える Rails アプリケーションが静かに Rails 6.0 から Rails 6.1 にアップグレードされたのですが、そんな中で出会った現象が非常に不可解でエキサイティングなものだったので紹介させていただきます。 起きた現象 Rails 6.1 アップグレードで発生した不具合は要約すると「入れ子構造のハッシュを引数として作成した ActionController::Parameters 子要素のハッシュは ActionController::Parameters になっているはずなのになぜか低確率で ActiveSupport::HashWithIndifferentAccess になってしまう」というものでした。 不具合に関連するコードのみ示すと以下

    Rails 6.1 にアップグレードしたら ActionController::Parameters が ActiveSupport::HashWithIndifferentAccess に入れ替わる不具合に出会った話 - STORES Product Blog
    ryshinoz
    ryshinoz 2022/06/30
  • mablを活用した STORES 予約 のE2Eテスト戦略 - STORES Product Blog

    最初に STORES 予約 の開発をしているTak-Iwamotoです。 STORES 予約 ではmablを使用して、少しずつE2Eテストを導入し始めています。 この記事ではmablをどのように使用しているのか、利用する上でのtipsなどを書かせていただきます。 mablとは mablはブラウザの操作をレコーディングすることでE2Eテストを作成できるサービスです。 cypressなどはコードでテストを実装する分、実装コストがかかってしまいますが、mablだとブラウザで動作確認するのと同じ要領でテストを実施できます。 STORES 予約 ではユーザーさまにとって影響が大きい予約画面や月謝・回数券の購入などの決済関連を中心に、正常系のみmablでテストを作成しています。 テストの作成方法 説明する必要がないくらいかんたんにテストを作成できますが、作成方法を説明します。 mablデスクトップア

    mablを活用した STORES 予約 のE2Eテスト戦略 - STORES Product Blog
    ryshinoz
    ryshinoz 2022/04/26
  • クライアントサイドのバリデーションエラーのデータ型についての考察 - STORES Product Blog

    業務委託で STORES の開発をしている @inouetakuya です。 先日 STORES のフロントエンドチーム内でクライアントサイドのバリデーションについて見直す機会があり、特にバリデーションエラーのデータ型をどうするかについての議論が興味深かったので、共有させていただきます。 背景 議論の背景について簡単に触れておくと、STORES のクライアントサイドでは、バリデーションのライブラリとしてこれまで joi-browser を使ってきました。 しかしながら、家の Node.js 版の joi がブラウザ対応したことにより joi-browser が deprecated になったことを受けて、今後も joi を使い続けるかを検討したところ、 joi-browser と joi の最新バージョンとの間で API の差異がいくつかあり、joi-browser から joi への乗

    クライアントサイドのバリデーションエラーのデータ型についての考察 - STORES Product Blog
    ryshinoz
    ryshinoz 2021/04/06
  • 1