大規模な4Dアプリケーションを開発する際、機能をホストプロジェクトと複数のコンポーネントに分割するのが一般的です。このモジュール型アーキテクチャは構造を明確にし、整理や保守を容易にしますが、一方で課題も生じます。メソッドがどこで使用されているかを特定することが困難になるのです。
4D 21以降、このワークフローをさらに円滑にする大きな改善が加えられました:コンテキストを切り替えることなく、ホストプロジェクトから直接コンポーネントのソースコードを編集できるようになったのです。さらに4D 21 R2では、「デザイン内検索」ダイアログが強化され、ホストプロジェクト内だけでなく、プロジェクトモードで作成されソースコードが利用可能なすべてのアクセス可能なコンポーネントを横断して検索できるようになりました。
ホストプロジェクトとそのコンポーネント内を検索
最も重要な改善点は、ホストプロジェクト内だけでなく、アクセス可能な全てのコンポーネント内でも検索を実行できるようになったことです。
検索対象を以下から選択可能:
-
ホストプロジェクトのみ
-
1つのコンポーネント
-
ホストプロジェクトとアクセス可能なすべてのコンポーネント

検索結果
コンポーネントからの各結果には、括弧内にコンポーネント名が表示されるようになりました。ツールチップも改善され、結果行にカーソルを合わせると、ツールチップにコンポーネント名が表示されます。

検索結果のエクスポート
多くのユーザーが監査、ドキュメント生成、コードレビューのために検索結果を外部で処理したいと考えています。これをサポートするため、エクスポートされた検索結果では、各検索結果が属するプロジェクト名またはコンポーネント名が最初の列に表示されるようになりました:
{
"type": "text",
"in": "'My host project' and components",
"operator": "contains",
"what": "alert",
"caseSensitive": false,
"searchInForms": true,
"searchInMethods": true
}
DateTimeComponent class [class]/Class8 method ALERT("function test") 2
Mycomponent projectMethod MyComponentMethod method ALERT("Hello") 1
Mycomponent class [class]/MyComponentClass method Function alert($myAlert : Text) 1
Mycomponent class [class]/MyComponentClass method ALERT($myAlert) 2
まとめ
これらの進化により、特にコンポーネントを基盤としたモジュール型アーキテクチャにおいて、コード探索、リファクタリング、保守性が大幅に向上します。マルチプロジェクト環境で作業する場合、これらの改善により時間を節約し、エラーを減らし、アプリケーションの構造をより明確に把握できるようになります。
