SQLに触れた

知人からそろそろSQL触れるようになると良いよとアドバイスをもらい、

久しぶりにProgateをやりました。


そもそも何故SQLの知識が必要になるのか、

その時のアドバイスを元に簡単に図を作ってみた。

左が普段私が練習している環境、右が実際に働き始めてからの環境
f:id:hooonya:20190115235826p:plain
左の環境ではRailsとデータベースが一緒になっている為、

不具合が起きた時にどちらに原因があるか調べるのに時間がかかってしまう。

その為右のように別々に管理することが一般的である。

しかし右のようにするとデータベースに保存されている内容が増えるほど往復回数が増え、

処理が遅くなるなど弊害が起きてくる。

この問題を解決する為にSQLを学ぶ必要があった。


SQLを少し学んだ今の私は例えば「カラムAを参照した後にカラムBを参照して〜」

という内容があった場合、

カラムAとカラムBをjoinで一つにまとめたらいいのかな、と考えることができるようになった。

東京行ってきました

15、16日と東京に行ってきました。


15日
東京に着いてすぐこちらの会に参加しました。

beginner-mokumoku.connpass.com

自分が特に気になっていたどう転職したか、

またどんな風に仕事をしてるかなどを聞くことができあっという間の2時間でした。


16日
前回書いたセキュリティ勉強会の日程が変更になった為プログラミングスクールの説明会に参加しました。

ここでは何をどの順番で学ぶかを知ることができ、

今までふらふらした学習をしていたので、方針がはっきりした。


特に観光することもなく少し駆け足な2日間になったが、

ずっとProgateやRailsチュートリアルをもくもくとやっていた私には素晴らしい刺激になった。

タイミングに恵まれた

今月15、16日に東京にいる知人に会いに行くことになった。

少しでも成長しているところを見せようとRailsチュートリアルの2周目をやっていると、

「ちょうどセキュリティ勉強会あるんだけど出席する?」と連絡が入った。

私はなんて幸運なんだろうと思った。

嬉しい事に事前に知っておくと良い前提知識の一覧をもらえたので、

最近は勉強会に向けて予習をする毎日。

Railsチュートリアルは一旦ストップしてしまったが、

今まで何気なく使っていたインターネット、聞いたことはある程度だった用語、

これらについて理解を深める良い機会になりそう。

Railsチュートリアルをやってみて

ProgateよりもTwitterに近いものが作れると知り、

Railsチュートリアルを丁度前回記事を書いた後に始めました。

そして漸く1周することができたので終えてみての感想だったりを書こうかなと。


解説動画はあったほうが分かりやすかなと思い始める時に購入しました。

実際動画は買って良かったと思いました。

噛み砕いた解説は当然として、

分かりやすいスライド、

実演しながら進めていく形式なので時折起きるエラーとその解消方法、

「何故ここはこう書くでしょう?」のような考える時間等、

動画でしか得ることのできないプラスαが多かったです。


章も多く内容がProgateよりも格段に難しくなっていましたが、

Progateをやっている時によく感じた

「この機能Twitterとかで見るけどどう実装するんだろう」

を次々に知ることができる素晴らしいものでした。

ルートの確認方法

前回scaffoldで自動生成したページのルートはどうなっているのかなと

routes.rbを見てみると

Rails.application.routes.draw do
  resources :books
end

とだけ書いてある。

「getやpostを使わないどころか1行で終わっている???」

どうやらこのresourcesというメソッドの中にルートが定義されてるとのこと。

それを確認する方法が

rails routes

というコマンド

実行してみると
f:id:hooonya:20181106214918p:plain
こんな感じにルートが表示される。


また1から自分でルートを作った場合でも使えるようで

Progateのレッスンでやったもので試したら
f:id:hooonya:20181106220024p:plain
と表示された。


prefixが表示されるので何のルートを作った、作ってない、が分かりやすくなるのも良い点かなと感じました。

scaffoldで自動生成

Railsにはコードを自動生成してくれる機能があると知る。

先日読み始めた本を参考に試してみる。

rails g scaffold book isbn:string title:string price:integer publish:string published:date dl:boolean

と入力し実行

しかし自動生成してくれるといってもマイグレーションは別で実行しなければならないとのこと

ということで

rails db:migrate

と入力し実行

試しにブラウザを開いてみると

f:id:hooonya:20181101205703p:plain
こんなトップページになりました。


自動生成してくれる便利な機能ですが今の私には何をどう指定したらいいか直感的に分からないので

しばらくはrails g controllerで1からやっていこうと思います。

本を手にする

少し前に知人にオススメしてもらい買って読み進めている本

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング

Progateをやったおかげで全体像が掴めたのか悩みつつも楽しく読めています。

単元が細かくなっているので、分からない時に調べる辞書のような使い方ができるのも助かります。