#-

Ruby on Rails Tutorial (3rd ed.) を一周終えた

ぽちぽち続けてきてちょうど 40 日かかったが、Ruby on Rails Tutorial (3rd ed.)(原典)を一周終えることができた。カタチあるものをこうして作ることができ、達成感もひとしおである。

f:id:hashedhyphen:20151120012647p:plain

Heroku に deploy できればいいのだが、SendGrid や AWS を動かすのにクレジットカード(無料の範囲内)が必要とのことなので、近いうちにクレカデビューしようと思う。

また、自機が Windows7 だったこともあり、環境構築やその他でつまづいた箇所がいくつかあったが、それらは Qiita にまとめてみた。Windows 機でチュートリアルを進める方の参考になれば幸いである。

きっかけ

自分が Web の世界に興味を持ったのは、もともと JavaScript が好きだったからだと思う。JavaScript に興味を持ったのは去年ぐらいのことで、そこから React とかを探ってみたりもした。

そんな経緯もあり、最近まではずっと JavaScript が自分の中心にいた。しかし最近になって、「Web ってそもそも何だろう?」という疑問が湧き、それに対して答えられない自分の存在に気づいてしまった。MVC とは何なのかを理解せずして、React が生まれた経緯・意義が分かるわけがない。これから Web と一緒に生きていく中で、今ある自分に限界を感じた(もちろん「Web」という主語は大きすぎる)。

Web に対して自分なりの意見を持てない現状に気づいて、Web に対して真剣に向かい直そうと思った。そのためには、最も基礎に近い開発手法を学んでみようと考えた。「基礎」となると、perl やらを使った CGI なのかもしれない。しかし、Web 開発の基本と MVC モデルの基本を学べるという点から Rails Tutorial を選んだ(CakePHP という選択肢もあったが)。

Rails Tutorial といえば素晴らしい日本語訳もあるのだが、英語の勉強もかねて原典をあたってみた(新卒教育で英語版に取り組ませる企業もあるらしい)。

実際にやってみて

JavaScript ばかり書いてきた自分にとって、Rubyシンタックスメソッドの扱いはかなり新鮮だった。それにもまして、Rails の持つポテンシャルにはただただ驚かさるばかりだった。クラス名や変数の名前を規約にしたり、コンテキストに合わせた変数の解釈、テストのエコシステム、などなど(実際はほとんど何も分かっていない)。多くを規約で縛っても最後には強固なアプリケーションが出来上がる。DHH を始めとする Rails のコミュニティの偉大さを感じた。

ところどころ技術的な雑談も挟まれていて楽しかったし、初めて TDD を経験することもできた。また、セキュリティ面での対策を優先して取り組む構成になっていたので、Web 開発を初めて体系的に学ぶ教材としてはとても良いと思う。

まだまだ Rubyish なコードは全く書けないし、Rails の named route の仕組みなど、腑に落ちていないことが数多くある。ただ、Rails Tutorial を一周終えてみて、MVC や REST など現在の Web アプリケーションの基礎となっているものが、うっすらではあるが見えてきたような気がする。これから自分でアプリケーションを作る際に、Rails Tutorial は何度も見直すことになると思う。