大名エンジニアカレッジ Ruby on Rails基礎コース 1
「Railsの教科書」を読書会形式で、担当者を決めて読み進めていきます。
2020.10.28は、第1章「はじめに」と、第2章「一番小さなRailsアプリづくり」の「2.4今回作ったRailsアプリの動作まとめ」まで。
第1章「はじめに」
本書の目的
1) RailsおよびWebアプリの基礎を知る。
Webアプリとはどのようなものか?何ができるのか?どういう仕組みなのか?
そのための具体的な題材として、Ruby on Railsを使って写真や文書を投稿できるミニブログアプリを作成、動かしてみる。
2) 情報・資料を読み進めていくための前提知識(基礎知識)を学ぶ。
対象読者の説明
初心者向け
書式例など説明、サンプルコードの置き場所
開発環境
Ruby 2.7.0、Rails 6.0.2.1で動作確認(Ruby2.6.5も)
ターミナルで多くのWarning(警告)メッセージ出ることについて
警告の表示を操作すること(が、できる)の考察。利点と注意するべきところ。
自分の環境は以下のとおりでした。
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19]
which ruby → /.rbenv/shims/ruby
Rails 6.0.3.2
環境構築の流れ
Xcodeツールをインストール
Xcode全体は必要ないみたい。(iOSアプリ開発したい人は必要。)
先日、Command line tools for Xcodeを入れて本体はアンインストールしてしまったが、問題は起きていない。
Homebrewをインストール
rbenvをインストール
ここまでは準備段階。これのためにはこれが必要、、、が、ずらずら続く。
Windouws関係は、割愛。
Rubyをインストール
Railsのインストール
バージョンに関しての説明(不具合が出た時の対処法)
バージョンを指定したときは、Rails newの時にもバージョンを指定する。
ターミナルで多くのWarning(警告)メッセージ出ることについて
みんなで話してみたこと
Ruby on Railsで開発されているサービスで知っているものは?
Warningは消すこともできるが、それについての利点・注意するべき点について。 消す派、残しておく派。どちらも一理ある。
➡️ 動きがないから?チューリング完全(そのうち調べてみようと教えてもらう。)
第2章「一番小さなRailsアプリづくり」
できるだけ小さい構成のRailsアプリを作ることで、
- どのように動作するのか
- Railsによって作られたファイルの役割を機能と関連付けて学ぶ。
(1)一番小さなRailsアプリを作る
アプリの作成とWelcome画面
my_web_apps
フォルダに作ります。helloworld
アプリ。
コラム:rails newコマンドでやっていること。
必要なファイルとディレクトリィが自動で作成される。よく使われるのは app・config・db
- app M・V・Cを管理
- config 設定
- db
- Gem(Rubyの便利なプログラム集)
- JavaScriptに関する
- Webpacker モダンなフロントエンド開発に係るWebpackをRailsで使うためのgemパッケージ
- yarm Node.js上で使うパッケージマネージャー
rails g コマンドで /hello/indexページを作成、表示してみる
サーバーを立ち上げるのは rails s
localhost:3000... アドレスにアクセス
⬇️
表示内容(pタグの文言)を変えてみる。
⬇️
Rubyコード(現在時刻を日本時間にして表してくれるメソッド)を加えて、現在時刻を表示する機能を追加(ここまではviewファイルを直接書き換え)
⬇️
ロジック(日本時間にして現在時刻を表してくれるメソッドのところ)部分をcontrollerに移す。
(2)Webアプリはどのように動作しているか
「サイトを見る」際の流れ
「リクエスト」とは、、、
「〜のページが見たい」アドレス欄にアドレスを入力してエンターキーを押すこと
⬇️
「リクエスト」が、見たいページが置かれているサーバーに飛ぶ
⬇️
Webサーバー上のWebアプリは「レスポンス」を返す。
「レスポンス」とは、「Webアプリが返してくる情報群(HTML)」
ブラウザが見やすいように解釈して表示。
⬇️
見たい情報が見れた❗️
(見やすくなる前のHTMLをみる機能もブラウザにはある。右クリック「ページのソースを表示」などで。)
コラム「Webサーバー」
インターネットの向こう側とこちら側
通常はWebアプリはインターネット上にあり、ブラウザは自分のPCにある。
開発中は自分のPCだけで完結。(自分のPCからアクセス可能。)
今回作ったRailアプリの動作まとめ
「リクエスト」は、URL:http://localhost:3000/hello/index
Web Sever側としてレスポンスを返してくれたのは、Rails App(helloworld
)
「レスポンス」は、HTMLで戻ってきて、PCのブラウザにより「Hellow World!」と、表示された。
みんなで話してみたこと
- Webサーバーって?分かったような、分からないような、、、
講師からのコメント。「いったん動き始めたら動き続けているもの」というイメージはどうでしょう?
私の感想
html・cssはなぜプログラミング言語ではないのか。
(プログラミング言語だという人もいるけど) これまで、もやってたことだった。
どうしてだと思いますか?と問いをもらってちょっと考えたら、すぐ自分なりの答えが出てきた。
問いを意識して考えてみなかったら、ずっとそのままだった。
せっかく分かっているのに分からないと思っているまま、ということになってしまう。
Webサーバーとは?
「Webサービスを提供する場合に必要な共通の機能を提供するもの」という説明を読んで、Linuxの説明によくある図を思い出しました。
「カーネルみたいなもの」ってことかな?
リクエストのレスポンスの流れをあらためて丁寧に追ってみた。
今までは雰囲気でわかっていたつもりが、しっかり落とし込めた。
とても基礎的であらためて考えることもなかったが、実はプログラミングしていくにあたり、とても大切なのかもしれない。
読書会形式(他人と一緒に本を読んでいく勉強方法)
自分に合っているのか、以前から気に入っていました。
まだ、ちゃんと一冊読み終えた経験はなく一部だけなのですが、ひとりでは「分からない無理」と思っていたことが、分かる部分が増えたり、理解が深まったり、自分の考えが持てるところまで行ったり、、、という経験があったからです。
また、自分はwebpakerやyarnについては、「何となくjsのことをやってくれる何か」という認識でさっと終えてしまっていたのを、発表者の方は「よく分からなかったので調べてみました」とのことで、ハッとして自分の態度を振り返りました。
大事にするところやそれぞれの分かりにくいところの違い、ディスカッションが元気よく飛び交う、などにより理解が深まりそうで楽しみです。
rails d コマンド
初めて使う機会でした。間違えて「しまった!」と思いましたが、「あ!試せる!」ことを思い出し実行。便利❗️すごいなぁ〜。