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

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

検索結果のエクスポート
監査・ドキュメント生成・コードレビューのために、検索結果を外部で処理したいというニーズは多くあります。これをサポートするため、エクスポートされた検索結果の最初の列には、見つかった項目が属するプロジェクト名やコンポーネント名が含まれるようになりました:
{
"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
まとめ
これらの進化は、特にコンポーネントを中心に構築されたモジュール型アーキテクチャーにおいて、コードの探索・リファクタリング・保守性を大幅に改善します。マルチプロジェクト環境で開発をおこなっている場合、これらの改善により時間を節約し、エラーを減らし、アプリケーションの構造をより明確に把握できるようになります。
現在、この投稿へのコメント機能は利用できません。