リファクタリングとは
リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。
なんのためにやるのか(小僧主観)
- 他の人が見てもわかりやすくするため(見通しをよくする)
- コードを再利用できるようにするため
Railにおける具体的なリファクタリング(View)
下記、Viewに同じような処理が複数あったとする。
<% if user_signed_in? %> <% if current_user == @article.user %> <%= link_to "編集", edit_article_path(@article) %> <% end %> <% end %>
<% if user_signed_in? %> <% if current_user == @comment.user %> <%= link_to "編集", edit_comment_path(@comment) %> <% end %> <% end %>
繰り返しているのは、ユーザーがサインインしているかどうかを確認すること、インスタンスに紐づいたユーザIDがログインしているユーザIDと同じかどうか確認すること、
こちらを、下記のようにリファクタリングする。
helper/application_helper.rb ← これを編集
def current_user_has?(instance) user_signed_in? && current_user == instance.user end
<% if current_user_has?(@book) %> <%= link_to "編集", edit_article_path(@book) %> <% end %>
<% if current_user_has?(@comment) %> <%= link_to "編集", edit_comment_path(@comment) %> <% end %>
なんか説明をみながらスッキリしたのでこちらもメモしておいた。