タグ

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

  • 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
    sonots
    sonots 2018/01/12
  • テスト書きすぎ問題を避ける - Qiita

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

    テスト書きすぎ問題を避ける - Qiita
    sonots
    sonots 2016/04/21
    テストを書かない指針
  • rails cで日本語が通らないときの直し方 - Qiita

    Macで漫然とRubyをインストールすると、rails consoleやirbで日語を使えないことがある。(どうなるかというと、日語の変換を確定した途端に「\U+FFE3\U+FFAB」みたいにUnicodeのエスケープっぽいものが表示される。)そうなった時の直し方を説明する。 なぜ日語を使えないのか 大雑把に言うと、Macに付属しているコマンドライン処理のライブラリ(libedit)が日語に対応していないから。これを使わず、libreadlineを使うようにすれば直る。 誰がlibeditを使っているのか Rubyをインストールしたディレクトリのどこかにあるreadline.bundleが使っている。findコマンドを使えば見つけられる。例えば、rbenvを使ってRubyをインストールしたなら、下のコマンドで見つかるだろう。

    rails cで日本語が通らないときの直し方 - Qiita
    sonots
    sonots 2014/10/22
    mac の dylib 操作詳しい
  • 1