CodeZine(コードジン)

特集ページ一覧

プログラミングコンテストに挑戦を――効率の良いアプリケーション開発方法を実演【デブサミ2020夏】

【A-6】【老舗DBベンダーが毎月開催】Git/コンテナを使ってプログラミングコンテストで腕試し

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2020/08/24 12:00

目次

テンプレートの準備からサンプルの実行確認までを実演

 続いて飯島氏は、4月開催の「REST APIコンテスト」で使用した「RESTサーバ作成用テンプレート」を用いて、実行確認とコンテスト応募までの流れを紹介した。IRISの独自スクリプト、ネイティブ言語である「ObjectScript」を使用することで、データが存在する場所でRESTサーバが作成できる。

 まずテンプレートで準備されるのは、下図の緑のラインで囲まれた範囲だ。まずDockerでIRISのイメージをPullしてコンテナを開始する。その時、微細な初期設定も行うが、今回は「RESTディパッチクラス」と呼ばれるロジックのサンプルコードがあらかじめおかれた。また不変であるのが一般的だが、この中では簡単に試せるように「Sample.Person」というテーブル定義でデータが入れられるよう準備されている。

 図ではデータベースの中にテーブルとコードが同居していることを不思議に思われるかもしれないが、データも定義、ロジックも全てデータベースに収めるのがIRISの標準構造だ。また、データベースを利用するにはVSCodeなどと同様、ワークスペース相当のもの、仮想の作業の環境が必要になる。IRISの場合、ネームスペースといい、データベース名と同じ「IRISAPP」と名付けられる。

 この時点でサンプルコード、データの格納場所がそろい、さまざまなテストができるが、さらにRESTクライアントから接続する部分が必要になる。なおテンプレートにRESTクライアントは含まれていないため、コンテストでは新たに作成するのもよし、またサーバー側の機能をより開発する、新しいものを登録するのでも構わない。

 実演ではRESTクライアントとしてPostmanのツールを使用した。RESTでアクセスするためのベースURLがあり、IRISに接続してURLがきたらRESTサーバの機能が動く仕組みになっている。初期の設定の中で、Webアプリケーション定義ができる場所があり、その中でベースURLが来たらディスパッチクラスが動くように設定されている。そのため、コンテナを開始して環境が立ち上がったら、すぐに準備しているサンプルコードを動かせるというわけだ。

 そしてRESTディスパッチクラスを改良するためには、IDEが必要になる。その場合はVisual Studio Codeでつなげ、ソースコードを修正する必要がある。標準ではInterSystemsのネイティブ言語「ObjectScript」の操作ができないため、Extensionからの追加が必要となる。

 飯島氏はこれらを実演するため開発用テンプレートのコンテナを開始し、準備されているサンプルコードがIRISで動くまでをテストしてみせた。

テンプレートで準備されるRESTサーバ作成環境
テンプレートで準備されるRESTサーバ作成環境

InterSystems開発者コミュニティの日本語版が公開

 こうしてテンプレートを活用し、そのままコンテナを開始してプログラミングを行った後は、リモートGitにソースコードをPushしてInterSystems開発者コミュニティでアカウント作成を行い、Open Exchangeに移動してGitにPushしたアプリケーションを登録し、画面をリロードして応募ボタンを押すとコンテストへの応募が完了する。

 飯島氏は「コンテナの利用により、データベースだけでなく必要な開発言語やモジュールを含めた開発環境が簡単に準備できる。コンテストに限らず、開発/テスト環境についても、コンテナを再利用すれば準備時間が大幅に短縮でき、本当にやりたいことに専念する時間が増える」と語り、「ぜひとも、いつものデータベースの1つとしてInterSystems IRISを活用してほしい」と強調した。

 また7月16日には、開発者同士の交流の場である「InterSystems開発者コミュニティ」の日本語版が公開されている。インターシステムズからのイベント情報や技術情報などが提供される他、コンテストの告知はもちろん、「はじめてのInterSystems IRIS」としてセルフラーニングも用意されている。現在、英語版/スペイン語版が公開されていて、2020年6月時点で7177名の登録があり、日本語版が公開されることでますます増えることが予想される。

 飯島氏は「プログラミングコンテストなどを通じて、世界の開発者とつながることができる。ぜひともコミュニティに参加し、コンテストに応募をしていただきたい」と語り、セッションを終えた。

関連リンク



  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

バックナンバー

連載:【デブサミ2020夏】セッションレポート

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5