プログラミング備忘録

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

6日目

今日の学習

Ruby

簡単なアプリの作成

とにかく自分の頭でプログラムを作ってみるのが一番いい、とのことなので、最初は簡単なクイズのプログラムを作ってみる。

今日できた分。

#何問目か表示
count_q = 1
#得点加算
count_point = 0

quiz = "整数のオブジェクト名は何でしょうか?"
answer = "Integer"
hint = "I○○○○r"

puts <<~TEXT
Rubyに関するクイズです。

TEXT

for count_q in 1..10
  puts <<~TEXT 
  #{count_q}問目
  #{quiz}
  *「hint」と入力すると、ヒントが出ます*
  TEXT

  loop do
    guess = gets.chomp
    if answer == guess
      puts <<~TEXT
      正解です!
      ------------------------------
      TEXT
      count_point += 10
      count_q += 1
      break
    elsif guess == "hint"
      puts <<~TEXT
      #{hint}
      答えを入力してください!
      TEXT
    else 
      puts <<~TEXT
      不正解です...
      答えは、#{answer}でした
      ------------------------------
      TEXT
      count_q += 1
      break
    end
  end
end

puts "100点満点中「#{count_point}」点でした!"

とりあえず、入力を受け付けてくれる、答えが合っていると加点される、ちゃんと10問出題されると終了する...という部分はしっかりと動いてくれたっぽい?

しかし、このままでは永遠にIntegerを要求するbotになってしまうので、明日は問題を増やす方法を模索したい。

できれば、30問ほど用意して、その中からランダムに10問出題するというような形を取りたい。

とりあえず今日は雛形を作ったところで終了。

途中でやめる手段も用意したい。回答の大文字と小文字を区別しないようにしたい。...と、改善点が現時点で山盛りになっている。

モジュール

モジュールについて学習したが、いまいちどの場面で使うべきなのかピンときていない。

名前空間に対しても、分かったようで分からんという状態。

Railsの中でよく見た::の正体が分かったという点で若干進展があった。

【Ruby/namespace】Rubyでよく見る「:: ←これ」を深ぼる - Qiita

この記事が分かりやすかった。

メソッド呼び出しの後に使っていたドット.は、::の代替(省略形)だった...。

知らず知らずのうちに色んなものの省略形を、省略形と認識せずに学んでいることが非常に心配。

Ruby on Rails

CRUD処理の実装

Progateでは、HTTPメソッドでgetpostしか使わなかったが、patchdeleteというものがあることを知った。

更新のためのメソッドを利用すると、更新ページの入力欄にあらかじめ登録されている情報がすでに入力されていて感動した。

最初はルーティングにしっかりURLを書いて...というやり方で練習をしたが、resourcesを使うことにより全てを賄えることを知って脱帽。

ProgateでRailsをやっていたとき、URLを間違えたり誤字があったりでエラーが頻発していた上に、erbファイルに記載するときも詰まりがちだったので、これだけで飛躍的にエラーを回避できるのではないか...?

学習メモ

  • rails g controllerでは、使わないファイルも作成されてしまうため、コントローラーは個別で作る方がよい(モデルはコマンドでOK)
  • ビューファイルにデータを受け渡す必要がない場合は、インスタンス変数(@)を使用しなくてもよい
  • rails routes Railsアプリに用意されているルーティングを確認できる
  • モジュール内のメソッドを実行する場合は、モジュール名の後ろに::をつける
  • 入力を受け付ける際はchompメソッドを使い、改行されないようにする

余談

トラックパッドでの操作が面倒くさい。

普段PCを使う際はマウスを使用していたので、スムーズに動かせない(まだ慣れていないという部分は大いにある)。

マウスを操作する時間を省ける、効率がいいというメリットがあることははよく分かるが、いい加減マウス操作がしたくなってきたので、適当なマウスを購入する予定。