2017年11月8日のブックマーク (2件)

  • Railsの太ったモデルをダイエットさせる方法について - メドピア開発者ブログ

    こんにちは。メドピアのRuby(Rails)化をお手伝いしている@willnetです。最近はよくリファクタリングをしています。 今回は、最近僕がリファクタリングしている内容についてまとめようと思います。 メドピアではFat Model/Controllerを避けるために、rubocopの設定を利用しクラスの行数が300行以下になるよう制限しています*1。最近300行を超えるモデルが出てきたので、一部の処理を別のクラスに切り出し始めました。 このとき、Railsが提供している機能であるconcernsを利用すると楽に行数を減らすことができますが、それだとrubocopの指摘を回避できるという意味しかないので、なるべく委譲(composition)を利用して処理を別クラスに移していっています*2。 複数モデルにまたがる処理を切り出す Railsアプリケーションを書いていると、複数のモデルを一度

    Railsの太ったモデルをダイエットさせる方法について - メドピア開発者ブログ
    ota42y
    ota42y 2017/11/08
    委譲大事……Fat Modelだとmodelを調べれば良かったのに、POROだと適切なクラスを探し出す必要が生まれるので、クラス名の名前付けが大変そう……
  • RailsのObject#tryがダメな理由と効果的な代替手段(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Do. Or Do Not. There Is No Try - Object#try Considered Harmful 公開日: 2017/09/24 著者: Karol Galanciak サイト: BookingSync 原文タイトルは、よくあるヨーダのセリフのもじりです。 2017/11/07: 初版公開 2022/04/07: 更新 RailsのObject#tryがダメな理由と効果的な代替手段(翻訳) Object#tryは、Railsアプリでnil値を扱う可能性がある場合をカバーするときや、与えられたメソッドがオブジェクトで必ずしも実装されていないといった場合に柔軟なインターフェイスを提供するときに、かなりよく使われています。#tryのおかげでNoMethodErrorを回避できるのですから、これでNoMetho

    RailsのObject#tryがダメな理由と効果的な代替手段(翻訳)|TechRacho by BPS株式会社
    ota42y
    ota42y 2017/11/08
    変なObject#tryを見たときに参考資料に渡せるめっっちゃ良い記事