はじめに
最近WebPerformerというローコードツールを業務で使用しており、ノウハウも蓄積してきたので、その技術共有として記事を書こうと思います。
WebPerformerとは
キャノンITソリューション株式会社が販売しているローコードツールです。
その名の通り、Webアプリケーション開発を円滑に行うためのツールであり、それらに適した機能を持ち合わせています。
特徴
1.Eclipseのプラグインとして導入する。
年間ライセンス費を払うことでWebPerformerアプリケーションのビルドが可能に。
参考:公式の価格帯
2.MVCモデルによる設計
データ先行という考え方で設計します。DBにあまり馴染みが少ない方には接しづらい反面、ローコードツールだから初心者でもMVCモデルの考え方を覚えるのに適している、という捉え方もできます。
Q:データ先行という考え方とは?
A:WebPerformerではまずデータ自体がどうあるべきか?という考え方で製造を進めていきます。MVCモデルの流れで例えるならば、M→C→Vという順序になります。それがデータ先行という考え方ですね、
3.ドラッグ&ドロップでの画面デザイン
テキストフィールドやボタンの配置など、HTMLを直接記述せずともデザインができます。フリーフォーマットで配置するわけではないので、誰が作成してもレイアウトにある程度のまとまりが出来ます。
4.外部データベースとの接続
AWS上に構築したPostgreDBとの接続やオンプレミスでのDB接続など、開発環境と本番環境で参照するDBを変える、という事も可能です。
5.JavaおよびJavaScript、JSPを用いたカスタマイズ性
恐らく最大の特徴と言えるでしょう。バックエンドの処理(例えば外部API連携)をJavaで記載したり、フロントエンドの処理(例えばボタン押下時の制御)をJavaScriptで記載したり、WebPerformerというローコードツールの上ではありますが、非常に高いカスタマイズ性を誇れる要素の一つでしょう。
またWebPerformer側でもJavaの拡張インターフェースが用意されています。
6.Tomcat環境下での開発およびデプロイ
Webアプリケーション開発といえばTomcatですね。勿論ローカル環境での動作確認もTomcatを使います。
長所
1.ドラッグ&ドロップでの画面デザインが主となるため、Webデザイン知識が浅くとも画面製造ができる。
プレビュー機能も備えているため、作成した画面がどうなるか?というのを即座に確認できるの大きな利点でしょう。
2.Javaをベースとしてアプリケーションを生成するため、Javaの機能をそのままWebPerformer上に実装することができる。またJavaScript、jspの実装も可能
特徴で述べた通り、カスタマイズ性は非常に高いのは長所と言えるでしょう。
3.Eclipseが土台となるため、操作性が馴染みやすい。
最も大事なことだと思います。自身の使いやすいパースペクティブに変更するのが一番でしょう。
なおWebPerformer用のパースペクティブはインストール時に定義されています。
短所
1.実装した動作の確認に時間を要する
画面のプレビュー機能はあるが、実動作を確認するには都度コンパイルする必要があるため、規模の大きいプロジェクトになるほど微修正の確認に時間がかかります。
2.WebPerformer独特の挙動を覚える必要がある
画面の入力項目を保持するためには、KEEPといった処理や、WORKAREAといった独特のメモリ管理を駆使する必要があり、そしてそれはメモリ領域を食らいつくしてしまいます。
KEEPとは次画面遷移の際に値を保持する処理です。メモリを食います。
WORKAREAは値を保持し続けるための、WebPerformer独自のセッション領域のことです。自動開放されないので解放しないとメモリを食べ続けます。
ある程度メモリを意識しないと、WebPerformerで作成したアプリケーションは重いものになってしまいます。
3.デザインしやすいが制約が多い
例えばテキストをそのまま画面に表示する機能はありません。
また色彩面やレイアウトは、CSSで微調整するのが大半になります。
自動生成されたHTML(classのid)に対してCSSで微調整するという使い方になるため、1要素に対して1スタイルを記述することになります。
スタイルの使い回しがしづらいところもネックの一つでもあります。
4.無償ライセンス期間が一か月
そのため個人学習に適しづらく、業務内で覚えざるを得ないです(公式ハンズオンがあるとはいえ)
私としては一番何とかして欲しい部分だと考えております。窓口が狭い…
それ故にこういうQiitaの記事で、実際に画像をキャプチャーしてつまりこういうことですよ!って紹介が出来ないのも難点です。
おわりに
ローコードツールは過去にServiceNowを携わっていたのですが、ServiceNowの都合上顧客要望に応えることはできない事が多々ありました。
その点WebPerformerでは、癖こそはあれどカスタマイズ性に関しては高いローコードツールではないかと思います。