スタディサプリ Product Team Blog

株式会社リクルートが開発するスタディサプリのプロダクトチームのブログです

Ruby

スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで

こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさか…

detekt × Dangerで、プルリクコメントにルール名を表示する

こんにちは。スタディサプリ Androidエンジニアの@morayl です。 本記事では、Kotlinの静的解析ツールであるdetektの解析結果をDangerでプルリクにコメントする際に、ルール名も一緒にコメントするためにしたことを紹介します。 Dangerの基礎言語であるRuby…

ActiveModel の callback と Datadog Event を使って複雑なコードを整理した話

こんにちは、小中高プロダクト基盤開発グループで Product Platform Engineer をやっている @shimiwaka です。 私の所属する基盤開発グループでは、スタディサプリの認証基盤の開発を行っています。 この記事では、その認証基盤の開発時にお世話になった Act…

Ruby 3.2にアップデートするときにつまづいたポイント

こんにちは、ujihisa といいます。現在スタディサプリのProduct Platform Team で Product Platform Engineerとして仕事を行っています。 Ruby 3.2 3ヶ月ちょっと前の2022-12-25 (JST) に、Ruby 3.2.0がリリース されました。2023-03-05現在の最新安定版はRu…

Darklaunchという便利なものと、その未来

Darklaunchという便利なものと、その未来 3行要約 スタディサプリのRubyバックエンドで気軽に誰でも使える、"Darklaunch"という Feature toggles 機構がある 4年強ほど運用してきて、様々な知見、多様なユースケース、問題などが明らかになった 知見を活かし…

FactoryBotでのデータ生成を今一度見直す

FactoryBotでのデータ生成を今一度見直す こんにちは。 プロダクトプラットフォームチームの@kazu9suです。 今回は、DX(Developer Experience)改善活動の一環として、テストにおけるデータ生成を見直したお話をしたいと思います。(所要時間5分程度で読める内…

Rubyのコードの書き方

こんにちは、ujihisa といいます。現在スタディサプリのProduct Platform の Software engineerとしての仕事を行っています。先月から社内留学で、開発支援チームからコーチングチームに一時的に移籍して、そちらの仕事をやっています。 Rubyのコードの書き…

RubocopでRubyコードのスタイルを強制せず、バグだけ検出

今回はRubyのRubocopの使い方のお話です。 Summary RubocopのLayout, Lint, Metrics, Styleらのcopのほとんどすべてをdisable 潜在的バグ発見に役立つ系のSecurity, Lintのcopの一部をenable rubocop:disable や .rubocop_todo.yml だけゆるく禁止 というル…

Prefer ISO 8601

01/02/03 という日付を見たときに、どう読み取りますか? 著者 ujihisa はこれを素直に 2003年1月2日と読み取りますが、人によっては 2001 年 2 月 3 日 2003 年 2 月 1 日 平成元年 2 月 3 日 令和元年 2 月 3 日 などと読み取ることもあるでしょう。日本で…

LaunchDarkly による Feature Management

昨年の6月に入社した Web Engineer の @ravelll です。令和2年になりましたね。どうですか? 今回は私が以前所属していた新規事業開発を担うチームで Feature Management に利用した LaunchDarkly の紹介と利用事例について書こうと思います。 LaunchDarkly …

社内の実践的ruby勉強会にて圧倒的学びがあったお話

こんにちは。2019 年 9 月から Quipper に join しました、School チームで Web engineer をしている@miyamizuです!ようやく会社に慣れてきました。 先日、社内で@ujihisaさん主催の「実践的 Ruby 勉強会」が開催されました。 私はこれまで Rails アプリの…

RubyKaigi 2019でujihisaが登壇した裏話

ujihisaです。先日2019年4月に日本の福岡で開催されたRubyKaigi 2019にて、ujihisaが "Play with local vars"というタイトルで発表してきました。この発表は、40分間英語でひたすらRubyのローカル変数についてだけ語るというものです。 発表スライドは公開済…

Rails Developers Meetup 2019 に @banyan @mtsmfm @ujihisa が登壇します && ランチスポンサーします

こんにちは。 @kyanny です。 Rails Developers Meetup 2019 に Quipper の @banyan @mtsmfm @ujihisa が登壇します。発表予定の内容については https://railsdm.github.io/ のタイムテーブルをご覧ください。 キーワード: webpack, webpacker, Rails, CI, u…

DDDによる関心の分離

Web Engineer の @wozaki です。 スタディサプリの合格特訓コースの機能開発・保守が主な業務です。 今年3月に開催された Rails Developer Meetup 2018 で、弊社の @kyanny が Quipper における「関心の分離」の歴史 をプレゼンしました。 プレゼンでは、モ…

Rails DM 2018 Day 3 で @ohbarye と @mtsmfm が登壇しました

Web Dev の @mtsmfm です。 Rails Developers Meetup 2018 Day 3 Extreme で、 @ohbarye と私が登壇し、@chaspy が設営ボランティアを務めました。 Quipperが実践する定量データに基づく意思決定と開発 by @ohbarye 利用比率が低く手数料も高いキャリア決済…

グローバルサービスでのタイムゾーンとの向き合い方 -ケーススタディ編-

前回の記事に引き続き、Web developer の大庭 (@ohbarye) です。 先日『グローバルサービスでのタイムゾーンとの向き合い方』にてタイムゾーンにまつわる諸問題や解決策を1つの記事にまとめました。 しかし同記事はテクニック集としての側面が多く、Quipper …

グローバルサービスでのタイムゾーンとの向き合い方

Web developer の大庭 (@ohbarye) です。 今回はタイムゾーンにまつわるお話をしたいと思います。 タイムゾーンは私が Quipper に入社したばかりの頃に最も頭を悩ませたことの一つです。入社以前にはタイムゾーンを跨ぐようなグローバルなアプリケーションの…