13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【rails】読みやすいコードの書き方【初心者向け】

Last updated at Posted at 2020-02-29

#はじめに
読みやすいコードを書くことでコードレビューの効率が上がりますし、後々の変更もしやすくなります。
逆に読みにくいコードは読む時間がかかりますし、バグも混入しやすくなり、原因特定に時間がかかってしまいます
上記のような理由で、業務の効率を高めるために、可読性の高いコードを書くことは非常に重要です。

#参考文献
リーダブルコード要約とリーダブルコード要約の活用方法
https://qiita.com/AKB428/items/20e81ccc8d9998b5535d

脱初心者の第一歩!「これは!?」と思わせるイケてるコードの書き方【初心者向け】
https://note.com/cohki0305/n/n061d6fca4b01

#読みやすいコードの書き方
###1.変数に分かりやすい名前をつける

基本的に英語で命名し、ぱっと見ただけで分かりやすい名前をつけます。

#悪い例
str = "suzuki" #何が入っているか分からない
time = 10  #単位がないので分かりづらい
#良い例
name = "suzuki" #何が入っているかイメージ出来る
time_sec = 10  #単位があって分かりやすい

英語が思いつかない場合はcodicで調べましょう!
https://codic.jp/engine

###2.列を揃える

#悪い例
get '/login', to: 'sessions#new'
get '/auth/:provider/callback', to: 'sessions#twitter'
post '/login', to: 'sessions#create'
post '/logout', to: 'sessions#destroy'

上記のままだと、ごちゃっとして見づらいです。
以下のように修正します。

#良い例
get  '/login',                   to: 'sessions#new'
get  '/auth/:provider/callback', to: 'sessions#twitter'
post '/login',                   to: 'sessions#create'
post '/logout',                  to: 'sessions#destroy'

こうすれば見やすいですし、分かりやすくなります。
過剰にやりすぎると手間になるので、やりすぎはよくありません
出来る範囲で揃えるようにしましょう。

###3.適切なコメントを書く

#不適切なコメント
 - コードを見てすぐに分かること
 - 関数名がおかしいなどの修正可能なものを補うコメント
#適切なコメント
 - コメンタリーを入れる(こういう背景でこうなったみたいな理由を説明する)
 - 欠陥にコメントをつける(TODOやFIXMEを仕様)

###4.マジックナンバーは使わない
マジックナンバーとは、プログラムに突然出てくる謎の数字のことです。書いた本人しか分からない魔法の数字です。

#悪い例
apple_price = 110

if apple_price < 100
    puts "買う"
else
    puts "買わない"
end

急に100という数字が出てきました。
何を基準にしている数字なのか分からないので
名前をつけましょう!

#良い例
my_pocket_money = 100
apple_price = 110

if apple_price < my_pocket_money
    puts "買う"
else
    puts "買わない"
end

「所持金が足りないので、買えない」ということが理解できます。

###5.同じコードを繰り返さない
DRY(Don't repeat yourself)を守り、むやみにコードをコピペしたりしないようにしましょう
量が増えることで、読む時間がかかり、修正にも時間がかかってしまいます。

コピペしたときは、まとめれるか考えましょう

まとめる方法

  1. モデルにメソッドを定義する
  2. ヘルパーにメソッドを定義する

以下、参考文献です。

参考文献:DRY原則をもう一度 -コンカレント・エンジニアリング-

###6.if文のネストを浅くする

#悪い例
if user.name == "suzuki"
  if user.age == 20
     if user.male
        puts "知り合いです"
     end
  end
end

ネストが深すぎると読みにくくなってしまいます。
多くても2重までにしましょう。

#良い例
return unless user.name == "suzuki" && user.age == 20
  if user.male
    puts "知り合いです"
  end

returnはif文から抜け出すときによく使われます。

以上のようにすると、ネストを浅くすることが出来ます。

#終わりに
少しでも読みやすいコードを書けるように、日々意識することが大切だと思うので、可読性の高いコードが書けるように日々精進していきます。

13
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?