プログラミング備忘録

プログラミングの学習状況をメモしています

77日目

今日の学習

Ruby on Rails

チーム開発がいよいよデプロイするところまで来たため、メンターの方がどのような場合に指摘をしてくださったのかをまとめておき、今後の開発に活かしたい。

  • 日本語化したものを表示する場合
<p><%= text.genre %></p>
<p><%= text.genre_i18n %></p>

 _i18nを利用し、内容が日本語化したものになるようにする。

  • クラス名は具体的なものにする
    cssのクラス名は、何を表すのか具体的に分かるような名前にする。
    .content
    .content-card
    .contentだと、他の場所でも利用される可能性があり、衝突や上書きの危険性がある。

  • 可読性が悪いものは改善するようにする
    誰が見ても見やすいような形に収まるように調整する。

  • タイポに気を付ける

  • クラスメソッドでは、自分自身を指定する必要はない

def self.genre_select(genre)
  if genre == "php"
# Movieクラスを指定している書き方
    Movie.where(genre: Movie::PHP_GENRE_LIST)
# クラスメソッドでは指定しなくてOK
    where(genre: PHP_GENRE_LIST)
...
  • 極力使いまわしが出来るように気を配る

  • 機能が意図した通りに動作しているかを確認する
    例えば、お気に入り機能を実装した際には、ログインした後に記事がすでにお気に入り状態になっていないかどうか気を付ける。

  • N+1問題が発生していないか確認する

【Rails】 N+1問題をincludesメソッドで解決しよう! | Pikawaka - ピカ1わかりやすいプログラミング用語サイト

exists?を使ってN+1問題が発生する場合は、any?を利用し、問題を解消する。