Fintan

ローコード開発基盤の評価レポート

CONTENTS

  • arrow_forwardローコード開発基盤の評価レポート
     

このエントリーをはてなブックマークに追加

Mendixの製品概要

Mendixはドイツのシーメンス社(2018年にオランダのMendix社をシーメンス社が買収)が提供するローコード開発基盤です。
Mendix Modelerという専用の開発ツールを使用して、ビジュアルなモデルを記述することで、動作するアプリケーションを開発できます。

Mendixでは開発・実行環境が一体的に提供されており、Mendix Modelerから開発、試験実行、デプロイのすべてを実行できます。

モデリング言語

Mendixでは、アプリケーションをPages、マイクロフロー、ドメインモデルの3つのモデルにより表現しています。

Mendixにおけるモデルの要素 説明
Pages 画面レイアウトと基本処理をウィジェットを使って実装する。
マイクロフロー 画面やデータベースに紐づく処理、それらと紐づかない個別の処理などのすべての処理を実装する。
ドメインモデル テーブル定義を実装する。

高機能ウィジェットを活用したモデル駆動開発

Mendixでは画面の主要機能を実現できる高機能なウィジェットを使うことで、ロジックモデル(マイクロフロー)の記述を少なくするアプローチがとられています。
単純なマスタメンテの画面であれば、白紙の画面に必要な基本機能が搭載されたウィジェットを貼り付けて、接続するテーブルや使用する機能の設定を行うだけで完成します。
ウィジェットがサポートしない処理やウィジェット同士の連動、その他画面各所のイベント、データベース更新イベントに紐づく独自処理についてはマイクロフローを使って拡張します。

以下に代表的なウィジェットを紹介します。

DataGrid(一覧画面用ウィジェット)

データの一覧表示、ページング、検索絞り込み、データ一括削除、詳細画面へのナビゲーションボタンが搭載されたウィジェットです。
Mendix Modeler上でウィジェットを画面に貼り付け、接続先データベースを指定するだけで列の定義が自動設定され、上記機能が利用できるようになります。
デフォルトではすべての列やボタンが表示されますが、プロパティを変更することで一部を非表示にしたり表示方法をカスタマイズしたりすることができます。

DataView(詳細画面用ウィジェット)

データの詳細表示、新規挿入、更新とそのナビゲーションボタンが搭載されたウィジェットです。
Mendix Modeler上でウィジェットを画面に貼り付け、接続先データベースを指定するだけで詳細画面のための入力フォームが自動設定され、上記機能が利用できるようになります。

画面デザインの自由度

画面はMendixが用意したテンプレートやウィジェットを使用することが基本となります。このテンプレートやウィジェットはMendix App Storeというサイトで多数配布されており、その中から取り込むことができます(基本的には無料配布)。Mendix App Storeには随時Mendix社により最新のUIが登録され、アプリ開発者は最新のUIからなるアプリケーションを簡単な手順で作成することができます。
テンプレートから取り込んだ画面については、画面上のウィジェットの位置や装飾を変更する微調整はできますが、HTMLソースを直接修正することはできません。テンプレートにはない独自のデザインについては独自に用意したCSSにて対応します。

ロジック自由度と拡張性

処理ロジックはGUIベースのツールを用いて、フローチャート形式のマイクロフローと計算式で表現します。上記に加えて、Javaで実装したコードを組み込むことも可能です。Javaでオリジナルコンポーネントを用意してロジックを拡張したり、Javaで書かれた既存資産を再利用したりすることができます。

マイクロフローは分岐、ループ、サブプロセス呼び出しなどをサポートしており、一般的なプログラミング言語と同等の表現力があると推測されますが、複雑な処理の場合はマイクロフローが肥大化する懸念があります。これについては、前述のJavaによる実装を併用することで、マイクロフローをスリムに維持したままで、複雑な処理を実装することができます。

製品を使用した感想

Mendixを使った感想について以下に記述します。
※本章については、無料セミナーへの参加と公開資料による学習のみ実施した開発者がサンプルアプリを構築した時に感じた感想となります。3~5日間の本格的な有償トレーニングを受講した開発者の感想とは異なる場合があります。

Mendixはウィジェットへのデータの割り付けなどの基本動作はウィジェットに内包されているため処理ロジックとして現れません。したがって、基本的なパターンに沿う場合は、マイクロフローを書く必要がなく、画面関連の処理ロジックの量は最小限に抑えられます。マイクロフローの記述量を抑えることができるので、開発経験のないエンジニアにも扱いやすいと思われますが、使いこなすにはウィジェットに関する十分な知識が必要と感じました。今回のサンプルアプリ構築時においても、ウィジェットの仕様を十分に理解していませんでしたので、動作の調査やカスタマイズの方法を見つけるのに苦労しました。ウィジェットについて十分な知識を持っていれば、プログラミング経験が少なくても、かなり効率よく開発を進められると思われます。

効果的な活用場面

Mendixの特徴と活用に適する場面は以下の通りと考えます。

  • Mendix App Storeから最新のUIを入手できる仕組みがある。
    →最新のUIを使用したい場合。
  • ロジック部分も含めてGUIベースのツールを用いたビジュアルなモデリングによりアプリケーションの定義が完結する。
    →デベロッパ、ユーザが共同でシステムの開発、保守に関与する場合。
    →様々な機能を作りこみたい場合。
  • ウィジェットからの基本的なデータベース処理などは、ウィジェットに内包された処理としてマイクロフローには現れないので、ロジックモデル量が少ない。
    →スクラッチでの開発経験が少ないエンジニア中心で開発する場合。
  • デプロイやバージョン管理なども含めてオールインワンで提供されている。
    →新規にソースコード管理環境や、リリース運用環境を構築したい場合。
  • 契約するとすぐに利用可能となるパブリッククラウド版が提供されている。
    →手早くサービスを立ち上げたい場合。
  • 規模に応じた料金体系となっている。
    →スモールスタートして徐々に規模拡大していきたい場合。

本コンテンツはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しています。

このエントリーをはてなブックマークに追加


TIS株式会社
個人情報保護方針 個人情報の取り扱いについて 情報セキュリティ方針

Copyright 2018 TIS Inc.keyboard_arrow_up