ひろしとRailsチュートリアルと - 最終回 : 軽い気持ちで始めたら結局xx時間かかった

Rails Tutorialを始めてから、ちょうど1ヶ月。 全14章のチュートリアルがやっと終わった 🎉

実は勉強ログをTogglで計測していたので、そのログも載せつつ振り返りしたいと思います。

13章

ユーザーと投稿の1対多の関連付けを実装した。

  • has_many
  • belongs_to
  • モデル生成時、 xxx:references と書くとモデルに belongs_to が実装され、外部キー制約付きのカラムを追加するマイグレーションファイルが用意される
  • Fakerでツイートのseedを生成するのめっちゃ便利

14章

フォロワー, フォロイーの多対多の関連付けを実装した。
複雑なデータモデルの設計を学んだ。

章の最後でモデリングや、生SQLを書いたり、Railsの自動化されて解釈される部分を手でチューニングしたりと、そういうスキルが必要なんですよ と言われてるような発展的な内容で良かった。

  • has_many :through
  • Railsアプリ内でのJS, Ajaxの使い方
  • SQLのサブセレクト

f:id:hiroshings:20180601235229p:plain 作ったTwitterアプリぽいアプリ最終形

まとめ

Togglで計測した勉強ログを見ると合計時間は、 33時間 だった。

f:id:hiroshings:20180601225742p:plain

すぐ終わるだろう。GWくらいには終わってたらいいかなと思っていたチュートリアルだが、結局1ヶ月かかった笑😇
5月中盤は本業のiOSアプリ開発が忙しく、そこらへんでも勉強できてたらもうちょっと早く終わっていたかも

Railsを勉強して

モデルの関連付けやルーティング処理、モデルを参照するViewの描画も、だいたいやるであろう処理は自動でやってくれるパワフルさがある。

欲しい便利メソッドがだいたい用意されている。
例えば、単数形と複数形を出し分けてくれる String#pluralize や日付の操作を簡単にするActiveSupport1.month.ago など 至れり尽くせりな感じ。

1年前にServer-Side-SwiftのVaporAPIを作った時は、色々と自分で準備しないといけなかったので(Vaporも3で色々進化してるだろうけどキャッチアップできてない)、そこらへんは歴史のあるフレームワークのメリットを感じた。

Railsがやってくれる自動な部分を把握することが、これからまず最初の課題になってくると思った。

  • どこまで自動でやってくれるのか
  • 自動でやった場合、どうゆう制約があるのか?
  • 自分で実装した方がいいのか?Rails wayに乗るか

など、都度判断が必要になってきそう

型がないのは辛い。けど、だからこそこれだけパワフルなフレームワークが出来るのであって、そういうもんだと思って順応する

TDDに関しては、章の最初で実装したコードを時間差で章の最後の結合テストで発見できたり、メリットを体感することができて良かった。Ruby自体が型のない言語なので、テストを書いて安定性を担保する開発スタイルを実践しないと詰みそう

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

章をまたいで、2章前にやったことの応用が演習問題に出てきたり、長いチュートリアルの中で反復して学べる部分が多々あってカリキュラムがよくできている。これが無料はすごい。

パスワードリセットの認証やTokenの仕組みなどフロントエンド側のエンジニアとして概念は分かっている部分のサーバーサイドの実装について、実際に実装することで理解が深まって良かった。


久しぶりにコンパイル待ちがない言語で開発して、手元でコードを書くとすぐブラウザで動くサービスが確認できるフィードバックの楽しさを感じれて良かった。

とりあえず長い勉強を乗り越えたので、僕はRailsエンジニアです。と先に名乗って実践の中で経験を積んでいきたい。ぶっちゃけ実践の中でコード書かないと分かった気でいて何もわからん。
6月以降、副業で小さなissueの片付けから実践を積めるのでやっていきたい💪

明日からWWDCなので、しばらくiOS脳に切り替えてがんばる。