Rails検証報告書
日本OSS推進フォーラムという団体がRailsに関する調査結果を公開していたのでメモ。
【元ネタ】
日本OSS推進フォーラム
「RubyTF_Ruby_on_Rails検証報告書」 (PDF:975KB)
おそらくIPOの外郭団体のような立場で、日本の大手SIの技術者がRailsを調査したらしい。
その報告書を読むと、Railsは企業向けにそこそこ使えるが、スケールアップやセキュリティ、技術蓄積にやや難がある、とのこと。
報告書で興味を引いたのは、セキュリティに関する所。
リダイレクト、Web アプリケーション内リンクをSSLにする対応は特に問題なく非常に簡単。
Railsで特徴的なのは、CookieでHTTP セッションを管理できることだろう。
ここの仕組みが非常に分かりやすい。
Railsでは、HTTPセッションをシリアライズ化してCookieに書き込む。
この時、サーバーにもハッシュ値のキーが生成されてCookieのハッシュキーに埋め込まれる。
サーバーのハッシュ値のキーはOpenSSLで生成されるから、サーバーのキーが盗まれない限り、セキュリティは大丈夫だろうと予測できる。
但し、セッションに格納されたデータそのものは暗号化されていないので、個人情報をセッションオブジェクトに埋め込むのは危険。
この部分が重要と思ったのは、セッション管理はWebアプリの盲点だからだ。
Webアプリがデスクトップアプリのように使うには、セッション管理をデスクトップアプリのメモリ管理のように使わなければならないからだ。
セッションをクッキーに残せるならば、画面の状態をクッキーに保存しておけば、Webアプリの古くからの問題である「戻るボタン」「注文ボタンの2度押し」に対応するのは易しいだろう。
報告書にもあるように、この部分はJavaのセッション管理と大きく異なる。
Javaのセッション管理は逐一自分で作らないといけないから面倒だ。
Railsのセッション管理は非常にプログラミングしやすい。
他にはテスト。
JavaのDBUnitのように、テスト用データローダーはYaml・CSVなどに対応しているから、Modelの単体テストに使える。
又、複数のコントローラーを経由したテストもできるから、結合テストに近い操作も可能。
JavaのdjUnitのようなテストカバレッジも、RCovというツールで可能。
すなわち、Javaのテストユニットの機能はほぼ実現されている。
僕の感想は、Railsは丁度Strutsが出た頃に似ているなあ、ということ。
2000年代初頭、JavaによるWebシステム開発にどの技術者もSIも可能性を感じ、Webフレームワークが乱立していた。
そんな頃に、Javaで書かれたオープンソースのWebフレームワークStrutsが出現して、劇的に変化した。
Webフレームワークはこういう風に書けばいいのか、MVC2モデルはこういうことなのか、と感心した事がある。
Strutsも当初はバグ、スケールアップ、将来性など色々言われたけれど、今となってはJavaでは業界標準に近い。
Railsは頻繁にバージョンアップしていて、今も成長途中。
RedmineもRailsのキラーアプリとして非常に可能性がある。
| 固定リンク
「ソフトウェア」カテゴリの記事
- 「RedmineのUbuntu+Docker構築への移行」の感想 #redmineT(2024.11.24)
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのenum型はシングルトンクラスみたいだ(2022.06.20)
- テスラが従来の自動車メーカーと異なるところは工場までソフトウェア化すること(2022.02.09)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
「ソフトウェア工学」カテゴリの記事
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
コメント