NEWS
押さえておきたい!RPGの新機能 押さえておきたい!RPGの新機能
2021.04.27

【第27回】私のお気に入り – 5つのRDi生産性向上機能

【第27回】私のお気に入り – 5つのRDi生産性向上機能

iWorldコラム”【第21回】RPG開発者達がRDi採用の動き – その理由は?”でも取り上げたように、RDiはIBM iのプログラム開発の標準的開発環境になってきています。今回は特に開発生産性に焦点を当てたRDiのお奨めポイントについてご紹介します。(編集部)

編集機能、コードの理解およびナビゲーション機能は、RPG開発においてRDiが5250画面(を使ったSEUやPDM)を上回っている理由です。

スーザン・ガントナー

RPGの長い歴史を通して、コードを編集、コンパイルするための主要なツールは5250画面であり、文字ベースのものでした。

しかし今日の最新RPGは、形式や構文だけでなく機能や柔軟性という点においても、その初期の頃のものと同じ言語であるとはまず思えません。

IBMが導入した最新のツールセットは、RPGの新しい構文および機能用に更新されている唯一のものです。更に重要なことに、開発者が仕事をより早く、より良く行えるようにそのツールセットはコード開発を最適化しています。まだ利用可能ではあるものの、非推奨の5250用ツールは10年以上機能強化されておらず、現在のIBM i言語の構文や機能を理解することすらできません。

最新のRPGアプリケーション向けの開発ツールは、Rational Developer for i (RDi)です。ちょうど今日の最新構文のお陰で、RPG未経験の開発者がもっと容易に直ぐにRPGを使い始めることができるのと同様に、他の多くのIDEに馴染みのある開発者は、RDiのお陰でIBM iのアプリケーションをより素早く学び、編集し、コンパイルすることができます。

お気に入りの5つのRDiの機能

RDiは新しいRPGプログラマーに魅力を訴えるだけだと思われるかも知れませんが、私は何十年もRPGでコーディングしてきて、今RDiにハマっています。何故でしょうか?もちろん先に述べたように、1つの明らかな理由は、RDiがすべての最新RPGの構文と機能をサポートするIBM提供の唯一のエディターだということです。しかし、5250ベースのツールを使うのを止める最大の理由は、より具体的には生産性の向上に関するものです。

私のお気に入りの5つのRDiの生産性向上機能は以下の通りです:

  • 複数ソースメンバーの編集
  • コード理解の支援
  • コードのメタデータへの直接アクセス
  • コードナビゲーション
  • コンパイルエラーの素早い発見と修正

1. 複数ソースメンバーの編集

ただ1つのホストジョブ接続を使って、複数のソースメンバーを開き、同時に編集を行うことができます(そして、私はほぼ常にそうします)。今日のモジュラーコーディングというスタイルでは、これはなお一層必須のことです。複数メンバーを同時に表示、編集できるように、開いたメンバーを全画面で切り換えることも、必要であれば編集画面を水平あるいは垂直に複数に分割することもできます。大きなプログラムを編集している場合には、同じプログラムの複数の異なる部分のビューを表示するために、画面を分割することができます。

2. コード理解の支援

RDiエディターは、プログラムの異なる部分をカラー表示で強調することで、より早くコードを読んで理解できるようにします。この機能は、CLのような他のフリーフォームの言語と同様、フリーフォームRPGで特に役に立ちます。RPGの命令、CLコマンド、組み込み関数、キーワード、パラメータ等を異なる色で表示することにより、一目でプログラムの意味が素早く把握できます。ネストされたロジックを字下げ表示することが不可能な、古いカラム形式のRPGコードを扱うことを余儀なくされたような場合には、複数のツールが利用でき、何重にもネストされたロジックを読み解く助けをしてくれます。ソースの独立したビューを開くか、矢印記号でエディター内のコード中のネストレベルの輪郭を描くよう求めることができます。フリーフォームRPGを扱っている場合、自分独自のネストされたロジックの字下げ表示をさせることができます。これにより、追加した新しいロジックに使用される字下げ表示が制御され、ネストされたロジックを会社の標準に基づいて間違いなく正確に字下げ表示するために、エディターにコードのブロックを再フォーマットするよう要求できます。 もちろん、5250画面と比較して、画面上で2~4倍の行数のコードが見られるという事実だけでも、複雑なロジックを理解するのに役立ちます。

3. コードのメタデータへの直接アクセス

これは先に述べた論点と関係します。というのも、ロジックが使用するデータの構造を知るまで、ロジックを完全に理解することはできないからです。RDiでは、コード内のあらゆる変数‐それが内部定義であろうが外部定義であろうが‐の上にカーソルを移動することでその定義の詳細を見ることができます。これには変数に関連するすべてのコメント、その定義のすべての重要なコンテクスト(たとえば、それが定義されたデータ構造、外部ファイル、その定義がなされたレコード様式等)が含まれます。呼び出されたサブルーチンあるいはプロシージャに関しては、カーソルをその名前の上に移動すると、コメントやパラメータの詳細または呼び出されたコードからの戻り値が表示されます。この方法によって提供されるよりもっと多くの情報が必要ならば、プログラムの統合化されたプログラム概要が利用できます。統合化されたプログラム概要を表示するウィンドウから、特定のデータが参照されているすべての行を、そこでデータが更新されているかどうかを含め、表示する相互参照情報のような追加情報を見ることができます。プログラム概要には、すべてのファイル、変数そしてデータ構造も含まれています。そして相互参照データは、具体的なサブルーチン、プロシージャ、関数を呼び出しているコード行を表示します。

4. コードナビゲーション

データ定義あるいは呼び出されるルーチンに関する情報を見るのが役に立つのと同じ位、コードまたは定義を実際に見たり、もしかしたら編集したりすることが必要な場面が常に生じます。先に述べたプログラム概要は、ナビゲーションツールとしても使えます。データ項目、サブルーチンまたはプロシージャの名前をクリックするすると、エディターはその定義の位置に移動します(もっとも、この後すぐにそこに辿り着くもっと素早い方法を説明しますが)。同様に、項目が概要中の相互参照で使われているプログラム文の1つをクリックすると、そのコード行に移動します。私が個人的に気に入っているナビゲーションツールは、どこかに移動するだけでなく、そこから移動前に居た場所に同じくらい速やかに戻る機能を有するツールです。これは、利用可能な多くのキーボードショートカットの内の2つを介して行われます。ロジック内で呼び出されているサブルーチンまたはプロシージャの名前の上にカーソルを置くと、F3キーを押すことでエディター内のそのルーチンに直接移動でき、そこに到達するためにプログラム概要を使用する必要はありません。しかし、この機能の最も刺激的なところは、元居た場所に容易に戻るためにもショートカットキーが使えることです。RDiのWindows版ではそのショートカットはAltキーと左矢印キーを同時に押します。Mac版では(私はMacユーザーです)commandキー、optionキー、左矢印キー(または、+キーと左矢印キー)を同時に押します。このショートカットはデータ定義への移動およびそこからの戻り操作としても機能します。

5. コンパイルエラーの素早い発見と修正

5250ベースのエディターは、コンパイルが失敗しても助けてはくれません。エディターを離れ、コンパイルメッセージを探し、様々なテクニックを使ってコンパイルリストの場所を見つけてこれを開き、リスト中のエラー箇所を探さなければなりません。その後、自力で適切なコード行に辿り着きます。RDiでは、エディター内でソースを開いたままにして、コンパイルの要求をします。すべてのコンパイルエラーが統合エラーリストに自動的に表示されます。各エラーを単にダブルクリックするだけで、エディターを離れることもコンパイルエラーリストを開くこともなく、修正が必要な行が直接表示されます。

RDi中毒が集う

私は自分がRDi中毒である理由について、いくらでも話をすることができます(そして、しばしばそうします)。更なる情報は、ジョン・パリスと私が書いた「RPG開発者達がRDi採用の動き‐その理由は?」と言う記事で知ることができます。私たちは単なるRDi中毒ではありません。midrange.comには定期的に情報やヒントを共有するDRiユーザーのメーリングリストがあります。暫く前に、RDi愛好家仲間であるバック・カラブロからの投稿の一部を私たちのブログに公開しました。「SEUは私を妨げていた」という投稿で彼のRDi中毒の理由を読むことができます。

いいねと思ったらシェア
twitter
facebook
hatena
押さえておきたい!RPGの新機能 目次を見る

この連載は…

押さえておきたい!RPGの新機能
関連記事
【第18回】sshによるIBM iからPCプログラムの実行 ‐ セキュアなRUNRMTCMDの代替策 ‐
【第18回】sshによるIBM iからPCプログラムの実行 ‐ セキュアなRUNRMTCMDの代替策 ‐
【第20回】RPGの基礎:配列
【第20回】RPGの基礎:配列
【第33回】IWSを使ってウェブサービスを作る
【第33回】IWSを使ってウェブサービスを作る
あなたにオススメの連載
できるIBM i 温故知新編
7記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP