不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『Webアプリ開発入門 Sinatra編1:RubyでWebアプリケーションを作ろう (全8回)』を受講してみた

2021-03-10 22:24:20 | paiza

『Webアプリ開発入門 Sinatra編1:RubyでWebアプリケーションを作ろう (全8回)』


前回に引き続き、このままJavaをやっていこうかとも思ったが、
ちょっとめんどくさそうなので、一旦他を終わらせてからにしよう😓 

あと大きい所で残っているのは、Ruby関係の
だと思うんだけど、これもPythonのときのように、
FlaskとDjangoのどちらを先に学習すべきかが分からなかったが、
どうやらネットとかでみると、
Sinatraを先に学習して、Railsをやっていった方がいいらしい。
そして、最終的にはRailsを使うことになるのかな?

ところで、Sinatraって歌手のフランク・シナトラから由来しているのか?
フランク・シナトラ自体もよく知らんけど😏 
→ フランク・シナトラってどうやら「Fly Me to the Moon」とか「My Way」とか有名な歌を歌ってた人なんだな!😲 
でもなんか命名の仕方がお洒落な感じだよな!ってことはなんとなく分かる。

そんなことよりRubyの書き方忘れた!?😫 
復習も兼ねてやっていきますか〜😤 

そういえば、Pythonのpipに相当するパッケージ管理システムって、
Rubyだとgemだったっけ?
使ったかどうかの記憶もあやしいけど、
どうやらgemは既にインストールされてるっぽいから、
gemを使ってSinatraをインストールすればいいのかな?

Sinatraのインストール方法をググったところ、
自分にとって分かりやすいそうなのが以下の2つだった。
前者だと、erubis(これまた歌手のプレスリーが由来か?)もインストールするっぽいこと書いてあるけど、なぜ入れる必要があるのかよくわからないから、
とりあえず後者の方を参考に以下のコマンドを実行してみる。

$ sudo gem install sinatra
$ sudo gem install sinatra-contrib

2行目のパッケージもどうやら重要みたいで、
インストールしていないと'sinatra/reloader'のところで引っかかるっぽい。
sqlite3もインストールするっぽいけど、必須かどうか現時点では分からないから、
とりあえずスルーしとこう。
SQLを使ったデータベース操作に必要になるのかな?
erubisも必要になったからインストールしよう。

それにしてもインストールに結構時間かかるな!😕 
ターミナルに610 secondsって書いてあったけど、
これってインストールに掛かった時間かな?

メモ

#01:Webアプリの初歩を理解しよう

#02:SinatraでHello world

  • Sinatraでメッセージを表示するプログラム
    /mywork/hello.rb
    • require 'sinatra'

      get '/' do
       'Hello Sinatra!'
      end
  • Webアプリを起動する
    • ターミナルで次のコマンドを実行する
      ruby hello.rb -o 0.0.0.0
    • ブラウザで、次のアドレスにアクセスする
      http://(ドメイン名):4567/
  • 再起動を不要にする
    /mywork/hello.rb
    • require 'sinatra/reloader'を追記する
※ ↑ここで早速sinatra-contribが必要だったことを悟る。
ってか、ちゃんとTipsに載っているし↓
  • 自分の環境に、Sinatraをインストールする
    Rubyとgemが利用できる環境で、下記のコマンドを実行する。
    • gem install sinatra
      gem install sinatra-contrib

#03:ルーティングを理解しよう

  • 複数のルートを指定する
    /mywork/hello.rb
    • get '/about' do
  • ブラウザで存在しないルートにアクセスするとエラー画面に書き方のテンプレートを示してくれる。

#04:テンプレートで表示しよう

  • erbで、HTMLを出力する
    • require 'erb'

      get '/' do
       erb :index
      end

      __END__
      @@index

      (以下、HTMLを記述)
    • Rubyでは、__END__以降をデータとして読み込む
    • Sinatraでは、テンプレート名は先頭に@を2つ付けて指定する
    • メソッドのところでは、erbの引数としてテンプレート名をシンボル(:)で指定する
※ なんだ?erbって例のerubisとなんか関係あるのか?

#05:erbの書き方を理解しよう 

  • 変数で値を受け渡す
    • 定義:@name = "Sinatra"
    • テンプレートでの使用方法:<%= @name %>
  • <%= ・・・ %>と<% ・・・ %>
    erbでは、HTMLの中にRubyのコードを記述するため、専用タグを使用する。
    • - <%= ・・・ %>:パーセントの後ろにイコールがあると、その部分の値をHTMLの一部として出力する。
    • - <% ・・・ %>:パーセントだけのタグは、出力なしでRubyコードを実行する。

#06:RPGの行動選択メニューを作ろう

  • RPGの行動選択メニューの作成
    mywork/player_menu.rb

#07:テンプレートを別のファイルに分離しよう

  • Sinatraで、テンプレートファイルを分離する
    viewsディレクトリにテンプレートファイルを格納する
    • indnex.erb
    • action.erb
      テンプレートファイル名は、erbの引数でシンボルとして指定する。

#08:テンプレートの共通部分を分割しよう

  • Sinatraで、共通のテンプレートファイルを分離する
    viewsディレクトリにlayout.erbファイルを格納する
  • スタイルシートを分離する
    「public」ディレクトリは、css以外にも静的なファイルを格納できる。
    • public/style.css


認定証

あぁ〜、駄目だ😫 
全然進まん。
Rubyに慣れていないのもあるが、時間が全然ない・・・ような気がする😑 
てか眠い〜😵 


学習ステータス


特に進化はしなかったみたい。