Logs

来世はねこです

大名エンジニアカレッジ 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

bashからzsh問題(これで非常に詰まったことあり)

環境構築の流れ

Xcodeツールをインストール

Xcode全体は必要ないみたい。(iOSアプリ開発したい人は必要。)

先日、Command line tools for Xcodeを入れて本体はアンインストールしてしまったが、問題は起きていない。

Homebrewをインストール

rbenvをインストール

ここまでは準備段階。これのためにはこれが必要、、、が、ずらずら続く。

Windouws関係は、割愛。

Rubyをインストール

Railsのインストール

バージョンに関しての説明(不具合が出た時の対処法)

バージョンを指定したときは、Rails newの時にもバージョンを指定する。

ターミナルで多くのWarning(警告)メッセージ出ることについて

みんなで話してみたこと

  • Ruby on Railsで開発されているサービスで知っているものは?

  • Warningは消すこともできるが、それについての利点・注意するべき点について。 消す派、残しておく派。どちらも一理ある。

  • html・cssはなぜプログラミング言語ではないのか。

 ➡️ 動きがないから?チューリング完全(そのうち調べてみようと教えてもらう。)

第2章「一番小さなRailsアプリづくり」

できるだけ小さい構成のRailsアプリを作ることで、

  1. どのように動作するのか
  2. Railsによって作られたファイルの役割を機能と関連付けて学ぶ。

(1)一番小さなRailsアプリを作る

アプリの作成とWelcome画面

my_web_appsフォルダに作ります。helloworldアプリ。

コラム:rails newコマンドでやっていること。

  1. 必要なファイルとディレクトリィが自動で作成される。よく使われるのは app・config・db

    • app M・V・Cを管理
    • config 設定
    • db
  2. Gem(Rubyの便利なプログラム集)
  3. 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 コマンド

初めて使う機会でした。間違えて「しまった!」と思いましたが、「あ!試せる!」ことを思い出し実行。便利❗️すごいなぁ〜。