プロファイリング&テスト機能がポイント
Ruby/Rails用IDE「3rdRail 2.0」は開発を効率化するか?
2009年1月に発表された「3rdRail 2.0」。初のメジャーバージョンアップとなる本製品は、これまでとはどう変わったのか? 新機能や既存機能の強化点など、開発者が気になる機能を実際に試してみた。
Webアプリケーションフレームワーク「Ruby on Rails」の統合開発環境(IDE)である「3rdRail」の新版「3rdRail 2.0」が2009年1月20日、エンバカデロ・テクノロジーズから販売開始された。
3rdRail 2.0はEclipseを基にしたIDEで、最初のバージョン「3rdRail 1.0」から数えて3世代目の、初のメジャーバージョンアップ製品である。3rdRail 2.0はこれまでとはどう変わったのか? Windows Vista Home Premium(SP1)環境にセットアップして試してみた。
Ruby on Railsの進化をキャッチアップ
IDEの土台となるEclipseプラットフォームには、前バージョン「3rdRail 1.2」と同じものが採用されている。見た目や操作感などの基本的な部分については、全体的に大きな変化は見られない。また、今回から新たに「Ruby on Rails 2.1」がサポートされた。2008年末にリリースされた「2.2」には対応していないが、開発サイクルの早いRuby on Rails(以下、Rails)の進化に着実にキャッチアップできているといえる。
TurboRDK
今回の新版では、付属するRuby/Railsの実行環境が新しく「TurboRDK」に置き換わった。TurboRDKでは、Ruby/Railsの開発を行うために必要なパッケージがプリインストールされており、インストーラの指示に従うだけで必要十分なRuby/Railsの実行環境が整う仕組みになっている。下の画面は、TurboRDKによってインストールされるRubyのパッケージ一覧である。
また、前バージョンのRuby実行環境に比べて、導入されるパッケージが格段に増加している。「Merb」や「Rack」といった、Rails以外のWebアプリケーションフレームワークが追加されている点も興味深い。
さらに、Textile形式のドキュメントをHTMLに整形する「RedCloth」、Rubyにおける画像処理を可能にする「RMagick」など、Railsと組み合わせて使えるライブラリが多く追加されている点も見逃せない。そのほかにも、Windows版ではRubyファイルに対する関連付けをWindowsに設定できる点など、細かな部分でより使い勝手を良くする工夫が施されている。
インストール方法やインタフェースに大きな変更なし
3rdRail本体のインストーラについては、従来と同じく「Install Anywhere」が用いられる。インストール先の選択以外に特別なカスタマイズ項目は存在しないので、非常に簡単に導入できる。
3rdRail 2.0のユーザーインタフェース部分については、従来と大きな違いは見受けられない。変更点としては、新機能である「R Optimizer」や「ビジュアルテストランナー」などのツールバーボタンやコンテキストメニュー、プリファレンスメニューなどが追加されている程度だ。そのほとんどのインタフェースは、従来のものを踏襲している。これまでに3rdRailを使用した経験があれば、特に何の問題もなく今回の新版も使うことができるだろう。
開発容易性を向上させる2つの新機能
3rdRail 2.0では、アプリケーションのテストやパフォーマンスチューニングをサポートする機能など、アプリケーション開発をより効率化するための補助的な機能が多く追加された。従来のユーザビリティを維持しつつ、より実践的なアプリケーション開発をサポートするIDEに仕上がっていると感じられた。
高度なプロファイリング機能を提供するR Optimizer
3rdRail 2.0で注目すべき新機能がR Optimizerだ。これは、Railsを含むRubyアプリケーションの動作を分析(プロファイリング)し、アプリケーションに潜在するボトルネックを調べたり、ソースコード中の問題個所を探索したりするための機能である。IDEの一部として提供されており、一貫したインタフェースでアプリケーションの開発からパフォーマンスの分析まで行えるようになっている。
R Optimizerの起動方法はシンプルで、ツールバー上の[プロファイル]ボタンをクリックするか、Railsエクスプローラーでプロジェクトの右クリックメニューから[プロファイル]を実行する。
起動すると、専用のパースペクティブへの切り替えが発生し、余分なプロファイルの表示を抑制するフィルタの設定を行うと、プロファイル画面が表示される。下の画面は、デフォルトの設定でR Optimizerを起動した際の画面である。
まず、CPUプロファイルメニューから[CPU記録の開始]を行う。
CPU記録がスタートし、[停止]ボタンをクリックするまでに行われたアプリケーションへの操作が、すべてCPUプロファイルとして取得される。Excelになじみがある読者にとっては「マクロの自動記録に近い感覚」というと分かりやすいだろう。
[停止]ボタンをクリックするとCPUプロファイルの取得は止まり、自動的に取得したプロファイルの一覧が表示される。一覧画面では、スレッド単位でビジー時間やアイドル時間などの情報が表示される。また、これらの情報を視覚化したグラフも画面右端に表示されるなど、直感的で分かりやすいインタフェースになっている。
R Optimizerでは、各スレッドをダブルクリックすることで、より詳細な情報が得られる「実行フロー」を表示できる。実行フローには、該当するスレッドが実行したコードの詳細が表示され、より具体的にボトルネックとなったコードの特定などが行える。
また、「スレッドツリー」によってスレッドの実行状況が視覚的にとらえやすくなっている点や、ソースコードの該当個所にダイレクトにジャンプできる点など、実用上十分な使い勝手を備えていると感じられる。
上記のように必要十分な実力を備えているR Optimizerだが、残念ながら3rdRail 2.0では「MRI(Matz' Ruby Implementation)」にしか対応していない。そのため、JRubyやRubiniusといった、Rubyの別実装を3rdRailのインタプリタとして設定している場合は利用できない点に注意が必要だ。非常に有用なプロファイリングツールであるだけに、今後の対応プラットフォームの拡張に期待したい。
テスト検証を支援する「ビジュアルテストランナー」
3rdRail 2.0では、アプリケーションのテストを視覚的に表示する「ビジュアルテストランナー」機能が新たに搭載された。従来までのテストは、テストスクリプトをコンソールで実行し、その結果を表示する方法を取っており、この部分だけに絞れば、コマンドラインによるテストと実行結果に違いはなかった。今回追加されたビジュアルテストランナーは、3rdRailのビューとしてテスト結果を表示してくれる。
ビジュアルテストランナーの起動方法は、Railsエクスプローラーのテストツリーから、実行したいテストもしくはディレクトリを右クリックし、[実行]-[Rubyテスト]をクリックする。すべてのテストが成功した場合、「スクリプト・テスト」ビューには緑色のバーが表示され、テストが成功したことがすぐに確認できる。
もし実行したテストに何らかの失敗が生じた場合は、赤色のバーが表示され、失敗したテストメソッド名に青色の×印が付き、エラー内容が「障害トレース」欄に表示される。また、テストメソッドの数が多い場合には、失敗したテストのみに表示を絞り込むことができるなど、テスト結果を視覚的に参照するための機能が用意されている。
今回はエラー表示の確認のため、以下のようなサンプルコードで検証した。このコードは最初から失敗する内容であり現実には起こり得ないテストだが、簡潔に失敗例を示すために使用した。
テストコードの説明
(1) articleというオブジェクトを新規に生成。そのパラメータとして、titleを「bar」、bodyを「baz」に設定している
(2)作成したarticleオブジェクトのtitleの値が「foo」という文字列と等しいかを検査している
テスト実行結果
(1)でarticle.titleに設定した値は「bar」なので(2)の検査ではassert_equalは必然的に「失敗」する
そのほか、テストメソッド名や障害トレースの結果をダブルクリックすると、該当する問題が発生したソースコードを自動的に開く機能や、テスト失敗時に本来期待される値と実際の実行結果を比較表示する機能など、IDEに期待される“使い勝手”の良さは十分に確保されていると感じられた。テストメソッドの数が増えるにつれて、この機能の有用性は高まっていくと考えられる。
なお、ビジュアルテストランナーの実行時には、test環境用のデータベースに対してスキーマが事前に適用されている必要があるため、注意が必要だ。
地味だけど便利な機能も搭載
3rdRail 2.0では、多くの既存の機能も強化された。コード補完機能では、新たにRailsのNamed Scope機能やルーティング/リソース定義に関する補完が可能になった。例えば、モデルのソースコードに以下のようなNamed Scopeを追加した場合、追加されたメソッド(foo, bar)も、コード補完の対象として表示されるようになった。
また、Rubyのソースコードの体裁を自動整形する「Rubyソースコードフォーマッタ」が新たに追加された。Rubyソースコードフォーマッタは、既存のソースコードを自動的に整形する機能。インデント幅やクラス/メソッド間の空行の数、コメントの折り返し設定など、ソースコードの体裁をかなり詳細に指定できる。
あらかじめフォーマットの規約を設定しておけば、複数人のチームで開発を行う際などには、[CTRL]+[Shift]+[F]キーを押下するだけで、自動的に規約に沿ったソースコードに整形することができる。地味ではあるが、とても便利な機能だといえる。
チーム開発における有力な選択肢
3rdRail 2.0は、従来の機能をより高精度に練り上げ、R Optimizerやビジュアルテストランナーなどの「作成するアプリケーションの品質を向上させるための機能強化」が多く施されている。IDEを導入する目的が「高品質のアプリケーションを効率良く開発する」点に求められるとするならば、3rdRail 2.0はまさにその目的に沿って正しく進化したIDEといえるだろう。
特に、Webアプリケーション開発の現場でチームを組んで開発を進める場合において、「ツールの統一性」や「ツールの分かりやすさ」などを重視する場面では、有力な選択肢の1つになり得る製品だと考えられる。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
2
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
3
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
4
「IBM iはDXのボトルネック」は誤解 意外と知らない今風モダナイズの効果
-
5
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
6
IT製品の導入に関するアンケート「PC&デバイス」編
-
7
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
8
「朝8時にバッチが終わらない」データ爆発の危機をJPX総研はどう乗り越えたか
-
9
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
-
10
AI導入後に発覚する「社内文書を読めない」問題 情シスは何を直せばいい?
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
プログラミング不要で誰でも実現できる、ネットワーク運用管理の自動化とは
-
5
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
6
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
10
“あのファイル転送”で暗躍するノーウェアランサム
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー