プロファイリング&テスト機能がポイント
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.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
2
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
3
221人調査で分かった「情シス最大のストレス」は?
-
4
AIで人を減らした企業がもう心変わり 「AIブーメラン現象」の実態
-
5
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
6
「Microsoft 365のセキュリティ運用」に関するアンケート
-
7
10年かけてBIを再構築したアマノの一手 「権限がない」「予算がない」でもDXは動かせる
-
8
LLMの「過学習」、正しく説明している文章はどれ?
-
9
「データストレージの活用方法」に関するアンケート
-
10
「業務改善とツール活用」に関するアンケート
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー