Railsの生産性とかDB設計の要否とか
Railsの生産性をめぐるid:habuakihiroさんとのやりとりがありまして、そこで羽生さんのERD本を読んで思ったことや、先週のRubyカンファレンスでのDHHのスピーチなんかから漠然と考えていたことをぜひ書いておきたくなりました。
自動生成(scaffold)について
Railsラヴでいちおう色々と触ってきた立場からの感想としては、DBスキーマからの自動生成はかなりの割合で"客寄せパンダ"です。それを強調して"Javaの10倍の生産性"とやったのはマーケティング手法としてはすごく成功を納めたわけですが*1、scaffoldで自動生成できるのは所詮はそれなりのものだと思ってます。
もちろんバックエンドでのマスタ管理なので、多少UIがティピカルでひねりがなくても速く作ってほしい、という案件には十分役に立ちますし、スペジェネのように自動生成部分を作りこまれた面白いものもたくさんあります。
でもRailsの生産性向上策とかは自動生成とは別のところにあるんではないかと。
RailsでのDB設計
羽生さんからの疑問点その二。DBからビューの自動生成をやるとかやらないとかに限らず、ビュー→DBのジェネレートとかができないんであれば結局ちゃんとしたものをつくるんであれば、ちゃんとDB設計をしなきゃいけないんじゃないのか、そのDB設計だってちゃんとやろうとしたら結構な工数だよ?それで生産性は向上するの?お客さんはハッピーになれるの?という問だと解釈しています。
で、私見での回答。RailsでもDB設計は必要です。これはWebだから基幹系だからにかかわらず。WebならWeb、基幹系なら基幹系なりのDB設計は必要になるのは間違いありません。
そこの生産性をあげるノウハウとして羽生さんのERDレッスンやSQLドリルはすごく役立ちます。必須。もちろん瞬殺できるんであれば別でしょうが、そうじゃないなら必読。私も愛読しています。本日の勉強会に来ていたRails好きの間でも大絶賛です。
オブラブでお会いしたらサインください。どうぞよろしくお願いします。
ちょっと脱線して別エントリへ。
*1:フレームのもとにもなりましたが