hagino3000's blog

平成アーカイブス (更新停止)

会社でRuby on Railsのデモをやったまとめ

大体こんな感じでした。

作業者

若手マネージャ
Rubyについては書籍ベースでの知識のみ、
会社的に開発言語の一つとしてRubyが選択できるように準備を進ようとしている
PPT資料の作成を担当



好き勝手なデモを担当
ただしゃべりたいだけ

内容

若手マネージャが資料を見せながら、まつもとゆきひろ氏、Rubyの特徴、RoRJRubyの紹介を20分くらい。

以降ずっと俺のターン
思いつきでやったので資料無し

  • 完全オブジェクト指向とは?プリミティブ型が存在するJavaとの違いを説明!!
  • カッコは省略できるよ! "=" とか "+" もメソッドだよ!
  • とりあえずrailsのデモをやるよ!開発はeclipseでできるよ!
  • booksっていうテーブルを用意したよ!! desc books!!
  • 規約通りのテーブルってこういうのだよ!!id列がキーなんだ!!
  • 複合キーは使えないよ、複合キー使えない論争はあったけど落ち着いたよ。
  • 論理設計と物理設計でPKが違ってても大丈夫なのはわかるよね!!
  • カラムを見ていこう!!
  • rock_version っていうのは、こういう列を作ることで楽観的排他処理を自動でやってくれるからだよ!
  • created_at っていうのは自動で登録時刻をセットしてくれるからだよ!
  • created_by っていうのは自動で登録者IDをセットしてくれるからだよ!プラグイン入れれば
  • updated_at っていうのは(ry
  • updated_by っていうのは(ry
  • 資料にあったscaffoldってこういう事だよ!!rails2.01で仕様がかわってるね(>_<)
  • ファイルができてるね!!ソース短いね!!
  • javaだとbeanに相当するのがこれ、book.rb、モデルクラスと呼ぶよ。
  • 中身が空だけどgetterとsetterが使えるんだ。詳しい説明は後でするね!!
  • できたソースをwebrick上で動かすよ!開発時の動作確認はこれでOK!
  • もうbooksテーブルへのCRUDができるね。
  • railsにはプラグインが沢山あるんだ!eclipseRails Pluginビューで観てみよう!!
  • 今日はActs as Authenticatedというのを使ってみよう!!
  • 右下のボタン一発でプロジェクトにダウンロード!!
  • 認証用のテーブルを指定してモデルの作成、migrateコマンドでテーブルの作成。
  • コントローラのソースをちょちょいと弄って、、、、
  • さっきのURLにアクセスすると、ログイン画面が表示されるね!
  • アカウント新規作成画面もできているので、アカウントを作成するよ。
  • 作成したアカウントでログイン!!scaffoldで作った画面が見れたね!!
  • これがプラグインの一例、簡単でしょ!!
  • 他にもRSSフィードを吐くとか、openId認証機能とか、QRコード生成とかいっぱいあるよ!
  • でも、仕訳伝票作成とか、帳票出力みたいな機能のプラグインは残念ながら無いんだ(´・ω・`)
  • ともかく、RoRを使えばアプリケーション固有機能の実装にリソースを集中できるってこと。
  • 話は変わって、メタプログラミングの説明をするよ!
  • メタプログラミングってのはロジックを生成するメタロジックを組むプログラミング技法のこと。
  • その逆はハードコーディング。
  • RoRrubyで書かれた理由の一つに、rubyの強力なメタプログラミング力があるんだ。
  • さっき見たモデルクラスの book.rb は中身が空だったけどgetter, setterが使えるね。
  • 何故かと言うと、booksテーブルを検索すると同時にテーブル項目に対応したgetter, setter を動的に実装しているから。
  • これがメタプログラミング、ソースは読み難くなるけど超強力!!
  • さて、時間が押してきた、導入事例は食べログ.com
  • ActiveRecordが自動生成するSQLのパフォーマンスチューニングに時間がかかったみたい。
  • 検索処理っていうのは大体こんなソースだよ!!find_by_sqlメソッドが用意されているのでSQLも書けるよ!
  • そろそろ終わりにしないと忘年会に間に合わないからここまで(>_<)

反省

RoRAJAX対応が話せなかった(´・ω・)