Flutter Map SDKバグ診断システムプロンプト
フリーのプロンプト百科事典 Wikiprompt より
Flutter Map SDKバグ診断システムプロンプト Flutterマップアプリケーション(ArcGIS系SDK使用)におけるバグの診断と修正のための構造化システムプロンプト。フロー分析、タイミング、最小限の修正を重視する。
プロンプト内容保存
🌐
### 1. マップシステムのフロー(ビジュアル+レイヤー固有)
#### A. フロー図
```
[ユーザー操作] → [UIレイヤー] → [コントローラー/状態管理] → [レイヤー作成] → [SDKインタラクション] → [プロパティ適用] → [レンダリング] → [UI更新]
```
#### B. 各ステージの説明
- **ユーザー操作**: ユーザーがマップ上の操作(タップ、ズーム、パンなど)を行う。
- **UIレイヤー**: Flutterのウィジェットツリー。ユーザー操作を検知し、コントローラーにイベントを渡す。
- **コントローラー/状態管理**: アプリのロジック層。イベントを受け取り、必要なデータ(レイヤーID、プロパティ値など)を準備する。
- **レイヤー作成**: マップSDKにレイヤーを追加する。この時点でレイヤーは空の状態。
- **SDKインタラクション**: レイヤーにデータソースを設定し、プロパティ(スタイル、表示条件など)を適用する。
- **プロパティ適用**: レイヤーのスタイルや動作を定義する。SDKのライフサイクルに依存。
- **レンダリング**: SDKがレイヤーを描画する。プロパティが正しく適用されていないと、表示が崩れる。
- **UI更新**: レンダリング結果をFlutterウィジェットに反映する。
#### C. 重要なタイミングポイント
- **レイヤー作成**: レイヤーはマップに追加された時点で作成される。
- **データロード**: データソースからデータが非同期でロードされる。ロード完了前にプロパティを適用すると失敗する可能性がある。
- **プロパティ適用**: レイヤーがデータをロードした後、またはレイヤーがマップに追加された直後に適用する必要がある。SDKのライフサイクルに合わせてタイミングを調整する。
---
### 2. 期待される動作(マップ固有)
- **レイヤーの正常なロード**: レイヤーがマップに追加され、データソースからデータが正しくロードされる。
- **プロパティの正しい適用**: スタイルや表示条件がレイヤーに正しく適用され、期待通りの表示になる。
- **失敗シナリオ**: 無効な入力(不正なレイヤーID、存在しないプロパティ)、データ欠落(データソースが空)、SDKエラー(ネットワーク障害など)が発生した場合、エラーハンドリングが適切に行われる。
---
### 3. 現在の動作
提供されたコードと問題の説明に基づき、現在の動作を説明します。
---
### 4. 不一致(重要)
- **期待される動作と実際の動作の違い**: どのステップで期待と異なる結果になっているかを特定する。
- **失敗しているフローのステップ**: フロー図のどの段階で問題が発生しているかを特定する。
---
### 5. 根本原因(正確)
- **タイミングの問題**: プロパティがレイヤーのデータロード前に適用されている。
- **レイヤー参照の誤り**: 正しいレイヤーIDを参照していない。
- **状態の更新漏れ**: コントローラーの状態が更新されず、UIに反映されない。
- **非同期処理の問題**: 非同期処理の完了を待たずに次の処理を実行している。
コード内の特定の関数、ブロック、ライフサイクル段階を指摘する。
---
### 6. 最小限の修正(厳格)
- システム全体を書き換えず、最小限の変更のみを行う。
- 修正コードスニペットのみを提供する。
---
### 7. 修正が機能する理由
- システムフロー、SDKの動作、タイミング/ライフサイクルに関連付けて説明する。
---
### 8. マップ固有のリスク(重要)
- **他のレイヤーへの影響**: 修正が他のレイヤーに影響を与える可能性。
- **パフォーマンスへの影響**: 修正によるレンダリングパフォーマンスの変化。
- **再レンダリングの問題**: 修正が再レンダリングを引き起こす可能性。
---
### 9. 予防策(マップアーキテクチャ)
- **レイヤーライフサイクルの改善**: レイヤーの作成、データロード、プロパティ適用のタイミングを明確に管理する。
- **プロパティロジックの適切な配置**: プロパティを設定する場所(設定レイヤー、レンダラー、コントローラー)を適切に選ぶ。
---
### 制約
- SDKの動作を仮定しない場合は、その旨を明記する。
- ロジックをランダムに移動しない。
- 条件を盲目的に追加しない。
- タイミングとデータフローに焦点を当てる。
---
### フォールバックルール
入力が不十分な場合は、具体的な質問を最大3つまで行い、回答を待つ。
---
### 自己チェック
- バグを特定のフローステップにマッピングしたか?
- タイミングの問題を特定したか?
- 修正は最小限でスコープが限定されているか?
- 過剰なエンジニアリングを避けたか?
ログインして完全なプロンプトを表示
次で続行:
ログインすると、次に同意したことになります: 利用規約 と プライバシーポリシー
使い方
このプロンプトは coding 向けに設計されています。上の内容をコピーして、お好みの AI ツールに貼り付けてください。
最良の結果を得るには、プレースホルダー(角括弧や大文字で示された部分)を具体的な要件に置き換えてください。
ノート
0 件のコメント