バリケンのRuby日記 RSSフィード

2008-03-04

[][] Ruby on Rails学習の高速道路  Ruby on Rails学習の高速道路 - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  Ruby on Rails学習の高速道路 - バリケンのRuby日記  Ruby on Rails学習の高速道路 - バリケンのRuby日記 のブックマークコメント

僕が考える「Ruby on Railsを最短で覚えるための方法」をまとめてみたよ。

Ruby on Railsアプリの「生きているプロジェクト」を探す

まずはRuby on Railsアプリの「生きているプロジェクト」を探すよ。「生きているプロジェクト」というのは、活発に機能追加やバグの修正がされているようなプロジェクトだよ。こうしたプロジェクトは、たとえばフレームワーク側のバージョンが変わったときにそれに追随するような作業をしたりといったことがリアルタイムに行われるから、コミットログ(どのような修正をしたかのメモ)を追いかけるだけでも勉強になるよ。

プロジェクトからソースコードを入手するには、今はSubversionというバージョン管理ツールを使っていることが多いから、まずはSubversionの使い方を覚えるといいかも。Windowsなら「TortoiseSVN」というSubversionクライアントが使いやすくていいと思うから、まずはTortoiseSVNを使って片っ端からRuby on Railsアプリのソースコードを入手してみるといいと思うよ。

実際に使ってみる

まずはそのアプリを実際に使ってみるよ。それもちょこっと試しに使うくらいじゃなくて、毎日使うほうがいいと思うよ。そういう意味では、自分のPCにインストールして個人的に使っても意味がある「fastladder」とか「Redmine」とかがお勧めだよ。

ソースコードを読んで、気に入らないところを改造してみる

毎日使っていると、「ここがこうだったらいいなあ」というところが出てくるよね。そこで、ソースコードを読んで、気に入らないところを改造してみるといいと思うよ。

もちろん、いきなり改造すると動かなくなったりしたときに大変だから、自分が常用しているものと改造するものは分けたほうがいいと思うよ。

どのURLにアクセスしたときにどのビューテンプレートやコントローラーが使われるかは、config/routes.rbに書いてあるよ。まずはここを手がかりにしてソースコードを読んでいくといいんじゃないかな。

ソースコードを読んでいくうちに、ビューテンプレートの概念とか、その裏で処理するコントローラーの概念とか、データベースとのやりとりをするモデルの概念とかの「MVCフレームワーク」が理解できるようになると思うよ。

何か作ってみる

ある程度ソースコードが読めるようになってきたら、今度は自分で何か作ってみるといいと思うよ。ここで役に立つのが「いろいろなRuby on Railsアプリのソースコード」だよ。いろんなものを片っ端からインストールして、動作を確認して、欲しい部分はどんどん真似しちゃおう。「創造は模倣から始まる」って言うし、いきなりゼロから何か作るよりもそのほうが上達が早いと思うよ。

あとはデータベースの設計とかも、ここで学べるんじゃないかな。

公開してみる

そして作ったものは実際にサービスとして公開してみるといいと思うよ。ここでサーバのメンテナンスとか24時間稼動のシステムの運用の難しさとかプロファイラによるボトルネックの検出とかパフォーマンスチューニングとかデータベースチューニングとかが学べると思うよ。

ブログにエントリーを書く

そしてここが一番大事だけど、今まで書いたようなことを試しながら、「わかったこと」はどんどんブログに書いていくといいと思うよ。書くことで頭の中が整理されて理解が進むし、理解が間違っていたら誰かからフォローがもらえるかもしれないよ。

そのとき、「わからなかった状態から、わかるようになった経緯」を書くようにするといいと思うよ。「○○がわからないからGoogleで○○をキーワードに検索したら○○というサイトに解決策が書いてあって、でもそのままじゃ動かなくて○○したら動いた」とか。

わからなかったらわからなかったで、どこまでやったけどわからなかった、という「いままでやった経緯」をまとめて書くといいと思うよ。やっぱりこれも書くことで整理されてわかるようになるかもしれないし、誰かが答えを教えてくれるかもしれないからね。

勉強は必要になってから

あと、「必要になるまで勉強しない」というのもポイントかも。必要性を感じないことって、なかなか勉強に身が入らないからねえ。勉強が必要だと感じる部分があったら、やっぱりネット上の情報だけじゃなくてその分野の関連書籍を購入してじっくりと勉強したほうがいいと思うよ。

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20080304