2007年8月 2日
アークウェブがRuby on Railsを使う7つの理由
志田です。
今回はアークウェブのRuby on Railsへの取り組みについて簡単に紹介します。
# はてブされやすそうなタイトルをつけてみました。:)
アークウェブでは元々PHPを利用した開発をメインに行ってきましたが、2006年2月25日に「RailsによるアジャイルWebアプリケーション開発」が発売された頃から勉強会や評価をしはじめました。
2006年5月頃に受注したWeb 2.0的なサービスの案件で、Railsを使った大規模なシステム構築に携わりました。この案件の開発は2007年6月までの約1年間も続き、大変多くのことを勉強することができました。
また、この案件をきっかけとして、昨年の前半から社内のシステム開発スタッフ全員がRailsによる開発ができるようになろうという目標を掲げ、本格的に社内勉強会を行ってきました。
勉強会の内容は、Sandbox Wikiの方にまとめられています。
先日リリースしたTwitterのマッシュアップサービス「necoったー」は、私とSEの小沼で開発しました。
(また、現在開発中のTwitterマッシュアップ第3弾もRuby on Railsで構築中です。リリースしたら是非使ってみてください。)
僕たちが感じているRailsのよさは本当にたくさんありますが、Railsを作った本人であるDavid Heinemeier Hansson氏が上記の本の中で述べている「Railsを推薦する理由トップ10」から、とくに実感しているものをピックアップしてみました。
1. Webアプリケーションをアジャイルに開発できる
データベースの構造変更のバージョン管理の仕組みであるマイグレーションを活用することで、リリースをこまめにしていくことができました。
参考) プロトタイピングに効くRoRのDB移行・変換機能 ? @IT情報マネジメント
2. Webページにさまざまな効果を持たせてクールにすることができる
サーバーサイドからJavaScriptを実行させるRJSは、Ajaxアプリケーションの構築で大変重宝しました。
参考) Rubyist Magazine - RubyOnRails を使ってみる 【第 7 回】 RJS を使ってみる
3. フレームワークの世話から開放され、アプリケーション開発に専念できる
Railsは、「convention over configuration」(設定より規約)を特徴の一つとして掲げています。
これまでのMVCフレームワークでは一般的だった、
1. 設定ファイル(XML)をいじって
2. さー、コーディングするぞ
という開発サイクルから開放され、設定ファイルの設定ミスや手間が減りました。
4. アプリケーションが大きくなっても保守性が維持される
MVCはもちろんのこと、helperや、lib、component、partialなど、用途別にコードを書く場所が細かく規定されているので、コードがシンプルに保たれ、他人のコードを読むストレスが少なくなりました。これも助かりました。
5.テストを組み込み機能で簡単に行える
フレームワークを読み込んだ上で、ユニットテストを実行してくれる枠組みが提供されているため、非常に手軽に使うことができます。
網羅的なテストを用意するのはあまりにも大変ですが、疎通の振舞いを書き、簡易に部分実行して確認できるツールとして大変重宝しました。
参考) 勉強会/Railsによるテスト作成 - ARK-Web SandBox Wiki
6. メタプログラミングにより、より高い(人間に近い)レベルでプログラミングができる
たとえば、ActiveRecordが提供する
frind = Friend.find_or_create_by_name("志田")
といったメソッドや、ActiveSupportを使った
now.beginning_of_month.midnight
のような記述を見ると、より英語のような自然言語に近いレベルでプログラミングができると感じます。
7. コードジェネレータがお膳立てしてくれる
scafoldを使うと特定のデータへの一覧表示、追加、修正、削除を行うWebインターフェースの雛形を作成してくれます。
たとえそのデータの「一覧表示」と「追加」しか必要としない場合でも、修正と削除の機能を無効化して、scaffoldで生成されたコードをベースに開発することで、開発スピードも保守性も上がりました。
参考)IBM Ruby on RailsによるWebアプリケーションの高速開発 - Japan
と、いろいろよいところが満載ですが、実は使ってみて今後の課題だと感じる点もいくつかあります。
これについては次の記事で書きたいと思います。
アークウェブはこれからも一層、Railsを使ったソリューションに力を入れて取り組んでいく方針です。
Ruby on Railsによる開発のご相談などありましたら、是非お声がけください。
カテゴリー: Ruby on Rails(システム開発)
タグ: アジャイル , Ruby on Rails
« 前の記事:necoったー:新機能「necoが外出」「necoが友達をつくる」などいろいろ追加しています
» 次の記事:Wii Remote APIの超訳をしてみました
アークウェブの本
Zen Cartによるオンラインショップ構築・運用テクニック―オープンソース徹底活用
内容充実のZen Cart公式本(v1.3対応)がついに発表です。アークウェブのスタッフをはじめZen-Cart.JPの中心メンバーが共著で執筆しました。続きを読む
新着はてブ
カテゴリー
- Shopify(ショピファイ)オンラインショップ構築
- NGO・NPO向け情報
- スマートフォン
- だれもが使えるウェブコンクール
- mixiアプリ
- OpenSocial (システム開発)
- アークウェブのCSR
- A-Form, A-Member, A-Reserve(MTプラグイン)
- Ruby on Rails(システム開発)
- necoったー
- Miqqle
- WebSig24/7
- ecoったー
- ビッグイシュー(The Big Issue)
- CSR(企業の社会的責任)
- マッシュアップ
- RIA (システム開発)
- セキュリティ(システム開発)
- 唐松(アクセス解析)
- Ajax (システム開発)
- テスト(システム開発)
- データベース
- PukiWiki
- Web 2.0
- SEO・サーチエンジン最適化
- XP・アジャイル(システム開発)
- Web・ITニュースクリップ
- Webアクセシビリティ
- Webデザイン
- SEM・サーチエンジン広告
- Webユーザビリティ
- CMS・MovableType
- Zen Cart(オンラインショップ構築)
- Snippy(SNS・ソーシャルブックマーク)
- アークウェブ
- オープンソース
- CMS(コンテンツマネジメント・システム)
- Webマーケティング
- AMP
- SNS