MENU

ushiday的Code for IBM iの活用ケース|特集 Code for IBM i ~特別寄稿❷ 

text=牛田 吉樹 中部システム

 

IBM iにおけるサーバーサイドのオープンソース・ソフトウェア技術は、2019年に転機を迎えた。ライセンス・プログラム5733-OPSからyumへのOSS提供方法のシフトだ。これにより、IBM iにおけるOSSの適用はスピーディに行えるようになった。

しかし、クライアントの開発環境に関してはどうだろうか。RPGとCLはSEU(開発停止)で、OSS系は各種エディタ(RDi、VSCode、Eclipse、IDEA、Atomなど)と使い分けているケースが多いのではないだろうか。

何を隠そう、筆者もその一人だ。特にRPGとCLの開発に関しては、長年使い慣れているSEUを利用することがほとんだ。職人(技術者)にとって道具は大事な商売道具であるため使いやすいに越したことはない。しかし、いつまでも古い道具に拘るより、新しい道具も試してみて、古い道具も新しい道具も上手に使い分けることが大事だろう。

そんな中、IBM iのクライアント・サイドの開発環境が賑わいを見せている。IBM i MerlinやCode for IBM iがそれだ。ふだんはSEU使いの筆者でも、Code for IBM iを使うことが増えている。本稿では、Code for IBM iの便利な使い方をご紹介する。

以下、私的感覚でCode for IBM iのメリットをいくつか挙げてみよう。

①ローカル作業(ソース編集/読み取り)が可能になる

IBM i上のソースをローカルPCのCode for IBM iに取り込むことにより、IBM iに未接続の状態でもローカル環境で作業することができる。筆者は外出や移動があると事前にプログラム・ソースをローカルPCにダウンロードしておき、ネットワーク環境が弱くIBM i上のソースが参照しづらいときに、Code for IBM iを利用することが多い。新幹線の移動中やカフェなどでの待ち時間中に、ソースコードの分析や事前調査をCode for IBM i上で行っている。筆者の場合は、ローカルPCでソースの改修をすることはほぼないが、分析した内容のコメントをソースに埋め込む作業などに活用している。

【手順】

1. 「Code for i – オブジェクト・ブラウザ」でソースコードを”Download”(図表1
2. ローカルPCの適当なフォルダに保存する(図表2)

図表1
図表2

②Git管理に乗せやすい

VSCode自身にGit管理がバンドルされているため、そのままGit管理上にソースを乗せることが容易になる。

【手順(ローカル環境のGitのインストールが必要)】

1. ローカルPCのソースフォルダをgit管理下に置く「git init(ソースフォルダ内)」(図表3
2. 各種 git コマンドによる管理
3. VSCodeのGitLens 拡張機能などでさらに管理しやすく(図表4

図表3
図表4

③タイムライン機能が使える

 Git管理とは別に、VSCodeのタイムライン機能で、ローカル・ヒストリー(変更履歴)が管理できる。VSCodeでは、ローカルで作業した変更も随時保存してくれるので、ちょっとした変更でGit上に履歴が残っていないケースでも、タイムライン機能で確認できる。編集ミスをしていても簡単にロールバックが可能だ。これがSEUだと、メンバーをコピーしゴミメンバーが増えてしまう悪癖を何度も見てきている。

【手順】

1. 左の“エクスプローラ”から、該当ファイルを右クリック → [ タイムラインを開く ] (図表5

図表5

④アウトライン機能が使える

VSCodeのアウトライン機能で、変数、Data Struc
ture、サブルーチンの全体構造がわかり、該当ソースコードへのジャンプが可能。長いステップ数のソースの分析などで、サブルーチンへジャンプするときに役立つ。

【手順】

1. 左の“エクスプローラ”から、該当ファイルを選択 → “アウトライン”を展開する(図表6

図表6

⑤高度な検索機能が使える

 SEUではできない正規表現を使用した、ソース検索が可能。SUEの場合は、ワイルドカードや正規表現パターンを使用した検索はできないため、意図していない検索結果も拾ってしまうが、正規表現を使用して柔軟に検索ができる。さらにプロジェクト内の検索結果の場合は、結果をコピー&ペーストで出力してその後の作業に使うことも可能である。

【手順】 

1. ソースコード検索:ソース内で”Ctrl + F”で検索窓を表示し、検索値を入力する(画面7
2. メンバー(プロジェクト)検索:左の”虫眼鏡”マークをクリックで”Ctrl + F”で検索窓を表示し、検索値を入力する(画面8、画面9

図表7
図表8
図表9

⑥ソースの差分を出力が使える

変更前ソース、変更後ソースの差分を抽出し、開発者が変更後のコードレビューする際に使用する。筆者のチームでは、開発者が責任者に開発後のソースコードをレビューすることになっているが、変更時はソースの差分で会話することが多々ある。IBM iでもCMPPFMというコマンドは用意されているが、変更分が大量だと見づらい。そんなとき、Code for IBM iやVSCodeのソース差分出力機能を使えばレビュー作業もスムーズに進む。

【手順】

1. git履歴比較:該当ファイルを右クリック→[ Commit Changes ]…(画面10
2. 任意比較:該当ファイルを右クリック → 比較元[ 比較対象の選択/Select for Compare ] → 比較先 [選択項目と比較/Compare with Selected]

図表10

⑦ローカル編集→リモート・コンパイルが可能になる 

ローカルPCで編集した場合でも、その内容をIBM i上のIFSに保存し、連続コンパイルすることも可能。しかもこれら一連の流れは、Code for IBM iのアクション機能で、ファイルの拡張子に連動した、リモートコマンドの振る舞いを行うことができる。たとえば、*.rpgle”の場合は、IFSアップロード → CRTBNDRPGを行うなど。

【手順】 

1. 上部 [表示]→[コマンドパレット]を選択
2. ”IBM i Launch Action Setup”を選択(画面11
3. Actionを定義するファイルのタイプを選択する(画面12
4. 左ペインの[IBM i]でIBM iに接続
5. ライブラリリスト(USER LIBRARY LIST)と現行ライブラリ(コンパイル先)を設定する
6. IFS BROWSER でソースのアップロード先を指定し、右クリックし[Change working directory]をクリックする
7. IFSにアップロード、コンパイルするファイルを選択肢 [Ctrl + E]を押下する。実行コマンド(画面13)とアップロード対象ファイルを選択(画面14
8. 下ペインの[Output]→[出力]でコンパイル結果を確認する(画面15

図表11
図表12
図表13
図表14
図表15

まとめ

筆者の場合は、本格的な開発やスクラッチでの利用よりも、開発における補助的な利用が多い。しかしSEUにはない機能の活用により開発効率の向上に非常に役立っており、Code for IBM iはVSCodeとIBM iのベストな橋渡し役だと言える。「すべての開発をCode for IBM iで」と考えるのではなく、まずは効率よく利用できるところから試してみてはどうだろうか。

[i Magazine・IS magazine]

著者
牛田 吉樹氏

株式会社中部システム
代表取締役社長

2001年中部システム入社。RPG技術者として数多くの受託開発案件を担当。その一方、オープンソースの習得も並行して進め、コミュニティ活動にも積極的に参加する。PHP、JavaScript、Node.jsなどに造詣が深い。TwitterやQiitaなどでも積極的に発言。2021年より現職。

新着