並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 593件

新着順 人気順

ActiveRecordの検索結果121 - 160 件 / 593件

  • モノリシックRailsアプリケーションを モジュラモノリスへ移行している noteの事例

    自動テスト実行結果の目的を整理する / Organizing objectives of automated test results

      モノリシックRailsアプリケーションを モジュラモノリスへ移行している noteの事例
    • Railsの設計に迷ったのでGitLabの設計ドキュメントを読んでみた | DevelopersIO

      Railsのプロジェクトがそこそこ大きくなり、ServiceやSerializerなどのカスタムレイヤーを追加してコードを細分化しているものの、レイヤーの役割やインターフェイスのルールが明確に決まっておらずふわふわとしていることを課題と感じていました。課題を解決するヒントを探すため、Railsの超巨大OSSプロジェクトであるGitLabの設計ドキュメントを読んでみました。 ガイドラインの必要性 まず初めにガイドラインの必要性が語られています。レイヤーの抽象化ができたとしても、それを正しく使えないと、あっという間にメンテナンスしにくいコードができてしまうということが説明されています。 例として、あるFinder(Finderはデータベースからデータを検索する抽象)の中で別のFinderを呼び出してはいけないということが挙げられています。もしそうしたなら、Finderにどんどんオプションが追加

        Railsの設計に迷ったのでGitLabの設計ドキュメントを読んでみた | DevelopersIO
      • Rails 6.0の複数DBでリードレプリカのテストするのたぶん大変 - かみぽわーる

        Rails 6.0の複数DBのレビューしてるときに気づいたことなんですけど、たぶんリードレプリカからデータを読むテストをするのたぶん大変だと思われます。 うちの業務のアプリでActive Recordが更新を検知できない方法でデータが更新されるとテストがコケるという問題が以前にあり、これと同じ構造の問題がマスターのコネクションで更新したときマスターのコネクションのクエリキャッシュはクリアされるけどリードレプリカのコネクションのクエリキャッシュは残ったままというのがあるよね、というのをテストコードで示そうと思ったときのことである。 github.com 通常RailsアプリでDBつかったテストをするとき、テストの中で変更されたデータを毎回初期状態に戻すのにフィクスチャーをロードし直すのは時間がかかって効率がわるいので、テストケースに入る前にトランザクションを開始しといてテストケース終わったら

          Rails 6.0の複数DBでリードレプリカのテストするのたぶん大変 - かみぽわーる
        • Markdownで書籍を作るとは - golden-luckyの日記

          昨日まで何回かにわたり、多様なドキュメント形式の変換アプリケーションであるPandocのコアとなる仕組みを説明してきました。 特に、Pandoc構造とそれを生成するReader、生成されたPandoc構造を変換するPandocフィルターについて、少し時間をかけて紹介しました。 では、PandocのReaderとフィルターについて理解したところで、Pandocを使って本は作れるでしょうか? いままでの説明には登場しませんでしたが、Pandocの出力側を担うWriterには、「PDF生成のためのLaTeX Writer」や「EPUB Writer」など、「本」を作るのに使えそうなものがあります。 それらWriterを制御するためのコマンドラインオプションはいろいろ用意されており、独自のテンプレートを指定することも可能です。 ただ正直なところ、これらのWriterは、吊るしの状態では売り物の本を

            Markdownで書籍を作るとは - golden-luckyの日記
          • Rails + RSpec + OpenAPI3 + Committeeでスキーマ駆動開発を運用するTips - Timee Product Team Blog

            こんにちは、タイミーデリバリー開発チームの宮城です。 今回は弊社のOpenAPI3ベースのスキーマ駆動開発の運用方法を紹介します。 TL;DR 技術スタックは OpenAPI3, Swagger UI, Committee, ActiveModelSerializers Committeeを利用してOpenAPI準拠のRequest Specを行う OpenAPI3のrequiredキーワードに注意する 背景 タイミーデリバリーでは、RailsによるAPIサーバーと、Web管理画面としてVue.jsによるSPA、ユーザー向けiOSアプリとしてSwiftを採用しています。 1つのモノリスなRailsで利用者別にネームスペースを区切り、それぞれエンドポイントを提供しています。 サーバーサイドとクライアントサイドを分離し並行して開発を進めるためにスキーマ駆動開発を導入しました。スキーマ駆動開発の

              Rails + RSpec + OpenAPI3 + Committeeでスキーマ駆動開発を運用するTips - Timee Product Team Blog
            • GitHub - rails/docked: Running Rails from Docker for easy start to development

              You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                GitHub - rails/docked: Running Rails from Docker for easy start to development
              • RailsプロダクトへのWebAuthn導入に向けての取り組み - 虎の穴開発室ブログ

                皆さんこんにちは、とらのあなラボのY.Fです。 先日、弊社エンジニアが開発で関わっているCreatiaで、以下のお知らせが投稿されました。 【新機能のご案内】#クリエイティア にて、『パスワードレスログイン』機能をリリースいたしました。 パスワードの代わりに指紋や顔認証、PINコードを使って、スムーズかつ安全にクリエイティアにログインできるようになりました! ▶詳細は下記記事をご参照くださいhttps://t.co/FzsVIAl7Sp— クリエイティア[Creatia]@ファンクラブ開設費無料! (@creatia_cc) 2023年6月8日 弊社のサービスは、とらのあな通販やサークルポータル除いて、ほぼRuby on Railsを利用しています。 speakerdeck.com 今回の記事では、Ruby on Rails + WebAuthnについて、調べたことなどをまとめてみたいと思

                  RailsプロダクトへのWebAuthn導入に向けての取り組み - 虎の穴開発室ブログ
                • Rails 6.1で `created_at > ?` みたいなクエリをいい感じに生成する - かみぽわーる

                  Rails 6.1の目玉機能として以下のように書けるwhere拡張を入れてたんですが、いろいろあって6.1からはrevertされてしまいました🥲 posts = Post.order(:id) posts.where("id >": 9).pluck(:id) # => [10, 11] posts.where("id >=": 9).pluck(:id) # => [9, 10, 11] posts.where("id <": 3).pluck(:id) # => [1, 2] posts.where("id <=": 3).pluck(:id) # => [1, 2, 3] github.com github.com なんですが、そんなことで引き下がる僕ではないので、6.1ではpredicate生成に干渉できる拡張ポイントを用意しており、以下のようなコードを適当に読み込まれるところに

                    Rails 6.1で `created_at > ?` みたいなクエリをいい感じに生成する - かみぽわーる
                  • ActionMailerでのエラーハンドリングと、メール配信機能の冗長化 - ANDPAD Tech Blog

                    バックエンドエンジニアの宮澤です。 弊社のANDPADでは多くのWebサービスと同じようにメールでの通知機能を持っています。 今回はRailsと複数のメール配信サービスを組み合わせて、メール配信機能を冗長化した事例を紹介します。 ANDPADで導入しているメール配信サービス ANDPADでは2つのメール配信サービスを利用しています Mailgun(メイン) Sendgrid(サブ) 通常はMailgunを主系として利用し、SendgridはMailgunでの送信失敗時に備えて待機する構成になっていて、Mailgunで障害が発生した場合でも自動的にSendgird経由でメール配信できるようになっています。 また、サブにSendgridを採用している理由にRFCに準拠しないメールアドレスへの対策もあります。 ANDPADでは個人の携帯キャリアメールで登録しているアカウントも多く、キャリアメール

                      ActionMailerでのエラーハンドリングと、メール配信機能の冗長化 - ANDPAD Tech Blog
                    • 大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に

                      Googleは、同社がクラウドサービスとして提供しているCloud SpannerをRailsのActive Recordに対応させるアダプタ「activerecord-spanner-adapter」が正式版となったことを発表しました。 Cloud Spannerは、Googleの多数のデータセンターにまたがる地球規模で大規模分散処理を行うリレーショナルデータベースです。事実上無制限とされる高いスケーラビリティと99.999%の高可用性を備えつつ、強い一貫性とトランザクション処理、SQLによるクエリなどを実装しています。 メルカリの決済サービスであるメルペイがバックエンドデータベースにCloud Spannerを採用し、数百万ユーザーの処理を行っているとされています。 このCloud SpannerをRailsのActive Recordのバックエンドデータベースとして使えるようにするア

                        大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に
                      • rspecを読みやすくメンテしやすく書くために

                        はじめに 読みやすくメンテナンスしやすいRSpecを書けていますか? RSpecはというかRubyはというか柔軟なので色々な書き方ができてしまいます。 ある程度の規模のテストコードでは、油断するとどこで定義されている let なのかわからないものが登場したり、なぜか作られる(あるいは作られない)謎のレコードでテストが失敗したり、そういった辛い目にあったりするのではないでしょうか。 僕がRSpecを書くときに意識していることをまとめてみました。 これを実践するようになってつらい現象にあうことはずいぶんと減り、ずいぶんと読みやすくなったんじゃないかなと思っています。 ※効果には個人差があります。 Ruby on Railsを使ったアプリケーションのテスト向けですがRuby on Rails以外でも使えると思います。 主に以下の影響を強く受けています。 RSpecとセットで使われることが多いFa

                          rspecを読みやすくメンテしやすく書くために
                        • RailsアプリをRuby 2.7.0で動かして分かったこと | Recruit Tech Blog

                          はじめに (背景) 昨年のクリスマスにRuby 2.7.0がリリースされました。 Ruby 2.7は今年リリース予定のRuby 3への移行を見据えたバージョンであり、多くの新機能や変更点があります。そこで、弊社が企画制作する『Babyプラス』のRailsアプリをRuby 2.6.5 -> 2.7.0に上げて動かしてみたところ、約1,000件のテストケース実行に対して6件のエラーと2,700件ほどのワーニングが発生しました。この結果の分析によりRuby 2.7移行について傾向と対策が見えてきたので、現時点 (2020/01/08) で分かったことを共有します。 結論 (Ruby2.7移行についての傾向と対策) 傾向として、多くのgemがRuby 2.7.0からワーニングとなる言語仕様変更の影響を受ける 具体的には、ブロック無しProc.new/proc/lambdaおよびキーワード引数 (k

                            RailsアプリをRuby 2.7.0で動かして分かったこと | Recruit Tech Blog
                          • クラウドワークス プロダクトの持続的開発のためのリファクタリング実践アプローチ

                            19/07/24開催の「持続可能なプロダクト開発への取り組み ~メドピアとクラウドワークスの事例公開~」における、クラウドワークス側の登壇資料です。 https://connpass.com/event/136791/

                              クラウドワークス プロダクトの持続的開発のためのリファクタリング実践アプローチ
                            • Rails アプリケーションをコンテナで開発しよう ! 第 1 回 - まずは Rails アプリケーション作りから- builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

                              まずは Ruby on Rails の公式チュートリアルに沿って Rails アプリケーションを作るところから始めます。 チュートリアルをざっとみた感じ、Rails アプリケーションを作成するためには rails コマンドだけではなく node や yarn など様々なソフトウェアを実行環境にインストールする必要がありそうです。 突然ですが、僕はローカル環境にいろいろインストールしたくない勢です。AWS Cloud9 のようなクラウド IDE サービスを使う方法もありますが、理由は特にないけどローカル環境で完結させたいんです、そんな思いを持つ方も多くいらっしゃるかと思います。そこで連載の第 1 回となる本記事では、以下をゴールに進めていきます。 Rails チュートリアルで必要と書かれている依存ソフトウェア (rails, node, yarn など)をローカル環境にインストールせずに R

                                Rails アプリケーションをコンテナで開発しよう ! 第 1 回 - まずは Rails アプリケーション作りから- builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
                              • Railsアプリケーションを遅くする、ActiveRecordの3つの間違い:Count,Where,Present | Scout APM Blog

                                ネイト・ベルコペック (@nateberkopec)  SpeedShop(詳細),Railsパフォーマンス・コンサルタンシー 要約:Rails開発者の多くが、ActiveRecordがSQLクエリを実際に実行する条件を理解していません。よくある3つのケースを見てみましょう:countメソッドの誤使用と、サブセットをセレクトするためのwhereの使用、そしてpresent?です。 断言しましょう。あなたはこの3つのメソッドを使い過ぎていて、無駄なQueryとN+1を発生させているでしょう。 (字幕:なんて奇妙な謎だ、バットマン!) "いつActiveRecordがクエリを実行するかって?知るか!" ActiveRecordは素晴らしいです。本当に。しかし抽象化されているので、データ・ベース上で実行されている実際のSQLクエリに無頓着になりがちです。ActiveRecordがどのように動作す

                                  Railsアプリケーションを遅くする、ActiveRecordの3つの間違い:Count,Where,Present | Scout APM Blog
                                • Rails 7のJavaScriptとの統合は素晴らしい - Hotwire、import maps、バンドラーとの統合、APIサーバー

                                    Rails 7のJavaScriptとの統合は素晴らしい - Hotwire、import maps、バンドラーとの統合、APIサーバー
                                  • Rails 6リリース記念!?Qiitaにいろいろ記事を書きました - give IT a try

                                    先日、Rails 6が正式にリリースされました。 ついにRails 6が正式リリースされたようです!🎉 Rails 6.0: Action Mailbox, Action Text, Multiple DBs, Parallel Testing, Webpacker by default, and Zeitwerk | Riding Rails https://t.co/pHoJb68B97— Junichi Ito (伊藤淳一) (@jnchito) 2019年8月16日 だから、というわけでもないのですが、Rails関連の記事をいくつか書いてQiitaにアップしています。 Railsアプリのアップグレードの手順 1つ目はRailsアプリのアップグレード(バージョンアップ)の手順です。 永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 - Qiita qiita.com

                                      Rails 6リリース記念!?Qiitaにいろいろ記事を書きました - give IT a try
                                    • Railsクイズ、何問解けるかな? - SmartHR Tech Blog

                                      こんにちは。SmartHRでRails顧問業をしています @willnetです。最近は主にリファクタリングをしています。 SmartHRでは毎週「Rubyist@SmartHR(仮)」という名の定例ミーティング*1が行われています。このミーティングはバックエンドエンジニアが集まり、チームをまたいだ情報共有や相談をすることを目的としています。その中では僕がTipsなどを共有する「willnetさんのありがたいお言葉」というコーナーが常設されています。 「willnetさんのありがたいお言葉」のコーナーではRailsの最新動向に関する話をすることが多いのですが、最近はRailsの各種機能がどのように動くのかをクイズ形式にして共有しています。これがなかなか好評なので今回テックブログにしてみた次第です。みんな全問正解できるかな? ちなみにこんな感じでやってます まず問題と回答の選択肢を見せてからs

                                        Railsクイズ、何問解けるかな? - SmartHR Tech Blog
                                      • 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
                                        • 永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 - Qiita

                                          はじめに Railsアプリケーションを長く運用していると避けて通れないのがRailsのバージョンアップです。 古いバージョンのRailsは順次サポートの対象から外れていく(=不具合修正やセキュリティ対応がされなくなる)ため、バージョンアップをせずに運用するわけにはいきません。 そこでこの記事では僕・伊藤淳一がRailsアプリのバージョンをアップグレード(アップデート)する手順を紹介します。 この手順はこれまで何度もRailsアプリケーションをアップグレードしてきた僕の知見が詰まった、いわば「秘伝のタレ」的なアップグレード手順です。 想定するRailsアプリケーション この記事で想定しているのは以下のようなRailsアプリケーションです。 開発者1人でもなんとか面倒が見れるレベルの規模(=アップグレードは1人で作業する想定) 趣味で作っているのではなく、外部のユーザーがいるRailsアプリ(

                                            永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 - Qiita
                                          • mimemagicに依存しなくなったmarcelのmime type判定の変化には気をつけようって話 - Tallman

                                            mimemagic gemのライセンス問題で色々ありましたね。ライセンスは法的な問題なので確認も難しい問題でした。 さて、marcelからmimemagicへの依存が無くなってmime typeの判定がApache Tikaを元にしたものになりました。 hackmd.io しかし、この変更にはmarcelのmime type判定結果が変化するものが含まれていました。 例えば、以下のsample.xlsxというファイルのmime typeの判定をMarcel: 1.0.0、0,3,3それぞれに行わせると... ❯ xxd sample.xlsx 00000000: 504b 0304 1400 0808 0800 3123 7d52 0000 PK........1#}R.. 00000010: 0000 0000 0000 0000 0000 1800 0000 786c ........

                                              mimemagicに依存しなくなったmarcelのmime type判定の変化には気をつけようって話 - Tallman
                                            • RubyKaigi2022スケジュールアプリ、フロントをNext.jsに移行してみてわかったこと - SmartHR Tech Blog

                                              こんにちは、開発者のkinoppydです。こんにちは。 SmartHRでは、去年から引き続きRubyKaigiにスケジュールアプリを提供しています。事前にRubyKaigiスケジュールから「拙者のセットリスト」を作成してもらい、SNSで他の参加者とシェアして楽しんでもらうことを目的にしています。 これが今年のワイのセトリや!https://t.co/vZ3nGrPlCt #rubykaigi— kinoppyd (@GhostBrain) 2022年9月1日 去年のソースコードを利用しつつ、今年は新しいチャレンジとしてフロントの環境をNext.jsに移行してみようと考えました。去年の時点で、フロントはほぼReactで書かれており、helperという名の実質APIも書かれていたので、そんなに大きな手間にはならないだろうと思いましたが、とはいえ色々と起こったのでその様子をお伝えしたいと思います

                                                RubyKaigi2022スケジュールアプリ、フロントをNext.jsに移行してみてわかったこと - SmartHR Tech Blog
                                              • Open API × Rails × TypeScriptでのスキーマ駆動開発|Offers Tech Blog

                                                プロダクト開発人材の副業転職プラットフォーム Offers を開発している、株式会社 overflow にて EM をやっております磯崎と申します。 日々プロダクトを開発している中で、様々な格闘があるかと思いますが、その中でも大分格闘してきた Open API を用いたスキーマ駆動開発について今回は書いてます。 この構成で運用してよかったと今のところは思ってますが、色々面倒な事や落とし穴にも直面してきました。自分たちの中に溜まっている知識を書き記していくのでどこかでお役に立てればハッピーです ☺️ 最初に API を定義、その後開発を進めていくスキーマ駆動開発 そもそもスキーマ駆動開発とは、はじめに API を定義し、それを元にフロントエンド・バックエンドと開発を同時に進めていく開発フローです。 フロント実装においては通信部分で、「何を送信すべきか」、「何が返ってくるのか」を予め決まった状

                                                  Open API × Rails × TypeScriptでのスキーマ駆動開発|Offers Tech Blog
                                                • Running GitHub on Rails 6.0

                                                  EngineeringOpen SourceRunning GitHub on Rails 6.0On August 26, 2019, the GitHub application was deployed to production with 100% of traffic on the newest Rails version: 6.0. Read more about our process for upgrading, what we learned, and what’s next. On August 26, 2019, the GitHub application was deployed to production with 100 percent of traffic on the newest Rails version: 6.0. This change came

                                                    Running GitHub on Rails 6.0
                                                  • Railsプロジェクトをモジュール分割して見通しをよくする|こんぴゅ

                                                    今年もRubyKaigiが始まりましたね!noteはrubyスポンサーとして協賛しています。三重の会場にきている方は、ぜひnoteのブースにも足を運びください。 さて、noteはRuby on Railsを用いたwebサービスとして2014年にリリースされました。現在でも継続してRailsのコードベースを利用しています。 しかし、多くの機能がリリースされ、開発者も増えたため、モノリスの巨大化が進んでおり、開発効率に影響が出始めていました。 今回はそれらの問題を解消するために、noteが継続的に取り組んでいる・取り組んできたバックエンドの改善プロセスについて説明していきます。 モジュールでサービスを構成するモノリスは大きくなるとメンテナンスが難しくなります。Railsは、MVCの各層に全てのドメインがフラットに並び、レイヤごと・レイヤ間の結合度が高くなる設計思想で、巨大モノリス化への対処が難

                                                      Railsプロジェクトをモジュール分割して見通しをよくする|こんぴゅ
                                                    • Top Ruby Companies

                                                      Explore Top Ruby Companies Around the World Discover top Ruby companies worldwide and see the impact of the programming language that focuses on developer happiness.

                                                        Top Ruby Companies
                                                      • 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 on Railsはどのように生まれ、発展してきたのか[後編]。作者DHH氏やコアチームが語る動画「Ruby on Rails: The Documentary」が公開

                                                          Ruby on Railsはどのように生まれ、発展してきたのか[後編]。作者DHH氏やコアチームが語る動画「Ruby on Rails: The Documentary」が公開 最も有名なWebアプリケーションフレームワークの1つである「Ruby on Rails」は、もともと37signals社が社内向けに開発したフレームワークでした。 現在ではGitHubやShopifyなど大規模なWebサービスを支えるRuby on Railsも、登場初期には「スケールしない」という批判にさらされ、また競合となるフレームワークが登場するなどの経緯を経ています。 こうしたRuby on Railsのこれまでを、作者であるDavid Heinemeier Hansson(以下、DHH)氏や関係者が振り返る動画「Ruby on Rails: The Documentaryが、昨年(2023年)11月に公開

                                                            Ruby on Railsはどのように生まれ、発展してきたのか[後編]。作者DHH氏やコアチームが語る動画「Ruby on Rails: The Documentary」が公開
                                                          • https://www.si-ght.jp/entry/techandme-ikezawa01

                                                              https://www.si-ght.jp/entry/techandme-ikezawa01
                                                            • Rails6〜7で追加された便利メソッド12選

                                                              はじめに こんにちは。 mybest でBackendエンジニアをしている rince です。 現在、弊社ではRails6.1から7.0へのアップグレードを進めています。 → 2023/3/2にRails7.0にアップグレード完了しました! アップグレードを進める中で新たに追加された便利なメソッドを使用する機会があったので、今回はそんなRailsの最新便利メソッドをまとめました。 また、Rails7.0だけでなく、6.0や6.1で追加されたメソッドの中にもまだ割と知られていない便利なメソッドがあったりするので、それらについても合わせてご紹介します。 よりシンプルにわかりやすくコードを書けるメソッドがたくさん追加されていますので、ぜひ読んでみていただいて、皆さんの開発の手助けになれば嬉しいです。 ActiveRecord destroy_by / delete_by (6.0〜) 特定条件の

                                                                Rails6〜7で追加された便利メソッド12選
                                                              • strong_migrations gemのススメ - Money Forward Developers Blog

                                                                こんにちは。会計Plusでエンジニアをしているぽっけです。最近はシャケをしばくバイトで、やっとでんせつに上がりました。 今日はstrong_migrationsというRails向けのgemを紹介します。 strong_migrationsとは https://github.com/ankane/strong_migrations strong_migrationsは、危険なmigrationを検出するgemです。 データベースのmigrationは、ときに危険になります。たとえば実行するDDLによってはデータベースへの書き込みをブロックしてしまうことがあります。またテーブル定義の変更は、うまくやらないとアプリケーションが意図せぬ動作をするかも知れません。 strong_migrationsはそのような危険なmigrationを検出します。 ⁠使い方 使い方はかんたんです。strong_mi

                                                                  strong_migrations gemのススメ - Money Forward Developers Blog
                                                                • GitHub、Ruby on Rails向けのデータベースアダプタをオープンソースとして公開

                                                                  CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

                                                                    GitHub、Ruby on Rails向けのデータベースアダプタをオープンソースとして公開
                                                                  • Rails 6.0: Action Mailbox, Action Text, Multiple DBs, Parallel Testing, Webpacker by default, and Zeitwerk

                                                                    Rails 6.0: Action Mailbox, Action Text, Multiple DBs, Parallel Testing, Webpacker by default, and Zeitwerk Dealing with incoming email, composing rich-text content, connecting to multiple databases, parallelizing test runs, integrating JavaScript with love, and rewriting the code loader. These are fundamental improvements to the fundamentals of working with the web and building fast and fresh appl

                                                                      Rails 6.0: Action Mailbox, Action Text, Multiple DBs, Parallel Testing, Webpacker by default, and Zeitwerk
                                                                    • Rails: Active Recordメソッドのパフォーマンス改善とN+1問題の克服(翻訳)|TechRacho by BPS株式会社

                                                                      概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Improving Database performance and overcoming common N+1 issues in Active Record using includes, preload, eager_load, pluck, select, exists? – Saeloun Blog 原文公開日: 2020/01/08 著者: Rohit Kumar サイト: Saeloun -- Ruby on Railsのコンサルティング会社で、Rails + React開発のほかに、React Nativeによるモバイルアプリ開発も手がけています。 日本語タイトルは内容に即したものにしました。 2020/03/11: 初版公開 2023/09/27: 更新 Railsアプリケーションのパフォーマンスは多くの変数に

                                                                        Rails: Active Recordメソッドのパフォーマンス改善とN+1問題の克服(翻訳)|TechRacho by BPS株式会社
                                                                      • ActiveRecord::LockWaitTimeout, ActiveRecord::Deadlocked, ActiveRecord::ConnectionTimeoutError が起きた時に原因調査に役立つ情報を表示する gem を作った

                                                                        それなりの規模のサービスを運用していると、不可解なエラーに遭遇することはよくあるものです。その中でもデータベース関連のエラーは一見難解な問題に見えるかもしれませんが、原因調査に役立つ情報をさえ出力すればたいていの場合は容易に原因を特定できるものです。というわけで、Rails でよく遭遇するエラーの調査に役立つ情報を出力する gem を作成しました。 activerecord-debug_errors 現在次のエラーをサポートしています。 ActiveRecord::LockWaitTimeout (MySQL のみ) ActiveRecord::Deadlocked (MySQL のみ) ActiveRecord::ConnectionTimeoutError 以下、具体的な例を用いてどのような情報が表示されるか説明します。 ActiveRecord::LockWaitTimeout Ac

                                                                          ActiveRecord::LockWaitTimeout, ActiveRecord::Deadlocked, ActiveRecord::ConnectionTimeoutError が起きた時に原因調査に役立つ情報を表示する gem を作った
                                                                        • Rails: SidekiqはActive Jobを経由せずに直接使おう(翻訳)|TechRacho by BPS株式会社

                                                                          概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Use Sidekiq Directly, Not Through Active Job - Andy Croll 原文公開日: 2021/10/04 著者: Andy Croll 参考: 週刊Railsウォッチ20211018: SidekiqをActive Job経由ではなく直接使う 参考: Active Job の基礎 - Railsガイド Webアプリケーションを構築する場合は、ユーザーごとのレスポンスに要する時間を最小限に留めるべきです。Webサイトが速ければ速いほど、その分ユーザーも幸せになれます。 そのための方法の1つは、重くなる可能性のある処理(実行に長時間かかる、パラレル化可能な処理)を、イミディエイトなWebリクエストの外で非同期実行することです。メール送信、計画的なクリーンアップ、長時間かかる計算、外部API

                                                                            Rails: SidekiqはActive Jobを経由せずに直接使おう(翻訳)|TechRacho by BPS株式会社
                                                                          • 逸脱事例を含めてすべてをレールに乗せる - fsubal

                                                                            ライブラリやフレームワークの価値として、一定の制約を設けて典型事例をそのレールに乗せるというのがあると思う。それは書き方のルールであったり、あるいは受け取る値を型で制限することだったりする。 一方、現実のソフトウェアではたとえそういうフレームワークを使っていたとしても、時に逸脱する実装を取らなければいけないことがある。その時、フレームワークはその逸脱事例を 公式の方法として 書けるようにすべきかという問題が生じる。

                                                                              逸脱事例を含めてすべてをレールに乗せる - fsubal
                                                                            • CircleCIのYAMLを短く書けるRails Orbを作りました - メドピア開発者ブログ

                                                                              11月に入社したCTO室SREの@sinsokuです。 主にやっていることはRailsアプリのレビューや開発環境の改善です。*1 社内のRailsアプリを横断して浅くレビューする(8つくらい) MedPeerの開発環境の改善 docker-compose up で30個のコンテナが起動するのを減らす SwitchPointからActiveRecord v6への移行 CircleCIの実行時間の短縮、稀に落ちるテストの修正 その他の細かい改善 このうち、CircleCIについて知見が溜まったので技術ブログで紹介します。 CircleCIで気をつける点 CircleCIの実行時間を短くするにはいくつかコツがあります。 gemとnpmをできるだけキャッシュする RSpecを並列で実行する前に assets:precompile を実行しておく 各ジョブで必要なgem(もしくはnpm)だけをキャッ

                                                                                CircleCIのYAMLを短く書けるRails Orbを作りました - メドピア開発者ブログ
                                                                              • 私にPull Requestとレビューを見せてください - pockestrap

                                                                                TL;DR RuboCopプラグインの開発の為にPull Requestを見たいです 仕事としてでもそうでなくても構いません TwitterやGitHub Issueやメール( kuwabara (at) pocke(dot)me )までご連絡お待ちしています 背景 現在私はRuboCop Typed (仮)というRuboCopプラグインの開発をしています。 github.com pocke.hatenablog.com このRuboCopプラグインでは、Ruby 3で導入される予定の静的型の情報を使って、従来ではできなかった解析をRuboCopで行うことを目的にしています。 私は現在この解析を実装しつつ、型情報によって解決できるようになる問題にはどのようなものがあるのかを探しています。 そして、この「型情報によって解決できるようになる問題」を探すために多くのPull Requestを読み

                                                                                  私にPull Requestとレビューを見せてください - pockestrap
                                                                                • 令和に完全勝利するための Railsアップデート戦略 / Reiwa Rails Update

                                                                                  RailsConf 2024: Riffing on Rails: sketch your way to better designed code

                                                                                    令和に完全勝利するための Railsアップデート戦略 / Reiwa Rails Update