FC2ブログ

Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事にトラックバックする(FC2ブログユーザー)
http://katu1109.blog49.fc2.com/tb.php/115-f58d00b1

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

【KatzのRails学習記】すっきり!!


一昨日到着した書籍のうちRails本は3冊。合計で1800ページ弱。
その中から一番、軽そうな一冊「Railsレシピブック 183の技」を読破。

やっとRailsの全体像が把握できました!!あーすっきり。

Railsは、設計思想に

「conventions over configuration(設定より規約)」

を掲げています。多くの規約・前提を設けることで、
データーベースアクセスを伴うWebアプリケーション開発の

「定型的な処理を自動化」

することに成功しています。

例えば、データベースにアクセスして、そのデータを表示・追加・更新・削除する
Webアプリケーションは「ノープログラム」で、できてしまいます。
(※デザインはまったく考慮されていないことに注意。)

ところが、ここに落とし穴があります。

「規約」「前提」を知らないと、開発も保守もできないのです。

例えば、普通(?)のソフトウェアというのは、
プログラムの実行順序、階層構造、関数の呼出し関係、変数のスコープといった内容は、
ソースコードを見れば容易に把握できますが、
Railsの場合は、わかりません。

その理由の1つは、名前を自動的に変換して関連付ける
多くの暗黙の規則があったからでした。

■名前の自動変換・関連付けの例(すべて自動!!)

テーブル名
users
モデル名
User
コントロールクラス名
UsersController
コントロールファイル名
users_controll.rb
View
<%= link_to '', :controller => 'Users' , :action => show %>
各種メソッド
index,show,new,edit,
create,update,destroy
URL
http://www.xxx.com/users/show/1
※UsersController.showメソッドを実行URL末尾の数字は引数

さらに、config/routes.rbの中にある
map.resources :xxx
xxx部分は任意のコントローラ名

というわずか1行のコードは、
自動的に以下のメソッドを生成します。(厳密には生成ではなく動的に解決される)

対応するアクション(=Controller内のメソッド) 自動生成されるメソッド
index 一覧表示 xxx_url、xxx_path等
show/update/destory 詳細表示、更新実行、削除
new 新規作成 new_xxx_url、new_xxx_path等
edit 更新 edit_xxx_url、edit_xxx_path等

なるほど・・・。

こういう前提があるんですね。
これではソースコードを読んでも理解できるはずがありません(!)

Railsは開発フレームワークというか、
Rubyを拡張した新しいプログラム言語といって良いかもしれません。
(少なくともWebアプリケーション用途向けのDSLであることは確か)

とにかく、、、

これらの代表的な規則・前提を把握することができました。
本書に記述されているサンプルの大半は実際に動かせないのが不満ですが、
全体像を把握するには良い書籍でした。

明日は、別の書籍にあたります。こちらも500ページ超え。
内容的には重複も多いと思いますが、いろんな角度・表現で学ぶことで理解が深まります。

あーすっきりした。


【編集後記】
本日はフォーラムの事務局ミーティングがありました。

新たなメンバ秋山さんをお迎えしました。木村さんとは初対面。
6月勉強会の実施要領にはじまり、脱線をまじえながら、
いろんなテーマについて話しました。
あっという間の2時間30分。

藤本さん、秋山さんをお迎えして、5人体制になりました。
あらためて、盛り上げていきたいと思います!!

あ、写真撮るの忘れた(汗
スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
http://katu1109.blog49.fc2.com/tb.php/115-f58d00b1

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

Appendix

便利ツール

中日辞書 北辞郎

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。