タグ

ブックマーク / qiita.com/irohiroki (2)

  • yield_selfを使ったリファクタリング - Qiita

    概要 Ruby 2.5で追加されたKernel#yield_selfを使ったRailsアプリのリファクタリング例を3つ紹介する。また、Kernel#yield_selfと同一の機能を表す Tコンビネータ を含む コンビネータ論理 と、上位互換となる実装についても紹介する。 yield_selfとは yield_selfはブロックを受け取り、そのブロック引数に"自分"を渡すメソッドです。例えば下のコードでは (a - b)の結果がnとなり、ブロックの実行結果が最終的な値となります。同じことをyield_selfを使わずに書くと、a - bの結果を保存する変数を(ブロックの外側に)用意するか、(a - b)を2回書かなければなりません。 以下ではyield_selfをRailsアプリのリファクタリングに使う実践的な例を見ていきます。 例1. フィルタリングとソートをするindexアクション 下

    yield_selfを使ったリファクタリング - Qiita
  • テスト書きすぎ問題を避ける - Qiita

    新しい職場で提案したら歓迎されたので投稿しておく。 テストコード開発方針 漫然とテストコードを書いていると、以下のような問題が発生することがある。 テストに時間がかかりすぎ、待ち時間が発生したり、テスト結果を見なくなったりする テストコードの開発とレビューに時間をかけたが、そのコストに見合う利益を得られない このような問題を避けるため、以下の方針を定める。 ビジネス上の価値に比例したテスト コードの価値をビジネスへの影響や回避方法の有無により以下のようにランク付けする。 メジャー サービスの主たる機能に影響する 再現条件が広い 回避方法がない/あっても自明でない マイナー サービスの副次的な機能に影響する 再現条件が限られる 回避方法がある トリビアル サービスには影響しない 違和感はあるが、不便を感じない 回避する必要がない 複数のランクに該当する場合、より多く該当するランクに分類する。

    テスト書きすぎ問題を避ける - Qiita
    peketamin
    peketamin 2016/04/21
  • 1