はてなキーワード: O/Rマッピングとは
勉強からはじめ10日間ぐらいでひとつのRubyアプリケーションをつくった。
キャッチコピー道場 CatchCopyHacks
ドリコムの運営さんにDBのキャラをLatin1からutf8に変えてもらってようやく日本語が動くようになったので一応公開。
これをつくるまでの詳細な過程は[Ruby]のタグをひいてみてほしい。
http://anond.hatelabo.jp/c/Ruby
RonRに触ってみて思ったことをいくつか書いておきます。
0から作る分には正直それほど生産性は高くないと思う。
ただ、既存プロジェクトの焼き直しやプラグインを活用できるようなケースに限って言えばほぼ設定変更だけで対応できる。10分でつくる***みたいなものは既存のものをナゾルというバッチスクリプティングというような作業。(プログラミングという所作からは遠いかもしれない。)
Ruby on RailsはDRY:繰り返さないことを標榜しているがあれはウソだと思う。
プラグインなどをオーバーライドさせて再帰的に繰り返していくことこそがこの言語の特性だとおもう。
過去のプロジェクトなどの繰り返し。これこそがRailsの本領ではないのだろうか。
プラグインを自作してストックできる体制ができあがったら物凄く生産性をあげることができる。
敷いたレールのうえを突っ走らせるのはものすごく簡単だ。
だが、レールに分岐をつくったり、既存のレールから少しでも外れたことをやろうとすると他の言語よりも苦労をする。
とくにO/Rマッピングは設計から頭を悩ませることになる。
逆にO/Rで何ができるんだという発想から辿らないと設計できなかった。
もし既存のシステムからのリプレイスであったら困難を極めるだろう。
システム会社がRonRを生産性が高いだの、国産だのとの流行で取り入れて、
リプレース案件を請け負ってデスマーチに陥る姿がありありと目にうかんだ。
find_by_sqlを連発せざるをえないシステム。少し想像するだけで怖い。
RailsのMVCは賞賛にあたいすべきものであるが、もしRonRをチームで取り組んだときには担当分担は非常に頭を悩ませることになると思う。Vの部分は分業容易だが、特にCの部分は設計が担当できるレベルのPGが必要になる。
コンシューマ向けサービスのように自らの要件と仕様が近いようであれば回避できるかもしれないが、
客先都合で変更が入った場合RonRのその特性が仇になる可能性が高い。
チームに目的地まできちんとレールをひける人が居ないと間違いなく地獄に落ちる。
その目的地に案内することを客先にきちんとコミットできる人が居ないと間違いなく地獄に落ちる。
まだ1、2年ぐらいはないなという思いを強くした。
コンシューマー向けのサービスをRonRで展開することはできても、人月仕事をRonRでやるにはまだ無謀すぎる。
現状では、やれたとしても単票、マスメン系が限界だ。10人を超える案件にはまだ向かないとおもう。
言語としての難易度は他とそれほどかわらないが、方言というレベルでは収まらないので、
3、4年生レベルのイキのよさそうなところに勉強会にでてもらうとかアンテナ立てておいてもらうより無いのではないか。お金になるのはもういっぽ先だ。
Eclipse経由を諦めてAptana IDEをそのまま使うようにした。
なんかこれは、まんまEclioseなのかもしれない。同じコードから作られてるのかな?
使いやすいよ。
昨日の続きでこれをやった。
Windowsで簡単にRuby on Rails:Instant Rails+Aptana
http://japan.zdnet.com/sp/report/story/0,2000056431,20352478-3,00.htm
まずは、図11のようにテーブル名の単数形である「category」、「recipe」でそれぞれモデルを作成する。「GO」ボタンをクリックするだけだ。
まったくもって何を言っているのかわからない。
そして図11なる画面をどこで呼び出すのかもわからない。
「みちこさん?パソコンを立ち上げるっていうのは縦に置けばいいのかいのぉ・・・?」
つまりはそういう感じだ。
うりうり探してたら、初期表示画面の画面下部のタグにGenerators画面があった。
scaffoldって絞首とか処刑とかそういう意味じゃなかったっけ?
で、なんなんだ!?
なんだかよくわからないまま連載終了。・・・くっ。
Aptana Eclipseプラグインで始めるRuby on Rails
http://blog.codezine.jp/editor/2007/06/aptana_eclipseruby_on_rails_1.php
前にも見たことがあるこれにもどってきた。
現段階の環境構成でAptana IDE経由でRubyのHello Worldを試す。さくさく。
おー。
この一連のコラムが、いままでの中で一番わかりやすかった。(目次はわかり難い)
http://blog.codezine.jp/editor/2007/08/ruby_on_railsscaffold_1.php
Aptana IDEのブラウザ内臓ってどこから呼び出すんだろ?
→下部WindowにあるServerタグのところにアイコンでLunchBrowserというのがあった。
設定ついでにワークスペースにエンコードの設定の欄を発見。utf-8に変換した。
(エンコードの状態をステータスバーなどに表示させておく方法はないのだろうか?探したが見つけられなかった。)
Generatorsタグが消えてしまった。
→パースペクティブがRubyになってた。これをRuby on Railsに。
Rake tasksを実行したりするとGeneratorsのプルダウンが出なくなる。なんでだろう?
なんとかならないものか。
http://blog.codezine.jp/editor/2007/06/ruby_on_rails_migration1.php
RailsではmodelファイルはDBのテーブルと対になります。
いわゆるO/Rマッピングというやつです。
へーーー!!そういう意味だったのか。
IDE系統でメモリ食ってるのかな?落とすと300MB近くあく…。
1Gまでもっていかれちゃうと終了もままならなくなるので注意が必要そう。
Hello worldレベルでこんなんなってちゃ世話ない。
複数を組込むにはどうしたらいいのだろうか。
さすがにheader/detailでDB参照したい。
追記:なんか少し調べたけどもしかしてRuby on RailsってO/Rマッピングオンリー…?
そんなまさか…。いや、いくらなんでも…。
http://www.web-career.com/seminar/ruby_on_rails.html
作る内容をもっとシンプルなアイディア勝負なヤツに変えようとおもう。