ブックマーク / tech.unifa-e.com (3)

  • Ruby on Railsのexists? / any? / present? - ユニファ開発者ブログ

    初めに こんにちは。ユニファのバックエンドエンジニア、シュウです。 最近、社内のRuby on Railsのソースコードを調査している中で、レコードの存在チェックによく使われている3つのメソッドを見ました。 present? exists? any? Ruby on Railsエンジニアになってから、「存在チェックの際にはexists?やany?の方がパフォーマンスが優れている」という話をよく聞きますが、実際に調査してみると意外にも興味深い結果が得られました。この記事では、present?、exists?、any?の3つのメソッドの挙動、パフォーマンス、および適切な使用場面についてまとめました。 結論から言うと 単純な存在チェックを行いたい場合は、present?よりexists?とany?を使う方が適しています。 ブロックを使用したい場合は、any?を使います。 存在チェック後にレコー

    Ruby on Railsのexists? / any? / present? - ユニファ開発者ブログ
    lime1024
    lime1024 2024/05/28
  • RailsをAmazon ECS(AWS Fargate)で運用する際のログ設定で工夫した点 - ユニファ開発者ブログ

    こんにちは、Webエンジニア間です。 今回、Railsアプリケーションを Amazon ECS、しかも AWS Fargate の上で運用する機会に恵まれました。 その中でログに関する話を書こうと思います。 というのも、これまでのEC2インスタンス上でのログと、ECSでのログでは扱いが大きく異なっており、色々と注意&工夫しないと障害調査等で苦労することがわかったためです。 従来から変更しないといけない点、それを見据えて工夫した点をばーっと書いていきたいと思います。 従来との変更点 実サーバーやEC2インスタンス上でRailsアプリケーションを運用した時との変更点です。 出力先 通常、Railsアプリケーションでは $RAILS_ROOT/logs 以下にファイルとして出力していくと思いますが、Dockerを使った環境ではこれはできません。 理由としては2点あります。 特に対策をしないと

    RailsをAmazon ECS(AWS Fargate)で運用する際のログ設定で工夫した点 - ユニファ開発者ブログ
    lime1024
    lime1024 2020/08/06
  • 調査しやすくするためログにリクエストIDを入れましょう - ユニファ開発者ブログ

    はじめまして、ユニファ株式会社のWEBエンジニアのチョウと申します。 こんなことがないでしょうか。突然調査依頼が来て、あるユーザーについて調べてほしいです。大量のログから掘り出してみましたが、ユーザー何人がアクセスするによってログが混じってしまいました。RailsのログにプロセスのIDが入ってますが、1つのプロセスは連続で複数ユーザーに使われて、リクエストとリクエストの境界が見づらく、時間かかるケースよくあります。もっと問題なのは、システムは必ず1つのログファイルに出力するわけではない。リクエストログは複数のファイルに分けられてしまったら、調査自体が邪魔されるといっても過言ではない。 ここで問題をまとめましょう。 ユーザーあるいはユーザーのリクエストを特定したい 1つのリクエストが複数のログファイルに分けても分かる ここですぐ分かる方がいるかもしれません、1つのリクエストは複数行のログを出

    調査しやすくするためログにリクエストIDを入れましょう - ユニファ開発者ブログ
    lime1024
    lime1024 2020/08/06
  • 1