リファクタリングとは
リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。
なんのためにやるのか(小僧主観)
- 他の人が見てもわかりやすくするため(見通しをよくする)
- コードを再利用できるようにするため
Railにおける具体的なリファクタリング(View)
下記のような複雑なデータの呼び出しコードがViewにあるとする。
<% Article.where(status: 1).order(likes_count: :desc).limit(10).each do |article| %> <%= article.title %> <% end %>
ステータスが1で、likeが多い順で、10個だけで、、、、
とにかくソートの条件も多く、これViewでやるより、データをやり取りするモデルでやる方がいいのでは?
ということで、下記のようにリファクタリング。。。
モデル
class Article < ActiveRecord::Base scope :popular, -> { order(likes_count: :desc) } enum status: { draft: 0, published: 1 } end
コントローラー
def index @articles = Article.published.popular.limit(10) end
ビュー
<% @articles.each do |article| %> <%= article.title %> <% end %>
当初、Article.where(status: 1)
となっていてここだけ見たら確実に「これどんな状態もの?」ってなるが、published
に変換されるととても理解しやすいし、publishedで再利用もしやすくなる。
なるほどーとなったのでメモしてきました。