はじめてRailsを実行した日、コードを書いていた私が'ウェブを作る人'に変わる
プログラミングを学ぶと
頭の中でぐるぐる回る考えがある。
「いつか私も…
本当のウェブページを1つ作れるだろうか?」
画面に私のコードが作り出した何かが現れる瞬間。
誰かが私のURLにアクセスし、
世界のどこかで私が作ったものを見るというその感じ。
これは単なる技術ではなく、
ほぼ存在論的な衝撃に近い経験だ。
そしてRailsはその最初の体験を
最も速く、最も劇的に、最も感動的に作り出してくれるツールだ。
Rails newコマンド1行が開く世界
はじめてRailsを起動するとき、あなたは
この1行を入力する。
rails new myfirstapp
エンターを押す瞬間、
ターミナルに膨大な量のファイルが生成される。
フォルダ、ルーター、モデル、コントローラー、ビュー…
ただのコマンド1行だったが、
突然あなたのコンピューターの中に
1つの小さな宇宙が生まれる。
数秒前まで何もなかったが、
今はウェブサービスの種が誕生している。
その瞬間理解する。
ああ…ウェブサービスの基盤はこうして作られるんだな。
rails server — ウェブが生き動き始める
次のステップはいつもこんなに簡単だ。
rails server
そしてブラウザを開いて以下のアドレスに入る。
http://localhost:3000
そこにはあなたが作った
最初のウェブページがある。
何のデザインもなく、
何の機能もないページだが
"Connected"と書かれたその画面は
あなたに語りかける。
"あなたは今、ウェブを作ることができる人になった。"
これを初めて見た人の中で
心臓が躍らない人はいない。
今まで学んだRubyがRailsの中で'ウェブの言語'になる
あなたはRubyで
メソッド、クラス、繰り返し、条件、モジュールを学んだ。
最初は「これをどこに使うの?」と戸惑ったかもしれない。
しかしRailsではこれら全てが
ウェブサービスという1つの生命体を作る。
URL → コントローラー
コントローラー → アクション(メソッド)
アクション → モデル呼び出し(クラス)
モデル → DBデータ
ビュー → 結果をHTMLで出力
ウェブページ1枚が
今まで学んだ概念で正確に構成される。
だからRailsは言う。
"今まで学んだ全てを
単にウェブに拡張してみるだけさ。"
この瞬間読者は気づく。
"ああ…星を描くこと、二重ループ、クラス作成を
単なるおもちゃでやったのではなかったんだ。
これが本当のウェブになるんだ。"
Scaffold: 自分が作った世界が目の前に現れる魔法
Railsが特別な理由の1つは
"巨大な機能をわずか数秒で作る体験"を提供する点だ。
例えば
ブログ記事(Post)を管理する機能を作りたいとしよう。
その時Railsではこう言えばいい。
rails generate scaffold Post title:string body:text
rails db:migrate
そして再びブラウザでこのアドレスに入ってみる。
http://localhost:3000/posts
そしてあなたは衝撃を受ける。
記事一覧ページ
記事作成フォーム
記事表示ページ
記事編集ページ
記事削除機能
DBテーブル作成
ルーティング設定
MVC全体構造
これら全てが
30秒で完成したものを見る。
その瞬間あなたは立ち止まって考える。
"ちょっと…今さっき私がブログサービスを作ったのか?"
そう。
そうだ。
あなたは本当に作った。
4行のコマンドだけで。
そしてその時からは
もはや"開発を学ぶ人"ではなく
"ウェブを創造できる人"になる。
Railsはまるで'自動車運転'を教えるようにウェブを教える
運転を初めて学ぶとき
エンジンの内部構造を全て知る必要はない。
ハンドルを回し
ブレーキを踏み
アクセルを踏むだけ知っていれば
車はあなたが望む方向に動く。
Railsも同じだ。
URLリクエスト処理
DB保存
画面出力
CRUD機能
この基本だけ覚えれば
ウェブサービスが動き始める。
そして後に必要になれば
エンジンを分解し、深い構造を理解し、性能をチューニングする。
しかし入門時点では"動く体験"をすることがはるかに重要だ。
Railsはこの感覚を誰よりも速く提供する。
あなたが今Railsを味わっているということはウェブという世界全体が指先から広がる体験だ
コーディングを学ぶ人にとって最大のモチベーションは何だろうか?
それは非常に単純だ。
"私が作ったものが画面に現れる。"
この瞬間ほど人を変える体験はない。
単なる文法を学んでいた人が
自分の手で
誰かに見せる'何か'を作った人になる瞬間。
その感情はほぼ芸術創作と似ている。
Railsを学ぶ瞬間、あなたは単なる開発者ではない。ウェブを作る人だ。
Railsはあなたを速く
ウェブという世界の中心へ連れて行く。
URL
データ
画面
ユーザー入力
保存
編集
削除
フロー制御
設計
これら全てが
互いにつながった1つの構造として見え始める。
何も知らなかった人が
rails new、rails server、scaffoldコマンドを打って
自分だけのウェブサービスを作り始める瞬間。
それは技術を学ぶ瞬間ではなく、
世界創造を始める瞬間だ。
そしてあなたは
その創造過程の第一歩を踏み出した。