のほほんおじさんのアウトプット

インフラエンジニア。 マリノス・美術館・編集工学・AWS・ウイスキー・いぶりがっこ・タルタルが好きです。好き勝手やっていこうかなって気持ちです。

Railsチュートリアル 体験記 第1章やってみてのまとめ

そもそもなぜRailsチュートリアルをやったのか

『完全SIer脱出マニュアル』を読んでの感想ということで、おじさんエントリーを書いたところ、たくさんの反響をもらえました!ありがとうございます。 

kothiba538.hatenablog.com

でも正直なところ、次に何をすれば良いの分からない、、、このままでは、Blogも一日坊主で終わってしまう、、、 

取りあえずRailsチュートリアル

ということで、『完全SIer脱出マニュアル』に書いてあった通り、Railsチュートリアルを開始してみました。 

railstutorial.jp

何をしていいかわからない、そんな時はオススメの意見を素直に聞いて、まず行動する。

すると行動することで心が落ち着いてくる。

その結果、何をしていいかわからないとか考えていたことすら忘れていく。

そんな流れが良いのではないかな、と思います。 

とはいえ、自分にRailsチュートリアルなんてできるのか?

プログラミングはこれまで挫折しか味わったことないぞ、、、 

これまでも何度かウェブフレームワークを触ろうとしては、MVCモデル?よくわかんないよっ、、、て感じで挫折してきたけど、今回はどうでしょうか? 

そもそも、これまではプログラミング習得しても作りたいものないしなとか思いながら、なんとなくやっていました、、、 

でも、今回の目的はチュートリアルをやって、その過程をアウトプットすることにしようと決めていたので、目的を明確にすると色々と進めやすいですね。

なので、そんな感じでチュートリアルすすめてみると、なんとか第1章を完了させることができました。

第1章でやったこと

  これは、Railsチュートリアルをやったことのある人やオススメする人は百も承知なんでしょうが、そもそもRailsチュートリアルと評しながら、この1章でやることってRailsだけじゃないですよね。  

AWS Cloud9を利用すること

ここで『AWSをはじめよう』本が大活躍

techbookfest.org

そもそもAWSとか使うことの一番の障壁は、いつの間にか課金されていたらどうしよう、という恐怖感ではないでしょうか。特に自分のようなAWSに詳しくないおじさんはそうです。rootを使うな!とかよく聞きますが、じゃあどうすればいいの?って思っていました。

そこで「AWSを使い始めたら最初にやること」がとても役に立ちました。このポイントさえ押させておけばAWS使っていても一安心だ、と思える情報の決定版ではないでしょうか。

  • IAMでrootとは別のユーザを作る

  • MFAを利用した2段階認証を設定する

  • CloudWatchで万が一課金が発生しても2ドルで気づくように設定する

  • Cloud Trailで誰が何をしたか記録しておく

この辺りを設定するとCloud9も安心して利用できます。あとCloud9はしばらくする(30分操作がない)とインスタンス停止するようで 、これも安心感がもてます。

gitを利用すること

gitもおじさんにとっては聞いたことあるけど詳細は、、、って感じのものの一つですよね。仕事でgithub使ってます!みたいな状況でもないので、、、

ただ個人的には、gitについてはある事情で事前に触れていたので、このチュートリアルの範囲のことはさして難しくなかったです。その事情とは、お友達の技術書レビューをGitHubで行っていたという事情です。

techbookfest.org

このレビューがあったおかげで技術書展5に行ったという事情もあり、「インフラチョットデキル人」いつも刺激をありがとうって感じです。

Bitbucketを利用すること

これは上記同様で、GitHubでやっていたのでそれがBitbucketになっただけって感じがしました。

Herokuを利用すること

これまでもHerokuは触ったことがなかったですが、今回の範囲は難しいことではないですね。ちなみに少し調べると、Herokuも30分間アクセスがないとsleepするので課金されない安心感はありますね。

つまづきポイント

  • 1.3.3 Model-View-Controller (MVC

これは今まで理解できず挫折してきたのだけど、今回は理解できた気がします。それは、最近になって知識がついたというよりは、今までの蓄積がようやく実を結んだという感じな気がします。

URLのどこにきたら、どのHTMLを表示させるのか、そしてそのHTMLはどのDBからデータを読み込むものなのか、なんていうのを分けて考えるのがMVCなのかな。URLを振り分けるルーターとかDBとのやりとりを行うModelとか、その辺りを仲介するコントローラーとか、なんだか理解できた気持ちになっています。

  • 1.4 Gitによるバージョン管理 

たいしたことないとこだけど、ここでハマった、、、 

    $ git config --global user.name "Your Name" 
    $ git config --global user.email "your.email@example.com" 

emailにも" "が必要だった

  • 1.4.3 Bitbucket 

リスト1.11 がうまくいかない

   $ git push -u origin --all 

これがうまくいかない 

 原因:Bitbucket上で先にリポジトリをつくっており、さらにそこでReadmeをつくってしまうとそれが最初のコミットになるから 

www.wakky.tech

これにしたがって

 $ git fetch
 $ git merge origin/master

 でもまだうまく行かない。fectchで対応したけどその後に「 rejectedエラー」が出ました。

qiita.com

 $ git merge --allow-unrelated-histories origin/master

なにやら--allow-unrelated-historiesを指定しない限り,無関係なヒストリを持つ2つのブランチをマージすることはできないらしい。

そしたら次は、conflictした、、、 とりあえず両方残すで対応して、ようやく

 $ git push -u origin --all

うまくいった!!

まとめ

ウェブフレームワークを利用したコードとそれをデプロイするまでの一通りの流れを体験できたのはとてもよかったです。 

自分みたいなおじさんにはRubyの文法がどうとかよりは、まずこうしてプログラミングをしてアプリケーションを公開していくのだ、という概要が知れることは目的がわかりやすくてとても良かったです。そして実際に手を動かしつつ形にしていって、結果として目に見える形になるって事はとても刺激的なことなんだなと実感できました。