Ruby on rails の概要と可能性を数分で【覚書】


 

何を目的にしているか?

Webサーバのアプリケーション開発(構築部分やhttpサーバ部分はあまり含んでいない)

ポジション

Apache Webサーバの Webサーバ部分も含めた コアなアプリケーション。

小~中規模(twitterも当初 railsだったらしい)

一番何が嬉しいか?といえば

データやビューのコントロールを含めた Webサーバのアプリケーションの雛形が素早く構築できる
(scafoldで足組み、rpm,gemで ライブラリのインストールが半自動化)

特徴(可能なことの境目)

メリット

  • ルーティング機構を備えている(RESTfulなフレームワークに対応可能)
  • テンプレート機構を備えている (htmlテンプレートに jspやphpのように埋め込み可能)。ただしwordpressのように、ヘッダやフッタなどの管理機構は自前で作る必要がある。
  • 製品のプロダクト環境、開発環境、テスト環境を意識した環境管理機構
  • データモデル管理機構(DB連携)と、移行を意識したマイグレーション手順(ハッシュやタグ、json形式で直感的なデータハンドリングが可能)
  • Webアプリケーションに使える単体・統合(画面遷移レベルのテストフレームワーク
  • 開発言語として rubyのようにスクリプト言語でコーディングレベルでは効率的な開発ができる。
  • セキュリティ機構として、セッション管理CSRF、サニタイジングやバリデーション機能の装備(もちろん、rubyとして md5 や、base64エンコード処理、cookieを使いやすくするライブラリ)、セッション管理はまだもう少し。今は多少こなれてきているところに見える(CookieStore,ActiveRecordSessionStoreなど)。

デメリット

フレームワークの問題として、特にコントローラ周りで幹の部分が見えづらい。またスコープもわかりずらく、この部分で学習コストが掛かりそう。つまりあまりコントロールしないのであれば速く構築できそうだが、コントローラで連携させたい場合、調べるのに時間がかかりそうなイメージ。

上記のため、巨大サイトを管理するのは難しい。あまり連結しない、シンプルなデータモデルである必要があるとおもう。

運用周りとして、ログ(rubyのlogger?はあるらしい)、ログイン(認証、認可)、監視などはほぼ無いので作りこむ必要がある。

速度性能について、スクリプト言語であるため、 Tomcat , Apacheに比べたら遅い Servlet の 約 1/16.。つまり、スケールするときに、インフラコスト10倍以上かかる。

ライブラリ等、変化が早いため、長期間開発・運用するには、学習コストがかかる。

Webサーバの機能はほぼ無いので、 自前で作るか、プロキシやロードバランサーなどで 運用対処は必要そう(Gracefullyな更新など)。

まとめ

長期、安定性、巨大 なものを必要でなく、シンプルなデータならば、シンプルにWebアプリケーションで活用できる。雛形まである程度すぐできるので、そういう試しに作ってみておくような、使い方におすすめ。

PHPよりはフレームワークとして整っているけれども、Apache Webサーバに比べたら機能が貧弱。Web部分もTomcat等に比べて速度もフレームワークももの足りない。雛形生成機能やRubyでコーディング効率はある程度稼げるが、Webアプリケーションとして(見せて良いデータのハンドリングのケースなど)認証周りやコントローラ周りを含めて考えると、まだ使いドコロは難しい。

立ち上げは簡単だが、Rails内で込み入ったことは厳しそうな予感。

あまりデータモデルもいらないのであれば、Node.jsが対立候補に上がってくる。

 

Delicious にシェア
Digg にシェア
reddit にシェア
LinkedIn にシェア
LINEで送る
email this
Pocket

188 views.



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です