並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 142件

新着順 人気順

activerecordの検索結果1 - 40 件 / 142件

  • クックパッドを退職しました - 昼メシ物語

    2024年1月末まで在籍していますが昨年12月に業務は終えていて、いまは有休消化期間中です。2010年から約14年間勤めてきた、自分の生き様そのものとも言えるクックパッドを離れるのには、表現しきれないほど大きく、複雑な思いがあります。 僕がこの14年間でやってきたことを振り返ってみます。 入社 クックパッドに入社した時は新卒3年目相当で、26歳でした。もともと料理と Ruby が好きで、当時まだ珍しかった Ruby on Rails でサービス開発をしているらしいという点や、当時からネットウォッチしていた @ryo_katsuma さんが所属していること、直属の上司の井原さんが転職したことが決め手になり、体当たりで飛び込みました。当時の僕はほとんど実績もなく、入れてもらえるかギリギリのところだったと思いますが、おそらく井原さんが頑張って交渉してくれたのだと思います。本当に感謝しています。こ

      クックパッドを退職しました - 昼メシ物語
    • (翻訳) GitLab 社で働くのはどのようなものだったか - forest book

      本稿は Yorick Peterse 氏によって書かれた次の記事の日本語翻訳です。著者に翻訳の許可を得て公開しています。 yorickpeterse.com また本稿は DeepL Pro を使って下訳したものに手を加えています。日本語翻訳の不具合または誤訳については Yorick Peterse 氏ではなく、本稿のコメント欄にお願いします。 ここから本文です。 GitLab 社で働くのはどのようなものだったか 私は2015年10月に GitLab 社に入社し、6年あまり働いて2021年12月に退社しました。 前に GitLab 社を辞めて Inko に取り組んでいることは書きましたが、2015年から2021年までの間、GitLab 社で働いていたことがどのようなものであったのかについては触れませんでした。理由は2つあります。 燃え尽き症候群に苦しんでいて、(当時は) 自分の人生の最後の6

        (翻訳) GitLab 社で働くのはどのようなものだったか - forest book
      • 【バックエンド】駆け出しエンジニアが目指すジュニアレベルのエンジニアとは【2024年版】 - Qiita

        はじめに こんにちは。 普段はフロントエンドの開発をメインでやっておりますmamiと申します。 最近バックエンドの方の勉強や、少しずつですがDB設計やAPI作成などの業務もやらせてもらえるようになったので、自分のエンジニアとしてのレベル感や、この先目指すべき道筋を明確にしたいな〜という思いでこの記事を書いております。 これは自分のための記事であると同時に、同じように駆け出し中のエンジニアさんや、ミドル層を目指す手前のエンジニアさんにも刺さる内容になっているかと思います。 今、自分がどのようにキャリアアップしていくべきなのか、どのような道筋でスキルを磨いていけばいいのか。そんなふうに悩んでいる方は是非読んでみてください。 ※内容はバックエンドエンジニアが対象になりますが、フロントエンドの方もなにか通じるものがある…かもしれません。 ちなみにですがフロントエンドの方の記事は下記で執筆しています

          【バックエンド】駆け出しエンジニアが目指すジュニアレベルのエンジニアとは【2024年版】 - Qiita
        • 「キャッシュは麻薬」という標語からの脱却 - id:onk のはてなブログ

          これは はてなエンジニア Advent Calendar 2023 の 18 日目の記事です。昨日は id:gurrium による private-isuで70万点取るためにやったこと - ぜのぜ でした。私は 50 万点ぐらいで満足してしまっていたので、しっかり詰めていて凄いなと思う。 developer.hatenastaff.com Web アプリケーション開発において、「キャッシュは麻薬」という言葉がインターネット上をよく飛び交っています。YAPC::Kansai OSAKA 2017 の id:moznion のトークでよく知られるようになったワードじゃないかな。 初出はちゃんとは分からないんですが、少なくとも 2011 年には言われていますね。 「キャッシュは麻薬」とはよく言ったものだ。— TOYAMA Nao (@nanto_vi) November 5, 2011 キャッシ

            「キャッシュは麻薬」という標語からの脱却 - id:onk のはてなブログ
          • GraphQLはいつ使うか、RESTとの比較

            さぼです、沖縄でWebと設計について考えてます。2023/09/23 に沖縄で行われたTechBaseOkinawa2023 にて上記のタイトルで登壇しました。 今回の内容は GraphQLを設計の観点から考えてみる GraphQLの目的や用途を整理する GraphQLを使う時、または使わない時のヒントを持ち帰ってもらう 最近、GraphQLじゃなくてRESTで良くないと思うケースがなんとなくわかってきたのでそれを共有する という感じで話しました。話した内容を文字に起こし少し改修してZennでも共有することとします。 まえおき 最近はクライアントAppとサーバーAppを分けて実装する事が増えてきた クライアントの環境はますます複雑になっている クライアントとサーバーはWebAPIで通信を行う クライアントが複雑になるのと同時にWebAPIの要求が更に増して来ている APIの要求・応答を効率

              GraphQLはいつ使うか、RESTとの比較
            • 安全なウェブサイトの作り方~失敗例~ - goruchan’s blog

              安全なウェブサイトの作り方を読んだので、理解した内容を自分なりにまとめておきます。資料 上記は3章構成になっていてそれぞれ長めの内容なので、ここでは3章の『失敗例』について、Ruby on Rails ではどうするかについてをまとめます。 SQL インジェクション OS コマンドインジェクション パス名パラメータの未チェック例(ディレクトリトラバーサル) 不適切なセッション管理例(セッション ID の推測) クロスサイト・スクリプティングの例(エスケープ処理) CSRFの例 HTTP ヘッダ・インジェクションの例 メールヘッダ・インジェクションの例 参考 SQL インジェクション 参考資料内の SQL インジェクション例を見て、Ruby on Rails ではどのように対策できるかを確認しました。 例えば、下記ような $uid, $pass をユーザ入力とし、SQL 文を動的に生成する場合

                安全なウェブサイトの作り方~失敗例~ - goruchan’s blog
              • Railsのモデル名をすべて変更した話 - SmartHR Tech Blog

                SmartHRでは開発にRuby on Railsを広く採用しています。 今日は負債解消のために、開発しているサービスでRailsのモデル名をすべて変更した話を紹介します。 既存のモデル構造のつらみ 私達が開発しているサービスでは、モデルの親子構造が分かりやすいということで、モデルをネストした構造にしていました。 例えば、 User に紐づくプロフィール画像 User::ProfileImage は、 app/models/user/profile_image.rb に配置する具合です。 パッと見の構造が分かりやすいのですが、時が経つにつれて次のようなつらさが顕在化してきました。 Railsの規約(推奨ルールのようなもの)に則っていないので、関連定義が冗長になる テーブル名が長くなる。 外部キーや関連名が長くなる。 関連名と外部キー名が一致せず、カラムを呼び出したいときにDB定義を見ないと

                  Railsのモデル名をすべて変更した話 - SmartHR Tech Blog
                • スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog

                  こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさかgemを入れ替えるだけでこんなに嬉しい変化が見られるとは思っていませんでした。今日はそんなgemの話をします。 話は遡って2023年4月のある日、インターネットを眺めていたところ、ShopifyがpitchforkというOSSを公開したという情報が目に留まりました。 調べてみると、どうやら著名なRackサーバー実装の1つであるunicornの派生版であり、メモリ使用量の削減に特化しているらしいのです。 github.com これはスタディサプリ小中高のあのリソースドカ食いマイクロサービス第一位である api

                    スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog
                  • スタメンの技術的負債解消戦略 - stmn tech blog

                    1. これはなに こんにちは、リファクタリング大好きなミノ駆動です。2023年7月より株式会社スタメンにジョインしました。 この記事は、今後スタメンにおいてサービスの技術的負債を解消する設計戦略についてまとめたものです。 2. 背景、課題 株式会社スタメンは2016年創業。主要サービスであるTUNAG(ツナグ)は、企業のエンゲージメントの構築、つまりお互いを知って理解し、信頼し合う組織を作るための社内コミュニケーションを活性化させるプロダクトです。TUNAGのバックエンドはRuby on Railsで開発され、ローンチから7年をむかえつつあります。 これまでTUNAGは、プロダクトをいかに伸ばすかに注力してきた一方、内部品質や開発効率など「開発者体験」に関する課題が後手に回っていました。本来プロダクトチームはユーザーにとっての本質的な価値にのみフォーカスできる状況が理想ですし、開発者体験が

                      スタメンの技術的負債解消戦略 - stmn tech blog
                    • Aurora MySQL 5.7とRailsで実現する全文検索機能 - dely Tech Blog

                      こんにちは。 クラシル開発部、バックエンドエンジニアの松嶋です。 delyに入社してから約3年間、私はSREチームに所属していましたが、昨年10月にバックエンドに転向しました。バックエンドに転向してからは、主にクラシルアプリの公式レシピおよびCGMコンテンツの検索機能に関する開発・改善に取り組んでいます。 クラシルは、2016年2月にサービスを開始してから、管理栄養士監修の「誰でも安全に・おいしい料理を作ることができるレシピ動画」を5万件以上提供してきました。 昨年12月には、クラシルのブランドリニューアルを行い、今後はシェフや料理研究家を中心としたクリエイターとともに多様化したユーザーの食の好みや課題解決に応えられるよう、幅広い食のコンテンツを提供するプラットフォームを目指しています。 ブランドリニューアルの詳細に関しては、こちらを御覧ください。 www.kurashiru.com この

                        Aurora MySQL 5.7とRailsで実現する全文検索機能 - dely Tech Blog
                      • 大規模サービスのデータベースエンジンを MySQLからAurora MySQLへの移行 〜リードレプリカ, DNSを利用した最小ダウンタイム移行方法〜 - メドピア開発者ブログ

                        バックエンドエンジニアの徳富(@yannKazu1)です。先日、メドピアのメインサービスであるmedpeer.jpで使われているデータベースエンジンを、MySQLからAurora MySQLへと移行しました。今回はその移行のプロセスについて詳しくお話しします。 移行したデータベースの簡単なインフラ構成 移行方針 今回移行するデータベースは複数のアプリケーションから参照されており、ダウンタイムによるユーザー影響が大きいため、移行方針の検討の段階で重視したのは、ダウンタイムの最小化でした。これを達成するために、DNSのCNAMEレコードと、Auroraのリードレプリカを活用し、移行させることにしました。 DNSのCNAMEレコードの使用 データベースエンドポイントをアプリケーションに直接記述する代わりに、DNSのCNAMEレコードを利用して間接的に参照するようにしました。これにより、データベー

                          大規模サービスのデータベースエンジンを MySQLからAurora MySQLへの移行 〜リードレプリカ, DNSを利用した最小ダウンタイム移行方法〜 - メドピア開発者ブログ
                        • やさしいActiveRecordのDB接続のしくみ

                          https://kaigionrails.org/2023/talks/kubo/

                            やさしいActiveRecordのDB接続のしくみ
                          • RailsライクなRustのWebフレームワーク 「Loco」 | DevelopersIO

                            Introcusion つい先日、「Rust版のRails」ともいわれている、 Locoというフレームワークを教えてもらいました。 Railsは昔ちょっとさわった程度なのですが、 Rustで手軽にRailsライクなアプリ開発はおもしろそうなので、 試してみました。 Loco? Locoについて簡単に説明します。 このblog記事で、Locoって何? なんでRustなの?とか誰のためのフレームワーク?みたいなことが書いてあります。 軽く説明すると、↓です。 Locoって何? Loco は、Rails からインスピレーションを得た Rust用のWebフレームワーク ほぼすべての Rails 機能が含まれている Controllerとaxum経由のルーティング ActiveRecordライクにSeaORMでモデル操作 rrgenでコード生成 その他いろいろ。詳しくは元記事で RubyでいいならR

                              RailsライクなRustのWebフレームワーク 「Loco」 | DevelopersIO
                            • 書き手の意図やコードの背景を残す方法のあれこれ −きれいなコードの次に意識すべきこと− - give IT a try

                              はじめに 先日、こんなエントリを書きました。 blog.jnito.com 上の記事の中で、僕は「きれいなコードだけではすんなりコードが理解できないこともある」というような話を書きました。 もちろん、ある程度の規模になってくるといくらがんばっても「すんなり」では済まない場合も増えてくるけど、それでも最初に挙げた特徴を兼ね備えたコードとそうでないコードでは、開発効率に雲泥の差が出てくる。 僕が考える「良いコード」 - give IT a try きれいなコードを書くことはいつでも大事ですが、きれいなコード「だけ」では大きなコードを理解するのは難しいです。 そこできれいなコードを書くことに加えて、僕が意識しているコードを理解しやすくする工夫について書いてみようと思います。 ただし、ここで書く内容はあくまで僕が普段心がけていることです。 現場の文化やコードの規模や歴史、開発チームのスキルや人数、

                                書き手の意図やコードの背景を残す方法のあれこれ −きれいなコードの次に意識すべきこと− - give IT a try
                              • モノリスなRailsにモジュラーモノリスを導入した話 - hacomono TECH BLOG

                                こんにちは、プラットフォームチーム所属のまこたすです。 昨今、様々な場で「モジュラーモノリスを導入した」という話を目にするようになってきました。弊社でも昨年からモジュラーモノリスの試験導入を進めており、社内でノウハウが徐々に溜まってきたため、今回 技術ブログ で なぜ導入したのかと知見の共有 をさせていただけたらと思います。 想定読者 モノリスなアプリケーションの分割を検討している Railsへのモジュラーモノリスの導入を検討している 話さないこと チーム体制がどうあるべきかという観点の話 以下アーキテクチャについての詳細 モノリスアーキテクチャ モジュラーアーキテクチャ 背景 今回「モジュラーモノリスを導入した」というタイトルですが、最初に検討・導入に至るまでの背景について触れたいと思います。 hacomonoという組織・サービスの成長 hacomonoというサービスはリリースから現在に

                                  モノリスなRailsにモジュラーモノリスを導入した話 - hacomono TECH BLOG
                                • What it was like working for GitLab

                                  I joined GitLab in October 2015, and left in December 2021 after working there for a little more than six years. While I previously wrote about leaving GitLab to work on Inko, I never discussed what it was like working for GitLab between 2015 and 2021. There are two reasons for this: I was suffering from burnout, and didn't have the energy to revisit the last six years of my life (at that time)I w

                                  • activerecord-originator をリリースしました - pockestrap

                                    こんにちは。 id:Pocke です。 今日は activerecord-originator という gem を作ったので紹介します。 github.com なにこれ Active Record が発行するSQLの各部分に、それがどこで作られたものかをコメントとして入れ込む gem です。 理解するには実例を見るのが早いでしょう。次のログはArticlesController#indexで実行されるクエリの例です。 Article Load (0.1ms) SELECT "articles".* FROM "articles" WHERE "articles"."status" = ? /* app/models/article.rb:3:in `published' */ AND "articles"."category_id" = ? /* app/controllers/artic

                                      activerecord-originator をリリースしました - pockestrap
                                    • ActiveRecord::Base.transaction(joinable: false)を使ってはいけない - SmartHR Tech Blog

                                      注意喚起の記事になります。タイトルが結論です。 既にこの問題に言及している記事はいくつかあるのですが*1、私は気付かずに踏んでしまったので、タイトルで「おっと、うちは大丈夫かな」と思ってもらえるようにこの記事を書いています。 joinableとは何か 問題として挙げているjoinableオプションですが、これはネストしたトランザクションの挙動に影響を与えます。少しややこしいので、サンプルコードを見せながら説明します。 # frozen_string_literal: true require "bundler/inline" gemfile(true) do source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } gem "activerecord", "7.

                                        ActiveRecord::Base.transaction(joinable: false)を使ってはいけない - SmartHR Tech Blog
                                      • Ruby: メモ化のイディオムが現代のRubyパフォーマンスに与える影響(翻訳)|TechRacho by BPS株式会社

                                        概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Performance impact of the memoization idiom on modern Ruby | Rails at Scale 原文公開日: 2024/02/14 原著者: Jean Boussier(byroot) Ruby 3.2における主要な内部変更のひとつに、オブジェクトシェイプ(object shape)の導入があります。 本記事では、オブジェクトシェイプが導入された理由、仕組み、制限事項について解説します。 🔗 オブジェクトのインスタンス変数はどのように保存されるのか Rubyは非常に動的な言語なので、インスタンス変数へのアクセスという単純な操作でも多くの作業を伴います。 Rubyオブジェクトは、ほとんどの場合インスタンス変数を「参照の配列」に保存します。 たとえば、インスタンス変数を2個持つ

                                          Ruby: メモ化のイディオムが現代のRubyパフォーマンスに与える影響(翻訳)|TechRacho by BPS株式会社
                                        • Rails design patterns

                                          A design pattern is a repeatable solution to solve common problems in a software design. When building apps with the Ruby on Rails framework, you will often face such issues, especially when working on big legacy applications where the architecture does not follow good software design principles. This article is a high-level overview of design patterns that are commonly used in Ruby on Rails appli

                                            Rails design patterns
                                          • 請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog

                                            以前に アプリケーションを停止させずにRDBのスキーマ変更する話 を書きました。 developer.feedforce.jp 今日は、その実践編というか、実例として EC Booster というサービスで請求関連テーブルのスキーマを変更した話をしようと思います。 はじまりのテーブル 元々、 EC Booster の請求を管理するテーブルは、このような形でした。 create_table "monthly_charges", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.uuid "shop_id", null: false t.integer "year", null: false t.integer "month", null: false t.datetime "created_at"

                                              請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog
                                            • なぜ我々はRailsを選択したのか?Smart Craftバックエンドのご紹介

                                              はじめに Smart Craft テックリードの星井です。 前回の記事で Smart Craft の技術スタックの全体像についてお伝えしましたが、今回はバックエンドについてお話します。 Ruby on Rails / GraphQL な構成になっているので同じような構成を検討している方の参考になれば幸いです。 バックエンドのフレームワーク選定 新しくアプリケーションの開発をやるぞとなったときに、バックエンドで何を使うかというのは毎回頭を悩ませる人が多いのではないでしょうか? フロントエンドに関しては最近だととりあえず React を使っておけば文句を言う人はいないと言う認識ですが(偏見)、バックエンドはいろいろあって迷いますよね。 自分は Rails 信者でして個人的に何かを作る時には脳死で Rails を採用することが多いですが、Smart Craft でのプロダクト開発は当然そんな安易

                                                なぜ我々はRailsを選択したのか?Smart Craftバックエンドのご紹介
                                              • Railsガイドにきちんと目を通して新しい知識を得る - Active Support コア拡張機能編 - - PLAY BALL

                                                ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、Active Support コア拡張の章です。 railsguides.jp deep_dup リンクはこちら dupでは、コピーした配列の中身がgsub!などで変化する場合、コピー元の配列の中身まで影響しますが、deep_dupでは影響を受けないようにできます。 このあたりは意図せぬバグを混入させてしまわないよう、きちんと理解しておく必要があるなと思いました。 try リンクはこちら &.とtryは似ていますが、存在しないメソッドを指定した際に、前者はNoMethodErrorを返し、後者はnilを返します。 &.とtry!は挙動自体は同じようです。 ただし、try!は&.と比べる

                                                  Railsガイドにきちんと目を通して新しい知識を得る - Active Support コア拡張機能編 - - PLAY BALL
                                                • Rails 7.0.5以降におけるcreate_associationメソッドの挙動変更についてまとめ - おもしろwebサービス開発日記

                                                  この件、関連するPRやIssueが複数あってコメントも分散しており、人に説明するのがややこしいのでブログとしてまとめたものになります。間違いや意見などあったらコメントください! 追記(2023/08/02) 7-0-stableブランチに今回の変更をrevertするコミットが入りました。挙動が変わって困った人が出たので一度元に戻して仕切り直しにする方針のようです。 [7-0-stable] Revert singular association breaking changes by zzak · Pull Request #48809 · rails/rails 7.0.7がいつリリースされるかはわかりませんが、今の状態でリリースされたら7.0.4の振る舞いに戻ることになります。7.0.5以降の変更で困っている人は一旦7-0-stableを指すようにすると良いかもしれません。 概要 Ra

                                                    Rails 7.0.5以降におけるcreate_associationメソッドの挙動変更についてまとめ - おもしろwebサービス開発日記
                                                  • 【Kaigi on Rails 2023】発表資料まとめ - Qiita

                                                    2023/10/27, 28 に行われた Kaigi on Rails の資料まとめです。 資料が公開され次第、内容を更新します。公開済みのURLがあれば教えてください。 10/27 スケーラブルActive Jobs with Sidekiq Enterprise (スポンサーLT) Rails アプリの 5,000 件の N+1 問題と戦っている話 HTTPリクエストを手で書いて学ぶ ファイルアップロードの仕組み 生きた Rails アプリケーションへの delegated types の導入 Async Gem で始める ruby 非同期プログラミング Exceptional Rails やさしいActiveRecordのDB接続のしくみ Update Billion Records 初めてのパフォーマンス改善〜君たちはどう計測す(はか)るか〜 Simplicity on Rails

                                                      【Kaigi on Rails 2023】発表資料まとめ - Qiita
                                                    • crowdworks.jpのマスタデータベースをAWS RDS MySQL 5.7から8.0にアップデートしました - クラウドワークス エンジニアブログ

                                                      こんにちは。crowdworks.jp SREチームの田中(kangaechu)です。 crowdworks.jpでは、2023年8月にAWS RDS MySQL 5.7から8.0へのアップデートが完了しました(ようやく!)。 今回はMySQL 8.0へのアップデートの手順と対応が必要な変更点について書いていきます。 MySQL 8.0にアップデートした理由 MySQL 8.0にアップデートした理由はAWS RDS MySQLのEOL対応のためです。 AWS RDS MySQL 5.7のEOLは2023年10月(のちに2023年12月に変更されました)であり、8.0へのアップデートが必要でした。 crowdworks.jpで使用している他のMySQLデータベースは8.0へのバージョンアップを完了していました。 しかしcrowdworks.jpのマスタデータベースは30億行を保持し、1日に約

                                                        crowdworks.jpのマスタデータベースをAWS RDS MySQL 5.7から8.0にアップデートしました - クラウドワークス エンジニアブログ
                                                      • def 保険料 = 算定額 * 保険料率 - SmartHR Tech Blog

                                                        はじめに SmartHRで届出書類機能を開発しているqwyngと申します。 今回はSmartHRの届書書類機能において、日本語エイリアスを用いた開発を行ったので紹介します。 背景 SmartHRの届出書類機能は、書類の作成から電子申請の送信までを一括で行うことができる機能です。 ユーザーは画面上で書類に記入するような感覚で書類の作成を行うことができます。 SmartHR届出書類機能の書類確認画面 この体験の実現のために書類のどんな項目にどのような値が入力されたかを永続化する必要があります。 DBのカラム名は英語であるため、開発者は日本語の項目名を英語のカラム名に脳内で変換する必要があります。 この変換が煩わしく、プログラムの修正やレビュー時を含めて開発者の負担になっていました。 そのため、日本語の項目名をそのまま実コードに使えるようにすることを検討しました。 日本語化の是非 日本語の項目名

                                                          def 保険料 = 算定額 * 保険料率 - SmartHR Tech Blog
                                                        • 23新卒エンジニアがチーム開発研修で学んだこと - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                          こんにちは! 2023年新卒エンジニアの伴野・谷・和渕です。 サイボウズでは、2023年エンジニア新人研修の集大成として、チームに分かれてソフトウェア開発を行う実践演習が行われました。この記事では、各チームがどんな成果物を作成したのかを、チームごとにご紹介したいと思います。 エンジニア新人研修全体については以下の記事で詳しく紹介されています。ぜひそちらもご覧ください。 blog.cybozu.io 概要 実践演習では3チーム(「チーム gogo!」・「明日から」・「TEMBIN」)に分かれ、それぞれ一つのソフトウェアを2週間で開発しました。「サイボウズ流チーム開発を新メンバーだけで実践できた」「未知見の課題に対してどう行動すればよいか考えるきっかけになった」というコンセプトのもと、自由な発想で取り組みました。 チーム gogo! チーム gogo! では、演習開始時に Mastodon や

                                                            23新卒エンジニアがチーム開発研修で学んだこと - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                          • Railsにおけるマルチテナントの資料まとめ

                                                            SaaSサービスをRailsで開発するにあたり、マルチテナントに関する情報収集をしたため本ページにまとめとして記録いたします。 DBのマルチテナント DBのマルチテナントにあたっては、セキュリティーの確保と保守性が方式の選定ポイントとなります。 ただし、SaaSサービスとして成功するほど保守のコストが増大するためプール型に移行していくようです。 ブリッジ型でマルチテナントを実現可能なGem「apartment」 データーベースのインスタンスは全テナントで共有するものの、テナントごとにスキーマ(テーブル、インデックス、ビュー、ストアドプロシージャ)を分ける方式です。 この実装にはGem「apartment」の使用が有名です。 SmartHR社も創業当初はセキュリティーを高めるためにapartmentを利用していたようです。 ただし、後述するように、サービスの特性上カラム数が多く契約社数の伸び

                                                            • RubyKaigi 2024 のサイネージについて

                                                              今月中旬に沖縄県那覇市で RubyKaigi 2024 を開催した。COVID-19 対応をしていた RubyKaigi Takeout 2020, RubyKaigi Takeout 2021, RubyKaigi 2022, RubyKaigi 2023 とは異なり、今回は配信を伴わないオフラインのみの開催だった。 わたしは Organizer の一人として Sponsor Relations 業などをしつつ、Wi-Fi の支度をしたり、サイネージの支度をしたりしていた。Wi-Fi の話はこれまでもいくつか書いている のでまた今度として、今回はサイネージの話をかきます。 RubyKaigi ではいくつかのサイネージの映像を用意して会場のあちこちに表示している。各セッション会場の横に添えて字幕やチャット, LT タイマーを流すサブスクリーン、お知らせやセッション案内を廊下に設置したモニタ

                                                              • Rails 7.1にバージョンアップしました - inSmartBank

                                                                こんにちは、サーバーサイドエンジニアのmitaniです。先月、B/43を構成するシステムのうち、3つのRailsリポジトリの7.1バージョンアップが完了しました! 大きな躓きポイントはなかったのですが、参考までに手順やRails 7.1の内容を紹介しようと思います。 B/43のアーキテクチャ https://smartbank.co.jp/recruit/engineer-summary B/43は、上の図のように複数のサービスから構成されています。そのうちRailsで作られているサービスが3つあります(core-api / auth-api / aml-api)。バージョンアップする際には3つまとめて行う運用をとっているため、今回も3つバージョンアップしました。 各リポジトリは全てDocker化されています。各リポジトリのDockerfileは、共通してruby等をインストールしているベ

                                                                  Rails 7.1にバージョンアップしました - inSmartBank
                                                                • 型を意識した Ruby on Rails 上のモデル - freee Developers Hub

                                                                  こんにちは。freee販売を大阪で開発しております、bucyou (ぶちょー) というものです。 この記事は、freee Developers Advent Calendar 2023 の10日目です。 例によって普段は Ruby on Rails で開発をしておりますが、ここでのアーキテクチャや、モデリングに関する話題は、先日 freee技術の本 に書かせていただきました。 また、先日は TechNight にて、freee販売での取り組みを紹介させていただきました。 この本や、イベントの中で伝えたかったメッセージとしては、以下のようなものでした。 実現したいビジネスを、より適切に表現するためにモデリングを重視していく。 ActiveRecord によって作られたモデルと、ビジネスを表現するためのモデルをしっかり分けていく。 しかし、本はみんなで書いているものだったのでページ数はある程度

                                                                    型を意識した Ruby on Rails 上のモデル - freee Developers Hub
                                                                  • 新卒エンジニアが仕事に没頭したら DevOps チームが誕生しました【ウォンテッドリー 23卒入社エントリ】 | Wantedly Engineer Blog

                                                                    こんにちは!ウォンテッドリー株式会社の市古 (@igsr5_) と申します。 私は2023年4月にウォンテッドリーに新卒エンジニアとして入社し、もうすぐ1年が経ちます。 ウォンテッドリーは究極の適材適所により、シゴトでココロオドルひとをふやしたい会社です。 そして世界で最も「シゴトでココロオドル」を体現している会社でもあります。 本記事では新卒1年目のエンジニアが「どんな仕事に没頭したのか」を振り返ります。 現在転職を考えているエンジニアや学生エンジニアの方の参考になれば幸いです。 目次自己紹介ウォンテッドリーに入社を決めた理由どんな仕事に没頭したのか新卒2年目に没頭したいことタイトルにある DevOps チームの話は『どんな仕事に没頭したのか』の最後の章で言及しています。気になる方はスクロールしてください。 自己紹介市古 空 (いちご そら) と言います。先月 21 歳になりました。 市

                                                                      新卒エンジニアが仕事に没頭したら DevOps チームが誕生しました【ウォンテッドリー 23卒入社エントリ】 | Wantedly Engineer Blog
                                                                    • Rails7.1からcolumn,enum名に使えない名前が増える可能性が高いので注意 - カレーの恩返し

                                                                      3行まとめ Rails 7.1 から dup, freeze, hash, object_id, class, clone, frozen は column 名や enum の種類として使えなくなる可能性が高い 該当 column を持つ Model の initialize で ActiveRecord::DangerousAttributeError が発生する 各位そういった名前を使わない、rename するなど身構えておきましょう 起きていた問題 会社の Rails アプリケーションに対して rails/rails の main branch を使ってテストを走らせていたら以下のようなエラーを数多く見かけるようになった。 ActiveRecord::DangerousAttributeError: object_id is defined by Active Record. Che

                                                                        Rails7.1からcolumn,enum名に使えない名前が増える可能性が高いので注意 - カレーの恩返し
                                                                      • The growing pains of database architecture | Figma Blog

                                                                        While these fixes moved the needle, they had limitations. By analyzing our database traffic, we learned that writes— like gathering, updating, or deleting data—contributed to a significant portion of database utilization. Additionally, not all reads or data fetching could be moved to replicas due to application sensitivity to replication lag. So, from both a read and write perspective, we still ne

                                                                          The growing pains of database architecture | Figma Blog
                                                                        • Rubyの型アノテーションの現状についていくつか思うこと(翻訳)|TechRacho by BPS株式会社

                                                                          概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A few words on Ruby's type annotations state 原文公開日: 2023/05/05 原著者: zverok 参考: 週刊Railsウォッチ20230531: Rubyの型アノテーションの現状についていくつか思うこと ...を軍の訓練施設で書いているうちに、ついつい5,000ワードになってしまった。 今これをスマホで書いている、それもウクライナ軍の訓練施設にある、200人を越える戦友たちと過ごしている兵舎で。もっぱら訓練と訓練の合間の短い時間(たいてい夜と日曜だが)をこの作業に当てている。 率直に言うと、軍に入隊して以来、まさかRubyについて何か書く時間やインスピレーションを得られるとは思ってもみなかったが、今ここでこうして書いている。 最近、Redditの/r/rubyで興味深い長大な議

                                                                            Rubyの型アノテーションの現状についていくつか思うこと(翻訳)|TechRacho by BPS株式会社
                                                                          • Mastodon: Ruby on Rails Open Source Web App

                                                                            The product https://joinmastodon.org Mastodon is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, and video. All Mastodon servers are interoperable as a federated network. Open source The project is open source at https://github.com/mastodon/mastodon License

                                                                              Mastodon: Ruby on Rails Open Source Web App
                                                                            • GitHub - instant-dev/instant: JavaScript API framework with ORM, migrations and vectors

                                                                              instant.dev provides a fast, reliable and battle-tested ORM and migration management system for Postgres 13+ built in JavaScript. For those familiar with Ruby on Rails, instant.dev adds functionality similar to ActiveRecord to the Node.js, Deno and Bun ecosystems. We have been using it since 2016 in production at Autocode where it has managed over 1 billion records in a 4TB AWS Aurora Postgres ins

                                                                                GitHub - instant-dev/instant: JavaScript API framework with ORM, migrations and vectors
                                                                              • Kaigi on Rails 2023 とアンドパッドのまとめ - ANDPAD Tech Blog

                                                                                こんにちは、hsbt です。ソロ活女子という番組にハマってしまい、シーズン1から順番に見返しています。私もソロ活することが多いので「これはいけるー」「一人焼肉、などは余裕」などを話しながら見ていますが、一人フレンチフルコースはちょっと難易度が高いな〜と感じています。 今回は Kaigi on Rails 2023 の関連イベントや本編とアンドパッドの取り組みについてご紹介します。 プロポーザルネタ出し会 Kaigi on Rails 2023 に向けてアンドパッドでは、みんなでプロポーザル出そうぜ!と普段やっていることから出せそうなネタを出す会を開催しました。進め方は以下の通りです。 参加者それぞれがネタについて esa.io にタイトルと話したい内容を書く 話したい内容に対して参加者が「こうするともっとよさそう」というコメントを書く ネタ出し会の最後までに公式サイトへ投稿する 単純な内容

                                                                                  Kaigi on Rails 2023 とアンドパッドのまとめ - ANDPAD Tech Blog
                                                                                • YJIT Is the Most Memory-Efficient Ruby JIT

                                                                                  This year, the YJIT team and I have gotten a paper accepted at MPLR 2023 (Managed Programming Languages and Runtimes), which is now freely available through ACM open access. The paper, titled “Evaluating YJIT’s Performance in a Production Context: A Pragmatic Approach”, goes into details of the strategy taken to evaluate YJIT’s performance in a production context. One of our key findings, when com

                                                                                    YJIT Is the Most Memory-Efficient Ruby JIT