ひろしとRailsチュートリアルと - その1 : 初めてのrails new , Cloud9

Railsチュートリアル開始

前回、Railsを初めたきっかけについてまとめた通り、 初学については色んな人から薦めてもらったRailsチュートリアルをやることにした。

久しぶりにチュートリアルを開いたら、Cloud9で環境構築して開発するスタイルに変わってた。 言われるがままAWSのアカウントでCloud9用のEC2インスタンスを作成。

第1章

お決まりの Hello World! だけが表示されるwebアプリを作成し、Herokuにデプロイまでやる内容だった。

最初からデプロイまでやるのは少しびっくりした。全編通して、Railsの紹介だけではなくgitの操作やBitbucketを使ったgitリポジトリの公開など周辺情報も学べてプログラミング初心者にもうってつけな感じ。自分はgithubのプライベートリポを持ってるのでそっちにpushした。

第2章

scaffoldを使って簡単なwebサービスを一瞬で作って、MVCの流れを体感してもらう感じの内容だった。

学んだこと(とその感想)

  • MVCフレームワーク構成
    • FuelPHP, Vaporで昔実装した経験があったのでここら辺はすぐ馴染んだ
  • has_many, belongs_to でモデル関連付けが行える
    • Active Record神か。。
  • validates メソッドで簡単にバリデーションが張れる
    • Active Record神か。。

参考になったのが、TDD一神教ではなくケースバイケースでテスト駆動にするか途中でテストを導入するかまとめていたコラム。

  • アプリケーションのコードよりも明らかにテストコードの方が短くシンプルになる (=簡単に書ける) のであれば、「先に」書く
  • 動作の仕様がまだ固まりきっていない場合、アプリケーションのコードを先に書き、期待する動作を「後で」書く
  • セキュリティが重要な課題またはセキュリティ周りのエラーが発生した場合、テストを「先に」書く
  • バグを見つけたら、そのバグを再現するテストを「先に」書き、回帰バグを防ぐ体制を整えてから修正に取りかかる
  • すぐにまた変更しそうなコード (HTML構造の細部など) に対するテストは「後で」書く
  • リファクタリングするときは「先に」テストを書く。特に、エラーを起こしそうなコードや止まってしまいそうなコードを集中的にテストする

参考:Rails Tutorial https://railstutorial.jp/chapters/static_pages?version=5.1#sec-getting_started_with_testing

ここら辺、感覚ではわかりつつも網羅的にまとめられた文章は今まで見たことがなかったので参考になった。

Cloud9

f:id:hiroshings:20180430215238p:plain 環境構築の煩わしさを払うためにこのクラウドIDEを推奨された。使ってみたけどよく出来てる。

  • エディタ画面の下にはCLIが組み込まれていて、EC2インスタンスsshなどの設定もターミナルで普通に行える (sudo 使える)
  • cmd + Pでファイルランチャーが開いたりショートカットが多彩
  • 現在のアプリケーションを rails s したらエディタ上でpreviewできる機能が便利
  • Vim記法モードが選べる
  • 補完やIntelliJ製品のようなコードチェッカーがデフォルトで付いてる

不満点もちらほら

  • cmd + wしてブラウザのタブを閉じてしまう(2億回くらいやった)
  • 少しもっさりしてる。特にターミナルエディタ
  • Vimモードでエディタにフォーカスしたらなぜかデフォルトがinsertモード(設定で変えられるかもだけど調べてない)

あと、cloud9のnode.jsのバージョンが古くRailsチュートリアルのコマンドだけでは動かず、別途nvmを使ってアップデートする必要があった。 この記事を参考にした

qiita.com

ローカルですでに、gitコマンドのaliasとかエディタとか整ってるので、この後はローカルで開発するかも..

その他にもクラウドの強みを活かして、複数人で編集できるモードもあるみたいです。

メンターとメンティーでペアプロして、コード触りながら指摘して学習する..みたいな使い方も出来そう。

Cloud9を使った学習サイトできたら面白そう。