学習の書き留め プログラミング勉強中

プログラミングで学んだことを日記として残して行こうと思います

今日の学習

今日学んだこと 2021/01/13

学習項目

レスポンシブデザイン ruby応用

学習内容

レスポンシブデザイン

レスポンシブデザインとはざっくりいうとPC、タブレットスマホで表示するデザインを変えること。
画面の大きさが違うから、それに合わせないと見づらいから変えようって話ですね。特にPCは横長に対して、スマホって縦長だし。
方法は簡単で、CSS

@media(max-length: 表示を変えたい長さ) {
  その大きさを指定する
  .img {
    width: 50%;
  }
}

こんな感じに記述します。この@media.....のことをメディアクエリといい、表示を変えたい長さをブレークポイントという。

ruby応用

case文

まず、条件処理で一般的なものだと、if文がある。今日習ったのは、case文、書き方は

color = "red"

case color
when blue
 puts "進める"
when "yellow"
 puts "危ない"
when "red"
 puts "止まれ"
else
 puts "???"
end

というように、それぞれの状況に応じた処理で記述できる。実践だと、もしかしたら、ゲストユーザーor無料会員ユーザーor有料会員ユーザーの時とかの処理で使えそうとうという印象でした。

繰り返し処理

繰り返し処理だと、今まででは、eachやtimesを習っていたが、今日は新しく、whileを学んだ。

while 条件式
 # 条件が真である時に繰り返す処理
end

と書き、これの条件式を繰り返す処理と合わないものにすると無限ループが起こる。例えば

number = 0
while number == -1
  puts number
  number += 1
end

これだと、数は永遠に-1になることはないため、常に処理が行われるというループに陥る。実践でのイメージはつかないが使えるようにしておく。
抜け出す方法としては、breakを記述しておくことで、処理を止めることができる。

number = 0
while number == -1
  if number == 100
    break
  end
  puts number
  number += 1
end

クラスの継承

クラスは継承することができ、継承することで元の性質を引き継ぐことができる

class 子クラス < 親クラス

end

タスクの実装

Rakeタスクと呼ばれる、タスクを簡単に実行できるrubyツールがある。これは、railsにも組み込まれている。
タスクの生成

# Rakeタスク用のRakeファイルを作成
% rails g task タスクファイル名

これで、lib/tasks/ディレクトリにタスクファイル名.rakeというファイルが作成される。
また、environmentメソッドを記載することで、アプリケーション環境(今回はrails)に依存した処理を記載することができる。

namespace :ここにグループ名を記述する do
  desc "ここに処理の説明を記述する"
  task タスク名: :environment do

         ここに実際のタスクを記述する

    end
  end
end

呼び出し方

# Rakeタスクの実行
% rails namespaceの名前:taskの名前

例外処理

期待しない結果が起こった時に、どのような処理をするのかを決めることができるのが例外処理になる。期待しない結果は主にエラーが起こった時のことを言うが、基本はエラーが起こった時はその時点で処理が止まる。
しかし、処理が止まることで困ることがある場合、例外処理を実装する。 基本的には
①例外が起こった後、その処理だけ別の処理をして、元の処理に戻る場合と
②例外が起こった後、その処理だけ別の処理をして、元の処理自体を全て無効にして中止する場合 の二つのパターンがある。
つまり
通常
11111111111(エラー)00000000000となるが

1111111111(エラー→別の処理)1111111111

1111111111(エラー→別の処理→最初の処理もリセット)
と言うようなイメージ

元の処理に戻る場合
begin
  # 想定される例外
rescue
  # 例外が発生した時にrescue以下の処理が呼ばれる
end

のようにbeginで例外が起こると想定される処理を書き、rescueで例外が起こった後に行われる処理を書く。 また、raiseを使うことによって意図的にエラーを発生させることができる。

raise 発生させたい例外クラス, 'エラーメッセージ'
元の処理も全て無効にする場合
ActiveRecord::Base.transaction do
  # 処理1
  # 処理2
  # ...
end

のようにトランザクションを利用する。

まとめ

cssでユーザーに合った表示にできる。
rubyrailsは奥が深い。でもゆっくり頑張る!