rails の検索結果:

クローズしたサービスの管理画面を静的サイトにする

…とが分かりました。 Rails が動いている。サーバー側では graphql-ruby を利用した GraphQL API が動いていて、ウェブフロントエンド側では素の React が API にリクエストを行いながらページを作っている。データベースは PostgreSQL (Amazon RDS for PostgreSQL)。 データ量はそこまで多くないが、目で全件確認できるほど少なくもない。 ページの種別は、Rails の app/javascript/pages 下に…

Project Googrename: Google Workspace で 14 年運用されたドメインエイリアスをプライマリドメインに変更 & 全ユーザーを安全にリネームする

…ある Hako + Rails + omniauth-google_oauth2 について対応を検討しました。 まず、omniauth-google_oauth2 gem では hd オプションに Google Workspace のドメインを指定することで omniauth strategy レベルでログイン可能なドメインを制限できます (hosted domain, hd claim の検証)。omniauth-google_oauth2 の hd オプション自体は複数の…

RubyKaigi 2023 Wi-Fi: 足回り徹底解説

…byists on Rails 企画と Wi-Fi スポンサーに加えて実は冷蔵庫を提供していました。RubyKaigi 運営で松本ブルワリーさんにお願いしたビールを冷やすのどうしよう? と社内で相談したら Cookpad から冷蔵庫も提供することになりました。 実はこの冷蔵庫で動いている Linux box のネットワークや OS イメージのビルド・OTA まわりも id:sora_h が本業で製作したものです。バックエンドからエッジまで Ruby が動いている冷蔵庫になって…

モブプログラミングを1年以上継続するコツ

…しますし、Ruby/Rails、ReactなどだけではなくSQLを眺めてみんなでウンウン唸りながら改善をすることもありますしコードをほぼ書かずに業務分析をすることもあります。 おすすめのツールや設定、スニペットがあれば自慢してみたり、最近の技術的な話題で盛り上がることもあります。 モブプログラミングはとてもハードなプラクティスです。一日4時間もやるととてもヘトヘトになります。それでもチームのモチベーションを維持のためにも緩急をつけて、たまには雑談を挟むことで機械的な開催になる…

ポリモーフィック関連を活用し、森羅万象の「いいね」を実現する手法

…、Kaigi on Rails 2022 森羅万象に「いいね」するためのデータ構造 というタイトルで発表をした、Rails を用いたデータ構造のリファクタリングについて紹介します。ポリモーフィック関連を用いたリファクタリングにより、テーブルやコードの重複を排除し、メンテナンス性や拡張性を向上させることができました。データ構造をリファクタリングする背景や、具体的な手法、そしてなぜその変更を行うことができたのかについてを詳しく説明します。 目次 データ構造の初期設計 新機能の「い…

【RubyKaigi 2023】ゲストハウスのオーナーに聞いた松本グルメ! 松本を256倍楽しむためのお店

…松本散策マップをご紹介いたします。ぜひこちらもRubyKaigi 2023でのお店選びに役立てていただければと思います。 また、クックパッドはRubyKaigi 2023にWi-Fi & Rubyists on Rails Sponsorとして、新宿松本間の交通支援を実施させていただいています。Rubyists on Railsは4月6日まで参加者を募集中ですので、よろしければこちらもご確認ください。 cookpad.connpass.com それでは松本でお会いしましょう!

クックパッドは RubyKaigi 2023 にWi-Fi & Rubyists on Rails Sponsorとして協賛しています

…byists on Rails Sponsorとして協賛します。聞きなれないスポンサー名だと思いますので、登壇者情報と合わせてこちらのエントリーでお知らせします。 スポンサーする背景 クックパッドはレシピサービスcookpadや、生鮮食品ECプラットフォームのクックパッドマートの開発にRubyを使用しています。また、Webサービスだけでなく、クックパッドマートで使用しているステーション(冷蔵庫)で稼働するソフトウェアやハードウェア開発にもRubyを使用しており、Rubyはクッ…

【後編】企業所属のRubyコミッター対談! 〜Ruby開発の裏話と今後の取り組み〜

…いているかとか、またRailsをメインに開発されている人とかRailsを使ってアプリケーションを開発している人とかが「Rubyでこういうことができるといいんだけどな」みたいな部分とあとRubyを開発しているRubyのコミッターの人たちが「こういうRubyのコードは書かないでしょ」って言った矢先に「書きますよ」みたいな話とか、逆にこう書けたら便利じゃないって「誰も書きませんよ、そういうこと」みたいな話は結構イベントとかSlackとかそういったところでよく散見されたりするのはある…

【前編】企業所属のRubyコミッター対談! 〜企業に所属するOSS開発者って何?〜

…んが新しいRubyでRailsアプリケーションを走らせてみたり、結構テストしていてくれていて動かないところを報告するという活動を継続していてくれていたのを見ていて、その時にRubyの開発者であるまつもとゆきひろさんに「柴田さんへコミット権限を差し上げたらどうでしょう?」という話をして「いいね、いいね」という話になって、それがきっかけで柴田さんがRubyのコミッターになったという話があります。 櫻井:なるほど、その頃から柴田さんも遠藤さんのことはご存じだったのですか? 柴田:ち…

Next.js アプリケーションの共通コンポーネント開発

…ジの / であれば Rails、レシピ詳細ページの /recipe/:id であれば Next.js アプリにルーティングされるようになっています。現在ではレシピ詳細ページだけではなく検索結果ページやつくれぽ詳細ページ、MYフォルダページなどもNext.jsアプリケーションに置き換わっています。今回はその移行により生じた課題と取り組み方、それから併せて実施したモノレポ環境整備について紹介します。 共通コンポーネントの導入背景 実装方法 Reactによる共通コンポーネント作成 …

施策を "Own it" するエンジニア 〜オーナーエンジニア制度の紹介〜

…/10/150709 *6:極端な例として挙げているものの多くの場合はよくない *7:この辺りの話は Kaigi on Rails 2022 で弊チーム Techlead の akamatsu が話していたので、興味のある方は併せてどうぞ → https://kaigionrails.org/2022/talks/ukstudio/ *8:こちらも前述した akamatsu の発表で触れられています *9:弊社エンジニアリングマニフェストにある "境界を越える" の精神です。

プロと読み解く Ruby 3.2 NEWS

…す*1。といっても、Railsがrequire "set"をするらしいので、今更これの恩恵を受ける人はほとんどいないかもしれません。 残念ながらいまのところ、「Cで書き直されて高速」みたいな話はありません。{ 1, 2, 3 }みたいな専用の記法が導入されたわけでもありません。今後に期待ですね。 (mame) Unicode 15.0.0 になった Update Unicode to Version 15.0.0 and Emoji Version 15.0. [Featur…

Kaigi on Rails 2022 にて『森羅万象に「いいね」するためのデータ構造』の発表をしました

…プロダクト開発部で Rails を書いているなどやま ( @pndcat ) です。業務では、広告基盤の開発、運用から新規サービス開発など、マーケティングソリューション領域に関する開発をしています。趣味は、スプラトゥーンと推し活動をがんばっています。 Kaigi on Rails 2022 にて、森羅万象に「いいね」するためのデータ構造 というタイトルで発表をしました。この記事では、Twitter などで寄せられた質問に回答したいと思います。発表中にあった「いいね」のリファク…

クックパッドは RubyKaigi 2022 に参加&スポンサーしてきました!イベントレポート

…ず、Ruby on Rails 等にも改善を取り込んで Ruby のエコシステム全体に価値を波及させようとしているのもとても印象的でした Towards Ruby 4 JIT Making *MaNy* threads on Ruby 印象的なできごと 低レイヤーの話になると「全くわからん...」になってしまったのですが、その「分からん」にも前向きな気持ちで向き合えるのがオフラインイベントならではだったかもなと思いました。 オンラインだったらきっと途中で気持ちが切れてしまった…

【RubyKaigi発表予告】error_highlight: user-friendly error diagnostics

…+ nil ^^^ Railsのエラーページでも下線が出るようになる Railsのエラー画面のerror_highlight これだけなんですが、これらを実現するためにRubyインタプリタのエラー処理まわりをいろいろと整理する必要がありました。 何がむずかしかったか 一言で言えば、「エラーメッセージの変更は非互換である」ということでした。 Ruby 3.1のerror_messageはException#messageをオーバーロードしてerror_highlightのメッセ…

クックパッドマートにおけるアカウント統合

…サーバー処理は主に Rails で書かれており、当然データモデルも ActiveRecord で記述されています。 # ユーザー class User < ApplicationRecord has_many :orders has_one :user_location, dependent: :destroy end # 注文履歴 class Order < ApplicationRecord belongs_to :user end # ユーザーの受け取り場所 class…

オフラインイベント「Cookpad Tech Kitchen #27 Rails/Next.js/IoTによる食品流通」を開催しました!

…tchen #27 Rails/Next.js/IoTによる食品流通」をWeWork リンクスクエア新宿で開催しました。 イベントではクックパッドの新規事業「クックパッドマート」の流通を開発するエンジニアをはじめ、ECアプリケーションエンジニアやCTOも参加し、クックパッドマートの流通を中心とした最新の状況や組織についていろいろお話させていただきました。今回は当日の様子を発表資料も交えて紹介させていただきます。 クックパッドマートの失敗したデータ設計 Before / Aft…

モダンウェブフロントエンド勉強会を開催しました

…間 Ruby on Rails で開発されてきましたが、2020年から一部のページは Next.js のアプリケーションがホストするようになりました。具体的な構成については次の記事をご覧ください。 techlife.cookpad.com Next.js を使うようになると全てのビューは React コンポーネントで記述し、スタイルも JavaScript で記述するようになり、これまでの Rails での開発とは大きく異なるものになりました。それに加えてパフォーマンスを意識…

3/12 (土) 開催!「6社合同SRE勉強会」のクックパッドのセッションを紹介します

…り、モノリシックな Rails アプリケーションが Amazon EC2 上にデプロイされてレシピサービスが実現されていました。SRE *1 の仕事もレシピサービスに関することが中心でした。一方でみんなのカフェや料理教室といったサービスをレシピサービスとは独立したアプリケーションで提供しており、API での連携の基礎ができてきたりマイクロサービス化が始まりつつありました https://techlife.cookpad.com/entry/2014/09/08/093000 …

AWS CodeBuildでのRailsアプリのdocker buildを早くしたい

…odeBuildでのRailsアプリのDocker buildを早くするための工夫を紹介します。 docker buildを早くしたい理由 クックパッドでは多くのアプリケーションを運用していますが、その多くはAWS ECS上で動いています(ref. ECS インフラの変遷)。 デプロイにかかる時間の大部分を占めるのはCIおよびDocker imageのビルド時間なのでコード修正→ステージング環境へのデプロイ→動作確認→デプロイのデベロップルーティンを日に何度もくり返すような生…

クックパッドの基盤をフル活用して新卒が新規アプリケーションを作った話

…盤パワーは恐ろしく、rails new すらまともにしたことが無かった新卒が学習を進めながら2ヶ月足らずでアプリケーションの作成を完遂できました。 アプリケーション作成の経緯 今回作成したアプリケーションはクックパッドのアプリにおける「買い物機能」のドメインにまつわるロジックやリソースを置くサーバーです。 買い物機能は、クックパッドアプリ上で Cookpad Mart のプラットフォームを利用して食材などを購入できる機能です。Cookpad Mart というのは、クックパッド…

Ruby 3.1 の debug.gem を自慢したい

…dbg -c -- rails # rails コマンドを起動 $ rdbg -c -- rake # rake コマンドを起動 $ rdbg -c -- bundle exec rspec # bundle exec rspec を起動 byebug コマンドだと、これがやりづらかったんですよねえ。 起動方法 その3:リモートデバッグを行う 別プロセスをデバッグできます。 $ rdbg -O app.rb DEBUGGER: Debugger can attach via …

プロと読み解く Ruby 3.1 NEWS

…s #=> [B] Railsの中でしばしば必要になっているということで導入されました。 Class#inherited を定義して子クラスの一覧を自力で把握するコードを書いたことがある人はそこそこいるのではないでしょうか。 これは一見かんたんに見える機能でしたが、実装を安定させるのが意外と大変でした。 というのも、子クラスへの参照は弱参照(weak reference)なんですよね。 Rubyではクラスはオブジェクトなので、定数などに代入されていない無名クラスはGCに回収さ…

Ruby 3.1はエラー表示をちょっと親切にします

…本領を発揮するのは、RailsのparamsやJSONデータの取り扱いなどのときです。 たとえばjson[:articles][:title]みたいなコードを書いて、undefined method '[]' for nil:NilClassという例外が出たとします。 このとき、変数jsonがnilだったのか、json[:articles]の返り値がnilだったのかは、残念ながらコードだけ見ても判断できません。 特定するには、デバッグ出力を挟んで再実行する必要がありました。 …

Redshiftのデータをサービス改善に役立てるデータ転送システム Queuery

…API側はシンプルなRailsで作られており、コンソールのフロントエンドはTypeScriptとReactでSPAにしています。 最近の改修内容 Queueryを紹介するついでに今年自分が改修を行った箇所について書いておきます。 QueueryアカウントとRedshiftユーザーの紐付け 以前はQueueryのコンソールから好きな名前のQueueryアカウントを誰でも作ることができ、既存Queueryアカウントの認証用トークンを誰でも有効・無効切り替えができる仕様になっていま…

AWSフル活用!クッキングLiveアプリ「cookpadLive」を支える技術

…に利用しています。 Rails や go などのアプリケーションサーバーは、社内で Amazon ECS を使って動かす環境が整っているので、 cookpadLive のアプリケーションサーバーもその仕組みを使って動かしています。( Dockerfile と jsonnet を書くと本番環境で動き始める素晴らしい仕組みです。*1) 基本的な Web アプリケーションであれば上記の仕組みだけで十分なのですが、 cookpadLive のように映像を扱ったり、リアルタイムでなにか…

データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました

…た Ruby on Rails 風の開発体験を提供するフルスタックフレームワークとなっています。Next.js と Prisma の機能を使うことに加え、rails generate 風なコード生成機能があったり "Zero-API" という思想で作られたデータベースクライアント実装があったりします。"Zero-API" は面白くて、サーバーサイドの実装でもクライアントサイドの実装でも同じように db.user.findUnique({ where: { id: userId…

emruby: ブラウザで動くMRI

…しいです。 先日銀座Rails#32でもemrubyについて話したので、発表資料を貼っておきます。Rubyのビルドプロセスや、Emscripten自体に興味がある人は面白いと思います。 emruby: ブラウザで動くRuby from mametter www.slideshare.net *1:マシンスタックやレジスタを走査してオブジェクトの参照を探すということをするのですが、そのためにスタックの先頭と終端を得るAPI emscripten_scan_stack やレジスタ…

Cookpad Summer Internship 2021 (10 day Tech コース)を開催します!

…いるRuby on Rails、AWS などを題材に講義を実施します。 サービス開発講義では、クックパッドにおけるユーザーの課題解決のための考え方をインプットし、それを体感していきます。 後半 5 日間は実践的なプログラムとして、OJT プログラムと PBL プログラムの2種類を実施します。 OJT プログラムではクックパッドの部署に配属され、メンターの指導のもとサービス開発を実践します。 PBL プログラムでは社員エンジニアのサポートのもと、身近な課題を解決するサービスを自…

JSON Schema をクックパッドマートの商品登録画面に導入した話

…、フロントエンドは Rails の View の仕組みを用いて HTML が返される仕組みとなっています。また、動的な処理などを追加する際には TypeScript / React を用いている状態です。そのため、 React で JSON Schema に基づいたフォームの出し分けを自動で制御するライブラリとして、 react-jsonschema-form を利用することとしました。 また、バックエンドについては Rails で開発が行われているため、 Ruby 製で J…