タグ

ブックマーク / techracho.bpsinc.jp (15)

  • Rails: Active Recordのfindで怖い思いをした話(翻訳)|TechRacho by BPS株式会社

    概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: A scary side of ActiveRecord's find | Arkency Blog 原文公開日: 2019/03/19 原著者: Jakub Kosiński サイト: Arkency Blog 日語タイトルは内容に即したものにしました。 参考: Rails API find -- ActiveRecord::FinderMethods 参考: Object#tap (Ruby 3.2 リファレンスマニュアル) 私は最近プロジェクトでこんなリファクタリングを行いました。identityに束縛されたコンテキストにドメインイベントをさらに追加することで、システム内のidentityに対して実行された特定のアクションから取得する監査ログを改善するというものです。手始めに、コマンドを消費する責務を持つServiceを

    Rails: Active Recordのfindで怖い思いをした話(翻訳)|TechRacho by BPS株式会社
    quanon
    quanon 2023/06/10
  • 週刊Railsウォッチ: 2022年のRails振り返り記事、RailsにDocker関連ファイルが追加ほか(20230125前編)|TechRacho by BPS株式会社

    週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Rails: 先週の改修(Rails公式ニュースより) だいぶ間が空いてしまいましたので、昨年末の改修から追いかけていきます。 公式更新情報: Ruby

    週刊Railsウォッチ: 2022年のRails振り返り記事、RailsにDocker関連ファイルが追加ほか(20230125前編)|TechRacho by BPS株式会社
    quanon
    quanon 2023/01/26
  • Railsで学ぶSOLID(3)リスコフの置換原則(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: SOLID Principles #3: Liskov Substitution Principle | Netguru Blog on Ruby/Ruby on Rails 原文公開日: 2018/03/21 著者: Marcin Jakubowski サイト: netguru 訳注: 原文のparent classは原則として「基底クラス」と訳出しました。 「SOLIDの原則シリーズ」へようこそ。このシリーズ記事では、SOLIDの原則をひとつずつ詳しく説明し、分析します。シリーズの最後にはいくつかのヒントや考察を含む総括記事をお送りしますのでどうぞご期待ください。 それでは始めましょう。「SOLIDの原則」とはそもそも何なのでしょうか?SOLIDとは、オブジェクト指向プログラミング設計における一般的な原則であり、ソフトウェアを

    Railsで学ぶSOLID(3)リスコフの置換原則(翻訳)|TechRacho by BPS株式会社
    quanon
    quanon 2019/12/02
  • クジラに乗ったRuby: Evil Martians流Docker+Ruby/Rails開発環境構築(更新翻訳)|TechRacho by BPS株式会社

    さて、どこからお話を始めましょうか。ここに到達するまでに長い長い旅路をたどりました。かつて私は開発にVagrantを使っていましたが、当時のVMは私の4GB RAMのノートPCでは少々重すぎました。そして2017年にコンテナへの乗り換えを決意したときに、やっとDockerを使い始めました。 しかしDockerで問題がたちまち解決したという気持ちではありません。自分自身やチーム、そしてすべての人々にとって完璧な設定を追求し続けてきましたが、「これでよし」と言える究極の設定はありません。標準的なアプローチを見出すまでにかなりの時間を要しました(2019年に記事を最初に公開した時点でも相当の時間を費やしていました)。 記事を最初に公開して私の秘密を隅々までオープンにして以来、多くのRailsチームや開発者が私の手法を採用し、さらに改良や貢献にもご協力をいただきました。 前置きはこのぐらいにし

    クジラに乗ったRuby: Evil Martians流Docker+Ruby/Rails開発環境構築(更新翻訳)|TechRacho by BPS株式会社
  • 3年間毎週社内勉強会を継続してきた秘訣(前編)|TechRacho by BPS株式会社

    ※夏のTechRachoフェアはアドベントカレンダーの夏バージョンです。普段あまり記事を書かないメンバーにも書いてもらえる機会を作ろうということで企画しています。8/30まで実施予定ですのでお楽しみに! morimorihogeです。暑かったり涼しかったりな日々が続きますね。 弊社ではここ3年くらい、毎週木曜の昼休み明けの枠で社内勉強会の枠を取っており、その他にも就業時間後に有志で行われる勉強会など、継続的に勉強会の機会を設け続けてきました。 弊社は40-50人規模の開発会社ですが、この規模の開発会社で継続的な勉強会運営ができている会社は意外と少ないかも?と思ったので、どうやって社内の勉強会運営及び継続性を確保してきたかをまとめてみたいと思います。 書いていくうちに長くなってしまったので前後編に分けることにしました。前編は社内勉強会の企画~実施編です。後編ではどうやって継続して開催するか、

    3年間毎週社内勉強会を継続してきた秘訣(前編)|TechRacho by BPS株式会社
    quanon
    quanon 2019/07/24
  • 週刊Railsウォッチ(20190722-1/2前編)Rails 6エラー画面の改良点、Dateを四捨五入できるtime_calc、Rackミドルウェアのデザインパターンほか|TechRacho by BPS株式会社

    2019.07.22 週刊Railsウォッチ(20190722-1/2前編)Rails 6エラー画面の改良点、Dateを四捨五入できるtime_calc、Rackミドルウェアのデザインパターンほか こんにちは、hachi8833です。7年近く肌身離さず使い続けたMacbook Pro 2013 LateのSSDのメインパーティションが、先週金曜日に天に召されました😇。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください ⚓お知らせ2件 ⚓「出張Railsウォッチ in 銀座Rails」のお知らせ morimorihogeからのお知らせ: 7/24開催予定の銀

    週刊Railsウォッチ(20190722-1/2前編)Rails 6エラー画面の改良点、Dateを四捨五入できるtime_calc、Rackミドルウェアのデザインパターンほか|TechRacho by BPS株式会社
    quanon
    quanon 2019/07/23
  • Rails 6 Beta2時点のZeitwerk情報(要訳)|TechRacho by BPS株式会社

    概要 MITライセンスに基づいて要訳・公開いたします。 英語記事: Zeitwerk integration in Rails 6 (Beta 2) | Riding Rails 原文公開日: 2019/02/22 リポジトリ: fxn/zeitwerk 著者: fxn -- Zeitwerkの作者です。 ライセンス: MIT 原文はかなり走り書きのようなので、リリースまでのつなぎとご理解ください。 間もなくリリースされるRails 6のBeta2でZeitwerkが統合されます(訳注: 既にBeta2がリリースされました)。 Rails 6の最終版にはZeitwerkの正式なドキュメントが付くことになりますが、それまでは記事が理解に役立つことでしょう。 Zeitwekの目玉機能 クラス定義やモジュール定義の定数パスを安定して使えるようになります。 # このクラスの体のオートロードはR

    Rails 6 Beta2時点のZeitwerk情報(要訳)|TechRacho by BPS株式会社
    quanon
    quanon 2019/03/12
    よさげ 😁
  • Ruby: 自分のクラスに`#to_a`を実装すべきじゃない(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: You should not implement #to_a for your classes 原文公開日: 2018/02/02 著者: zverok -- 名サイト「rubyreferences.github.io」の作者でもあります。 Ruby: 自分のクラスに#to_aを実装すべきじゃない(翻訳) えっと、このブログをときどき読んでる人なら言葉のキツさをご存知と思います。また書いてしまった。 挨拶代わりに、Rubyの便利なイディオムのひとつであるKernel#Arrayメソッドについて軽くおさらいしておきましょう。またの名を「知らんけど、んなもんArrayに決まってんだろ!」というやつです。 あるデータを用いて作業しているときに、1個の値か値の配列のどちらをも受け取るまたは返す可能性のあるメソッドが使えるとしましょう。その

    Ruby: 自分のクラスに`#to_a`を実装すべきじゃない(翻訳)|TechRacho by BPS株式会社
    quanon
    quanon 2018/11/06
  • Rails tips: 遅いクエリのログをDB設定変更なしで取るコツ(翻訳)|TechRacho by BPS株式会社

    アプリの種類を問わず、遅いクエリのログを読むのはパフォーマンス向上のためのリファクタリングで弱い部分を発見するよい方法のひとつです。 以前の私は、遅いクエリのログというとデータベースエンジンで生成されたログのことが念頭にありました。しかし、データベースの遅いクエリのログを取る独自のメカニズムを作れることをご存知でしょうか?RailsのActiveSupport::Notificationsモジュールを使うと、指定のイベントをサブスクライブできます。イベントのひとつに sql.active_recordがあり、これはデータベース操作のたびにトリガされます。 次のような感じで使えます。 ActiveSupport::Notifications.subscribe('sql.active_record') do |name, start, finish, id, payload| # inter

    Rails tips: 遅いクエリのログをDB設定変更なしで取るコツ(翻訳)|TechRacho by BPS株式会社
    quanon
    quanon 2018/04/26
  • RailsのCSRF保護を詳しく調べてみた(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A Deep Dive into CSRF Protection in Rails 公開日: 2017/07/31 著者: Alex Taylor サイト: Ruby Inside 2017/10/23: 初版公開 2021/11/26: 更新 現在Railsを使っていればCSRF保護を使うことがあるでしょう。この機能はRailsのほぼ初期から存在し、即座に導入して開発を楽にできるRailsの機能のひとつです。 CSRF(Cross-Site Request Forgery)を簡単に説明すると、悪意のあるユーザーがサーバーへのリクエストを捏造して正当なものに見せかけ、認証済みユーザーを装うという攻撃手法です。Railsでは、一意のトークンを生成して送信のたびに真正性を確認することでこの種の攻撃から保護します。 最近私がUnboun

    RailsのCSRF保護を詳しく調べてみた(翻訳)|TechRacho by BPS株式会社
    quanon
    quanon 2017/10/24
  • Rails開発者のためのPostgreSQLの便利技(翻訳)|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 今回は、PostgreSQLのスケーリングソリューションで知られるCitus Data社のブログ記事の翻訳をお送りいたします。 概要 元記事: Postgres tips for Rails developers(Apr 28, 2017) 著者: Lukas Fittl ブログ: Citus Data Blog 原著者の許諾をいただいて翻訳・公開します。 今週のRailsConfで、私たちはRailsでPostgreSQLを使ううえでの多くの知見を共有しました。有用な情報なので、その多くを広く公開したいと思います。Railsアプリでのデバッグやデータベースのパフォーマンス改善にお役立ていただければと思います。 また、フェニックスで開催されたRailsConfに惜しくも出席できなかったRailsコミュニティメンバーの皆さまにも、私たちがRailsCon

    Rails開発者のためのPostgreSQLの便利技(翻訳)|TechRacho by BPS株式会社
  • Ruby 2.4.1新機能: Onigmo正規表現の非包含演算子(?~ )をチェック|TechRacho by BPS株式会社

    2017.03.23 Ruby 2.4.1新機能: Onigmo正規表現の非包含演算子(?~ )をチェック こんにちは、hachi8833です。Ruby 2.4.1リリースおめでとうございます。 多くの修正・変更点の中から、私にとって関心の高い非包含演算子を取り急ぎチェックしてみました。結構奥が深そうなので、何かわかったら別途記事にするかもしれません。 「特定の文字列を含まない文字列にマッチする」なんて夢のようじゃありませんか。 参考情報 公式ニュース: Ruby 2.4.1 Released 2.4.0以降のコミット: Comparing changes 公式のコミットはmergeばかり並んでいて読みづらいので、RubyFlowの速報も参照しました。 Ruby 2.4.1 Onigmoアップデートで非包含演算子が導入 Rubyの正規表現エンジンとしておなじみのOnigmoRubyとは独

    Ruby 2.4.1新機能: Onigmo正規表現の非包含演算子(?~ )をチェック|TechRacho by BPS株式会社
    quanon
    quanon 2017/03/24
  • [連載:正規表現] Unicode文字プロパティについて(1)|TechRacho by BPS株式会社

    はじめまして、hachi8833です。 正規表現において、使わないまま死ぬのはあまりにもったいない「Unicode文字プロパティ」について解説します。これについてネット上にまとまった情報がほとんどなく、しかたがないので自分で書くことにしました。書きながら早くも記事があふれてきたので、見出しに「連載」の文字を追加などしてみました。たぶん他所ではほとんど見かけることのない連載になると思います。よろしくお願いします。 通常の開発においては、目的を達成する正規表現を作成してコードが動けば事足りるものであり、コーディング中に正規表現と延々付き合うことは普通ないでしょう。料理人は包丁を研ぐのに時間をかけすぎないものです。しかし特殊な業界の特殊な人々(日に5人もいないと思います)は、来る日も来る日も正規表現を書き続けていたりするので、このUnicode文字プロパティは当にありがたいものです。私の場合

    [連載:正規表現] Unicode文字プロパティについて(1)|TechRacho by BPS株式会社
    quanon
    quanon 2015/05/28
  • [翻訳] Dockerについてよくある勘違い|TechRacho by BPS株式会社

    こんにちは、hachi8833です。今回は弊社システム管理者のyamasitaさん監修のもとで、Matt Jaynes氏のDocker Misconceptionsを翻訳いたしました。それなりに文言を最適化してあり、原文と一対一対応しているとは限りませんのでご了承ください。エラーがありましたらお知らせいただけると助かります。 Dockerについてよくある勘違い Matt Jaynes 元記事: Docker Misconceptions Dockerは最近のシステム管理業界で大変な脚光を浴びてます。これによるシステム管理の進歩ははかりしれないものがありますが、いくつか重要な点で勘違いしている人を見かけます。 分野を限定して語っているのでよろしく この記事で説明する内容は、主にWebサービスにおけるミッションクリティカルなシステムのマルチホストセットアップに限定しています。Dockerをそれ

    [翻訳] Dockerについてよくある勘違い|TechRacho by BPS株式会社
    quanon
    quanon 2014/06/17
  • 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)

    更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基的には変わらないと思います。リンクは可能なものについては日語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive

    肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)
    quanon
    quanon 2014/05/26
  • 1