2019.08.20Mendixガイド , Mendixでの開発 , アプリケーションライフサイクル

ビジネスロジック

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

1. アプリケーションにビジネスロジックをどのように追加できますか?

アプリケーションのビジネスロジックは、 Microflow や Nanoflow の形で作成されます。これらは、従来のプログラミングコードのファンクションやメソッドを視覚的に表現する方法です。つまり、 Microflow と Nanoflow を使用すると、コードを記述しなくてもアプリケーションに複雑なビジネスロジックを簡単かつ視覚的に追加することができます。

ワークフロー、マイクロフロー、ナノフロー比較チャート

次の表は、 Nanoflow と Microflow の違いを示しています。

比較項目  Nanoflow  Microflow
実行 クライアント(ブラウザ/デバイス) サーバ
言語 JavaScript Java / Scala
オフラインのモバイルアプリ 利用可 利用不可
セキュリティ ユーザーコンテキストで実行 デフォルトはシステムコンテキストで実行(ユーザーコンテキストも可能)
トランザクション すべてのトランザクションを呼び出す 単一トランザクション
クライアントでのアクションの実行(たとえば、Pageを閉じる) 直接 Microflow実行後

 

2. ビジネスロジックがビジネスニーズに合っていることをどのように確認しますか?

Mendixは、ビジネス側とIT側でコラボレーションし、視覚的なモデルである Microflow と Nanoflow によって、ビジネス側のメンバーがアプリケーション設計を理解することができます。つまり、すべての開発チームメンバーがビジネスロジックについて議論することができます。

Mendix Studio にはレビュー機能が組み込まれており、ビジネス側のメンバーはそれを利用してビジネスロジックをレビューすることができます。ビジネスロジックをレビューしながら、そのビジネスロジックで何をしているのか視覚的に理解することができます。また、 Microflow にコメントを追加して、ビジネス要件を満たすために必要な変更を説明することもできます。これにより、フィードバックループが非常に短くなり、品質向上とコスト削減につながります。

Appプロジェクトの例におけるフィードバックコメント

 

3. クライアントサイドのビジネスロジックをどのように作成しますか?

 Nanoflow は、クライアントサイドのビジネスロジック(モバイルアプリのビジネスロジックなど)に使用されます。 Nanoflow を使用すると、オフラインのロジックや低レイテンシーが可能で、オフライン対応の超高速アプリを実現します。詳細については、フロントエンドの「Mendixがクライアントサイドロジックをどのようにサポートしますか?」のセクションを参照してください。

さらに、Mendixは、カスタムロジックでフロントエンドを拡張したり、視覚的にカスタムウィジェットを作成するメカニズムを提供します。詳細については、フロントエンドの「Mendixのフロントエンドをどのように拡張しますか?」のセクションを参照してください。

 

4. サーバーサイドのビジネスロジックをどのように作成しますか?

 Microflow でアプリケーションのビジネスロジックを作成できるため、 Microflow とビジネスルールを使用してサーバーサイドのビジネスロジックを構築することができます。 Microflow は、オブジェクトの作成や更新、Pageの表示、選択、外部システムへの接続などのアクションを実行できます。

 Microflow は、次の要素で構成されています:

  • イベントは、 Microflow の開始点と終了点、およびループ内の特別な操作を表します。
  • 入力パラメータは、コンテキストからオブジェクトをマイクロフローに渡します。
  • アクティビティは、 Microflow で実行されるアクションです。
  • コネクタをMendix App Store からダウンロードして、アプリケーションを他システムに接続することができます。
  • フローは要素間を接続します。
  • 分岐することでどちらか選択し、異なるパスを再びマージすることができます。
  • エラーハンドラをアクティビティ、分岐、ループに設定して、エラーの処理方法を定義できます。

詳細については、Mendix Studio Pro ガイドのMicroflowを参照してください。

マイクロフローの例

ルールは特別な種類の Microflow であり、ビジネスルールを表現するために使用できます。ルールはブール値または列挙値を返す必要があり、その結果に基づいて判断するために使用できます。複雑な決定をルールとしてまとめ、アプリケーションのさまざまな場所で再利用できます。

 

5. カスタムコードをどのようにアプリケーションに追加しますか?

Mendixでは、サーバー側で、すぐに作成できる Microflow ロジックや、REST、OData、SOAP Webサービスでの統合機能を提供します。カスタムコードは必要ありません。(ライブラリ呼び出し、または、Java経由で公開される外部サービス呼び出しを介して) Microflow のビジネスロジックを拡張する必要がある場合、Mendix Studio やMendix Studio Pro を使用して、IDE内から直接呼ぶことができるJavaロジックを作成することができます。

詳しくは、以下のセクションを参照してください。

5.1 独自のカスタムコードをサーバーサイドロジックでどのように使用できますか?

第3世代プログラミング言語(この場合はJava)との統合は、Mendixモデル駆動型開発アプローチの主な強みの1つです。 Microflow だけでは目的を達成できない、またはアプリケーションモデルで活用したい既存のJava/Scalaのコードがある、などのような状況で特に役立ちます。Mendix Studio Pro はEclipseと統合されており、モデルのコード拡張をサポートしています。Mendixのデバッグ機能はEclipseに完全に統合されており、実行中にJavaコードをデバッグすることができます。

Eclipse統合の例

特定のDSLの範囲で制限されることはなく、カスタムJava関数を使用することができます。カスタムJava関数はモデル内から呼び出すことができ、その戻り値をモデルで使用できます。各アクションのインターフェース(Java関数に相当)もモデルで定義されます。関数名、引数、戻り値はすべてMendix Studio Pro で宣言されます。Mendix Studio とMendix Studio Pro は、アクションごとにJavaテンプレートクラスを生成します。これはカスタムコードを追加できるフックです。

アプリのインターフェース定義の名前が変更されたりリファクタリングされると、カスタムコードを失うことなくJavaクラステンプレートが自動的に変更されます。また、Mendixプラットフォームに組み込まれている一貫性チェッカーによって、変更が自動的に検出されます。これにより、開発プロセスの早い段階でカスタムコードの一貫性エラーが発生します。これにより、Javaコードがコンパイルされ、デプロイが行われる前にアプリの拡張機能がモデルと一致するようになり、開発の反復作業での貴重な時間を節約できます。

プロの開発者は、Javaで自由に拡張することができ、必要に応じてオープンソースや独自のライブラリを利用することができます。このカスタムコード内では、ランタイムエンジンのコアなところで拡張APIを使用できます。これは、リフレクティブプログラミングパターンを可能にする低レベルAPIです。

Java拡張機能は、バージョニング、コンパイル、展開するためのパッケージ化など、アプリケーションのライフサイクル全体を通じてMendixプラットフォームによって完全に管理されます。Javaアクションは、Java以外の開発者がマイクロフローでそれらを使用できる方法を提供します。Javaアクションが完了したら、それを右クリックしてMendix Studio Proツールボックス内にネイティブアクションとして表示します。これにより、プロジェクトのすべての開発者が簡単に利用できるようになります。

MendixアプリでJavaコードを使用する方法の詳細については、 『Mendix Studio Pro ガイド』のJavaプログラミング」を参照してください。

 

6. Mendixでどのようにデバッグしますか?

Mendix Studio Pro は、モデルの整合性で説明されているアプローチとメカニズムを通じて、Mendixプラットフォームで構築されたアプリケーションの品質、セキュリティ、技術的な一貫性を保証します。

デバッグとバグのテストは主に機能レベルで必要とされます。広範な品質と一貫性のチェックを通じて、技術の専門家以外の人が堅牢で洗練されたアプリを開発できることが利点です。

Mendixの組み込みデバッグツールの詳細については、「デバッグ機能」を参照してください。

 

7. Mendixにはどのようなエラーハンドリングオプションがありますか?

エラー処理は、 Microflow でのエラーハンドラの定義を通じてMendixでサポートされています。エラーハンドラを使用すると、要件に応じてロジック内のエラー(タイムアウトなど)やサービス呼び出しやデータベースアクセスからの予期しない結果を適切に管理できます。

Mendixプラットフォームはトランザクションベースです。つまり、実行されたロジックはトランザクションを完了して終了するか、エラーをスローすることができます。エラーが発生した場合は、トランザクション全体をロールバックする(つまり、関連付けられているオブジェクトを元の状態にロールバックする)か、ロールバックしないかを選択できます。どちらの場合も、 Microflow にエラー処理ロジックを追加できます。これはトランザクションの後に実行されます。

このエラー処理プロセスにより、Mendixアプリ全体の整合性が保証されます。

 

8. ロジックをどのように再利用できますか?

Mendix Studio やMendix Studio Pro の次の機能により、ロジックを容易に再利用することができます。

  • 既存の Microflow とルールは、Mendixアプリプロジェクト内の他の Microflow または Page コンテキストから呼び出すことができます。Mendixにはリファクタリングツールが組み込まれているため、既存の Microflow から、入力パラメータと戻り値が定義された新しい Microflow を簡単に作成できます。そのロジックは他のコンテキストから再利用が可能です。
  • 既存のJavaライブラリとカスタムコードをアプリロジックで再利用できます。
  • 再利用可能なロジックは、モジュールにまとめてMendix App Store にエクスポートできます。パブリックまたはプライベート(社内という意味)コンテンツとして共有することができます。
  • Mendix App Store には、再利用可能な MicroflowMicroflow コネクタが多数あり、それらをアプリモデルにダウンロードできます。これにより、各プロジェクトのロジックを再作成する必要がなくなります。App Store のCommunity Commons Function Libraryモジュールは、コミュニティで共有されるベストプラクティスの例です。

翻訳元:

https://www.mendix.com/evaluation-guide/app-lifecycle/logic

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

このエントリーにコメントする

必須項目は全て入力してください。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)