railsチュートリアル（やってみようシリーズ）

# 【前置き】
PlayFrameworkでMVCの感覚を掴んだ！RubySilverで基本文法的なのは抑えた！
じゃあそろそろrailsチュートリアル。

遅いなんて事はない、アクション起こす事に意味があるのだ（前向き精神

# 【本題】
そんなこんなでやってます。
客先常駐だと外部ネットも使えない成長できない現場なので、土日ぽつぽつやってます。
恐らく2週間あれば行けそうです。2章くらいまでやって動き的にはPlayFrameworkと同じ感じなので掴みやすいと感じました。

1章　ばいばい世界！
https://frozen-coast-19227.herokuapp.com/
ここまではplayと余り変わらず

【railsチュートリアル抜粋】https://railstutorial.jp/chapters/beginning?version=5.1#cha-beginning
・Ruby on Railsとは、Web開発のためのフレームワークであり、Rubyプログラミング言語によって記述されている。
・事前設定済みのクラウド環境を利用することで、Railsのインストール、アプリケーションの生成、生成されたファイルの編集を簡単に行うことができる。
・Railsにはrailsという名前のコマンドラインコマンドがあり、rails newで新しいアプリケーションを生成したり、rails serverでローカルサーバーを実行したりできる。
・コントローラのアクションを追加したり、ルートルーティングを変更したりするだけで「hello, world」アプリケーションを作成できる。
・Gitによるバージョン管理を導入し、Bitbucketの非公開リポジトリにプッシュする理由は、データの喪失を防止し、他の開発者との共同作業を行えるようにするため。
・作成したアプリケーションをHerokuの本番環境にデプロイした。

感想：大体想定通り、BitbucketとHerokuった事がなかったのでとっても為になる。todo:bitbucketの使い方は見直しを行いたい。


2章　えんじにあのおもちゃ　
https://whispering-reef-35418.herokuapp.com/users
https://whispering-reef-35418.herokuapp.com/microposts
indexにusersとmicroposts交互に移動出来るように改修したい感ある。

【railsチュートリアル抜粋】https://railstutorial.jp/chapters/beginning?version=5.1#cha-beginning
・Scaffold機能でコードを自動生成すると、Webのあらゆる部分からモデルデータにアクセスしてやりとりできるようになる
・Scaffoldは何よりも手っ取り早いのがとりえだが、これを元にRailsを理解するには向いていない
・RailsではWebアプリケーションの構成にMVC (Model-View-Controller) というモデルを採用している
・Railsが解釈するRESTには、標準的なURLセットと、データモデルとやりとりするためのコントローラアクションが含まれている
・Railsではデータのバリデーション (validation) がサポートされており、データモデルの属性の値に制限をかけることができる
・Railsには、さまざまなデータモデル同士を関連付けを定義するための組み込み関数が多数用意されている
・Railsコンソールを使うと、コマンドラインからRailsアプリケーションとやりとりすることができる

感想：自動生成出来るのは知ってる。MVCも知ってる。routesも知ってる。マイグレも知ってた（playだとエボルーション）バリデーションも知ってた。(playだとアノテーション）RESTfulって単語を初めて知った。（GET、POSTで大体行けるよねって感覚だった）関連付け周りは慣れとかもっと知識必要だよね。
ここまではplayで触ってた範囲、ここから本番

3章　うごきのないぺーじ
https://nameless-retreat-99053.herokuapp.com/
https://nameless-retreat-99053.herokuapp.com/static_pages/home
https://nameless-retreat-99053.herokuapp.com/static_pages/about
https://nameless-retreat-99053.herokuapp.com/static_pages/help
https://nameless-retreat-99053.herokuapp.com/static_pages/contact

【railsチュートリアル抜粋】https://railstutorial.jp/chapters/beginning?version=5.1#cha-beginning
・新しいRailsアプリケーションをゼロから作成したのはこれで3度目。今回も必要なgemのインストール、リモートリポジトリへのプッシュ、production環境まで行った
・コントローラを新規作成するためのrailsコマンドはrails generate controller ControllerName アクション名 (省略可)。
・新しいルーティングはconfig/routes.rbファイルで定義する
・Railsのビューでは、静的HTMLの他にERB (埋め込みRuby: Embedded RuBy) が使える
・常に自動化テストを使って新機能開発を進めることで、自信を持ってリファクタリングできるようになり、回帰バグも素早くキャッチできるようになる
・テスト駆動開発では「red ・ green ・REFACTOR」サイクルを繰り返す
・Railsのレイアウトでは、アプリケーションのページの共通部分をテンプレートに置くことでコードの重複を解決することができる

感想：コントローラー自動生成を初めて行った。ルーティングは知ってた。ERBは知ってた（playだと@main{～}でテンプレートに値をガシっと入れる仕組み。）TDDについてはプロRubyでやったが静的ページだと初。私の場合簡単なのは作ってもいいかもだが難しいのだと行き成りテスト書けなくね？って思ってる。慣れが必要そう。Guardは初知り、railsのgemでテストの自動化をしてくれるらしい。ページテストの自動化って一体何！？って思ったらファイル変更掛るたびに書いたテストコードをばっしばっし叩いてくれるっぽい。恩恵を感じたい。

4章　Rails風味のRuby
https://github.com/lunalice/RubyChallenge/tree/master/ruby_book/lib/example.rb
更新完了

【railsチュートリアル抜粋】https://railstutorial.jp/chapters/beginning?version=5.1#cha-beginning
Rubyは文字列を扱うためのメソッドを多数持っている
Rubyの世界では、すべてがオブジェクトである
Rubyではdefというキーワードを使ってメソッドを定義する
Rubyではclassというキーワードを使ってクラスを定義する
Railsのビューでは、静的HTMLの他にERB (埋め込みRuby: Embedded RuBy) も使える
Rubyの組み込みクラスには配列、範囲、ハッシュなどがある
Rubyのブロックは (他の似た機能と比べ) 柔軟な機能で、添え字を使ったデータ構造よりも自然にイテレーションができる
シンボルとはラベルである。追加的な構造を持たない (代入などができない) 文字列みたいなもの
Rubyではクラスを継承できる
Rubyでは組み込みクラスですら内部を見たり修正したりできる
「deified」という単語は回文である

感想：RubySilverでやったもののおさらい。メタプロが出てないのでGOLDレベルじゃない。多言語から来た時わかり辛いブロックとか、各演習が基本を抑える形で配備してあっていい感じです。補足Stringのメタプロ出てました。大いなる力には大いなる責任が伴うってスパイダーマン好きなんですよね

５章
実施中

続々更新予定

# 【後書き】
Playやっててよかったぁと感じる瞬間もあり、のちのちやろうと思ってたherokuデプロイとかも出来て物凄く為になりますねこのチュートリアル・・・早くやればよかった。DjangoもだけどWEBフレームワークってほぼリアルタイムに動くものが作れるので凄く楽しくてモチベアップになりますよね！慣れれば行けるかなぁといいつつ客先常駐だと慣れる暇もないんだよなぁ・・・

6/3
土日で面談。帰宅後コーディング、4年前くらいのwindows＋レオ○○○というクソ環境で夜になると何もできない状態（通信167kbとか本当に＾＾；）になっていてwimaxとmacの購入を決意、そろそろ新モデルでるんじゃね？って思いますが、次で32GBメモリになるのは決まってるが課題がある為来年になりそうって事なので待ってられないと16GBにカスタム注文しました。転職先決まったらギークハウスとか探そうかなとか思ってるんですが、どっちにしろMAC持ち歩くと回線ないとつらいよなぁって事でwimax導入さらばレオファッキュー。職場の場所によると思いますが、いい感じの所あればいいなぁ。今の職場が往復2時間30分かかる上に満員電車でその合間ぬって面談行ってへたすると休日にも面談してって時間はいくらあってもたりない。引っ越さないんですか？とか言われるんだけど何もわかってない。3ヶ月後にはまた反対方向1時間とか普通にあるからこれだからSESはクソ。何が言いたかったかというと時間なかとです・・・。
6/9・１０
家事とコーディングポチポチ。WIMAXが届く⇒夜間通信速度が165kbから25mbに。しかし使用容量が大きく別の課題が・・・（クラウド系で通信くっそ使ってる？
家事と生活日用品の買い物。MACは明日らしいけど業務があるのでうけとれまてん。
AWSが諸事情より初期化されサルベージ作業を行う。今週末は進捗が思わしくない・・・

【無期限〜移動まで】
直近のやらないと行けないリスト（ざっくりと優先順位
・退社交渉（100%）※提出完
・内定回答（100%）よろしくお願いします
・引越し先探し（身辺整理）（100%）完
・退室手続き（90%）立会いで終わり
・ビジネスカジュアル的な私服（客先常駐だとスーツしかないのだ・・・）（80%）
・MACチューニング（100%）一旦完了・都度チューニング
・ハードコンタクト（導入出歩き）（100%）大分慣れて来た
・Railsチュートリアル（45%）
・関連書籍読＋手を動かす（70％）
・帰省（報告と見舞い）（100％）長生きしてください・・・
・各種住所変更手続き（100%）
なんとこれを土日で消化していかなければならない。

現職と転職先やっとこさいい感じに折り合いが付き後はお約束通り働いて移動しましょうって事で一旦終わり、届を提出してから100%にする。
親に一報入れた所、病気発覚して辛い気分に。
本は引越しの際重くなるから買わないとか言ってたが40冊近く買っていたので（全部参考書＋資格本）荷物を纏めて引っ越し準備。
去年から通ってた歯医者がもう3ヶ月くらい来なくていいよ宣言頂いたので終わり。
コスパ（主に時間）からハードコンタクト導入始め、慣れるまで3ヶ月かかるらしい。
railsチュートリアル中途半端だった4章終わり。結構時間かかってしまって辛い。

日頃外部ネット使えない穴は書籍リーディングで埋める。手を動かしたい所なんだけど・・・
内容ぺらいけどRuby on Rails 5 超入門読んでます。 
結構前に買ったので最近のだと「たった1日で基本が身に付く! Ruby on Rails 超入門」がお勧めされてるのでアマゾンポチっとこう。ついでにdockerもポチる。
学習は最初さらさらって読んで作って二週目で気になった所読んで作って三週目で身につくと思ってるので最初さらさら後ぱっぱ

金１３時間の夜勤後帰省
課題：実家だとwimaxの速度１mしか出てなくてあかん