2011.01.27 · 技術と道具

Ruby on Railsを数日使ってみた感想(生産性について)

今やっている仕事が比較的使い捨てチックなリクエストだったので、試しにRuby on Railsを使ってみることにした。このリクエストを受けた当初はJava+Seaser2+Doltengでやっていたのだけど、なかなか生産性が上がらないので途中で切り替えた。

私はRubyでLinuxZaurusアプリを開発していたりもするので、Railsを知ったのも早かった。しかし、いつかやろうと思ったまま何もやらずに今に至る。それで、この数日はRailsの勉強をしながら開発に熱中した。その感想。ちなみに、環境はふつうのRubyではなく、JRubyをWindows上で動かして開発した。本番環境はLinux+Tomcatである。

たしかにRailsの生産性は高い。Seaser2+Doltengも、ふつうのJavaとかHibernate+Springとかに比べると結構生産性が高いのではないかと思うのだが、Railsは明らかに上回る。Seaser2+Doltengで2日くらいかかった作業をRailsだと1日で終わる。

Seaser2+Doltengでの開発では、テーブル設計をEclipseプラグインのERMasterを使って行い、そこではき出したSQLでMySQLにテーブルを作り、DoltengでScaffoldを作るという順序をとった。これが最も生産性が高いように思う。ただ、テーブル定義を少し見直すとScaffoldを作り直すか、ソースのあちこちに手を入れなければならない。これが生産性を下げるネックだった。で、Viewの方はAjaxを含めてTeedaを使う予定だったのだが、そこに取りかかる前にRailsに切り替えたので、よく分からない。

一方、RailsではScaffoldを作るときにモデルのデータ項目と関連を決める。Scaffoldではテーブルを作るSQLもはき出すので、それをMySQLに反映(マイグレーション)する。テーブル定義を変える場合、それが大がかりならScaffoldを作り直した方が速いが、数項目の追加程度ならMySQLのテーブル定義を直接変えた方が速い。Railsで出来るモデルのソースには項目名が記述されないのでモデルの書き換えはいらない。(もちろんViewの書き換えは必要だが)

Seaser2+Doltengは自動生成とは言ってもそれはソースの自動生成に留まる(いまのところ)。一方、Railsの自動生成はソースの自動生成と併せて実行時の自動生成まで含むので、そこが生産性の違いに直結する。

私は、今やっている仕事をどうやら期日中、いや期日より少し早くやり遂げられそうだ。それは、Railsのおかげによるところが大きい。とはいえ、Railsでもはまるポイントはある。それはまた、次回書くことにしよう。

2011/01/27 08:18
← Let'snote CF-J9のハードディスクを換装しました
今日のツイートを掲載するのをやめました →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。