• [Piece of RoR]DRYなコードを書くために・・・

    このエントリーを含むはてなブックマークはてなブックマーク - [Piece of RoR]DRYなコードを書くために・・・ この記事をクリップ!Livedoorクリップ - [Piece of RoR]DRYなコードを書くために・・・ Yahoo!ブックマークに登録 @niftyクリップに追加 Share on Tumblr FC2ブックマークへ追加 newsing it! Googleブックマークに追加 Bookmark this on Delicious FriendFeedで共有 このエントリをつぶやくこのWebページのtweets

    こんにちは!システム部の徳田です。

    前回はDRYなコードを書くために、sendメソッドの紹介を・・・といったのですが、ちょっとその前にもっと基本的なメソッドの紹介をさせていただきます。

    inject

    これは、rubyの基本的なメソッドです。

    1~5の合計を求めるコードを書くとしたら、

    eachを用いることにより下記のように書けます。

    result = 0
    (1..5).each {|v| result += v }
    p result

    これでも十分DRYだと思っていたのですが、injectメソッドを用いることによりさらにDRYに書けます。

    p (1..5).inject(0) {|result, item| result + item }

    3行が1行になりましたね。すごく便利なメソッドです。

    ちなみに、~.inject(0)の0は、result = 0と同じことを示しています。

    0で初期化をするという意味です。

    また上記のinjectメソッドはRubyのメソッドですが、Railsのsumメソッドを使用することもできます。

    p (1..5).sum

    すごいすっきりしますね~。用途によっては使い得ない場合もありますが、知っておいて損はないメソッドですね。

    ここで、RubyとRailsでそれぞれメソッドを紹介させていただきましたが、先日上司にごっちゃにならないように!とアドバイスを頂きました。

    便利なメソッドはどんどん覚えていったほうがいいのですが、使い方と同時にRailsのメソッドなのか、Rubyのメソッドなのか。。きちんと理解して使用することが大切のようです。

     
  • [Piece of RoR]はじめまして!

    このエントリーを含むはてなブックマークはてなブックマーク - [Piece of RoR]はじめまして! この記事をクリップ!Livedoorクリップ - [Piece of RoR]はじめまして! Yahoo!ブックマークに登録 @niftyクリップに追加 Share on Tumblr FC2ブックマークへ追加 newsing it! Googleブックマークに追加 Bookmark this on Delicious FriendFeedで共有 このエントリをつぶやくこのWebページのtweets
    はじめまして、こんにちは。
    入社2年目のシステム部の徳田と申しますm(_ _  )m今、Ruby on RailsのプロジェクトにTEとして携わらせてもらっています。私自身もRoRを日々勉強中です。自分が学んだ、RubyやRailsのことをつらつら書かせていただきます。Ruby on Railsの欠片を少しずつ紹介していくという意味で、タイトルをPiece Of RoRっていう名前にします・・・!内容的には入門レベルになってしまいますが、よりレベルの高い記事を書いていけるよう、これから頑張ります。
    今日は、Railsの原則の一つであるDRYについて書きます。知っている方も多いと思いますが、DRYとは・・・
    Don’t Repeat Yourself、つまり「重複を排除する」「同じ作業を繰り返さない」という意味です。
    私もよくあるのですが・・・同じような処理を繰り返さなくてはいけないとき、プログラミングを覚えたばかりのエンジニアは、ひたすらガシガシとコードを書きがちです^^;しかし、共通化・部品化できるような部分はできるだけそうしないと、後からソースを改修したりするときにバグを生んでしまう可能性を高めてしまいます。
    いざコードを改修するときに・・・直すところが少ない方が楽ですし、テストも簡単ですみますよね。
    そんなコードをDRYにするために、次回の記事では、私が最近覚えたRubyのsendメソッドについてご紹介しますm(_ _ )m