14,953
edits
m (→相關網頁) |
(→相關網頁) |
||
| (16 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
AI Assistants in Coding | AI Assistants in Coding | ||
{{Template:Generative AI Tool}} | |||
== Usages == | == Usages == | ||
* Write documentation (or Generate Docs) | * Write documentation (or Generate Docs) | ||
* Convert file to another language | * Convert file to another language | ||
* Refactor the following code (or simplify this) | * Refactor the following code (or simplify this, or make code easier to read) | ||
* Explain the following code | * Explain the following code (or add comments to my code) | ||
* Generate Unit Tests (or generate tests) | * Generate Unit Tests (or generate tests) | ||
* Generate Code | * Generate Code | ||
* Find Problems (or fix this) | * Find Problems (or fix this) | ||
== Prompts | == Prompts cases == | ||
=== Improve the quality of Meta-prompt === | |||
Prompt | |||
<pre> | |||
Now we need to review and improve the development discussion of a file management tool. Please analyze from the following three aspects: | |||
1. Original Problem Analysis | |||
Please analyze in this discussion: | |||
- Initial technical issues and error situations | |||
- Original solution attempts | |||
- Key technical barriers discovered during discussion | |||
2. Extended Requirements and Improvement Opportunities | |||
Based on the discussion process: | |||
- List functionality points that were not considered but are actually important | |||
- Identify potential technical risks and limitations | |||
- Propose possible optimization directions | |||
3. Professional Specification Writing Guidelines | |||
Please provide: | |||
- Specification structure suitable for this type of tool | |||
- Key items and content suggestions | |||
- Technical documentation points that need special attention | |||
Based on these three aspects, please provide a complete prompt template for guiding similar tool development discussions. | |||
</pre> | |||
<pre> | |||
現在需要回顧並改進一個檔案管理工具的開發討論。請從以下三個面向分析: | |||
1. 原始問題分析 | |||
請分析這段討論中: | |||
- 最初提出的技術問題和錯誤情況 | |||
- 原始的解決方案嘗試 | |||
- 討論過程中發現的關鍵技術障礙 | |||
2. 延伸需求和改進機會 | |||
基於討論過程: | |||
- 列出原本未考慮到但實際重要的功能點 | |||
- 識別潛在的技術風險和限制 | |||
- 提出可能的改善方向 | |||
3. 專業規格書撰寫指引 | |||
請提供: | |||
- 適合此類工具的規格書架構 | |||
- 關鍵項目和內容建議 | |||
- 特別需要注意的技術文件要點 | |||
以上述三個面向為基礎,請提供一個完整的 prompt 模板,用於指導類似工具的開發討論。 | |||
</pre> | |||
=== Prompt for refactor source code === | === Prompt for refactor source code === | ||
Prompt | Prompt | ||
| Line 22: | Line 73: | ||
</pre> | </pre> | ||
=== Prompt for | === Prompt for function name suggestion === | ||
==== 國語版 ==== | |||
==== | |||
<pre> | <pre> | ||
請提供函數名稱修改建議,函數命名指南: | |||
- 功能明確性: 名稱應清楚描述函數作用,如「檢查」、「解析」。 | |||
- | - 簡潔性: 選擇簡短具體的名稱,提高可讀性。 | ||
- | - 一致性: 遵循項目或語言的命名慣例。 | ||
- | - 可讀性: 使用完整單詞,避免不明確的縮寫。 | ||
- | - 反映返回類型: 若函數返回布林值,考慮使用「is」、「has」等前綴。 | ||
- | - 避免歧義: 名稱應清晰,不與其他函數混淆。 | ||
- | - 反映數據類型: 如果處理特定數據,應在名稱中指明,如「JSON」。 | ||
```php | ```php | ||
| Line 42: | Line 91: | ||
==== 英文版 ==== | ==== 英文版 ==== | ||
<pre> | |||
Function Naming Guidelines: | |||
- Function Clarity: The name should clearly describe the function's action, such as "check," "parse." | |||
- Conciseness: Choose short, specific names to improve readability. | |||
- Consistency: Follow the naming conventions of the project or language. | |||
- Readability: Use complete words, avoiding unclear abbreviations. | |||
- Reflect Return Type: If the function returns a boolean value, consider using prefixes like "is," "has." | |||
- Avoid Ambiguity: The name should be clear and not confused with other functions. | |||
- Reflect Data Type: If handling specific data, this should be indicated in the name, such as "JSON." | |||
```php | |||
source code | |||
``` | |||
</pre> | |||
=== Prompt for Generate Unit Tests === | |||
JetBrain 推出 [https://plugins.jetbrains.com/plugin/22282-ai-assistant AI Assistant 外掛]功能,目前付費客戶可以免費試用 7 天。它下的 prompt,供大家參考 | |||
==== Prompt from JetBrain ==== | |||
<pre> | <pre> | ||
Write "XXXClassTest' tests for the | Write "XXXClassTest' tests for the | ||
| Line 53: | Line 121: | ||
'''php ?php class | '''php ?php class | ||
XXXClass { ... | XXXClass { ... | ||
''' | |||
</pre> | |||
==== Prompt with Complete Testing Strategy ==== | |||
<pre> | |||
Write complete unit tests for the "$METHOD_NAME" method in the "$CLASS_NAME" class. | |||
## Test Target | |||
- Class: $CLASS_NAME | |||
- Method: $METHOD_NAME | |||
- Test Class Name: ${CLASS_NAME}Test | |||
- Namespace: $NAMESPACE | |||
- Source File: $FILE_NAME | |||
## Source Code | |||
\```php | |||
$CODE | |||
\``` | |||
## Writing Conventions | |||
**File Structure** | |||
- Test file must begin with `<?php` | |||
- Namespace should be `Tests\$NAMESPACE` | |||
- Place test file at `__tests__/${CLASS_NAME}Test.php` | |||
**Test Conventions** | |||
- Extend `PHPUnit\Framework\TestCase` | |||
- Each test method should cover only a single behavior | |||
- Method naming format: `test_[method_name]_[scenario_description]` | |||
- Use `setUp()` to initialize shared objects | |||
**Coverage** | |||
- Happy Path: expected results under normal input | |||
- Edge Cases: boundary values, null values, extreme inputs | |||
- Error States: thrown exceptions, error returns | |||
## Output Requirements | |||
- Test file must be complete and executable without any modifications | |||
- Add a comment above each test method describing its purpose | |||
- Include the CLI command to run the test file | |||
</pre> | |||
Instruction of Complete Testing Strategy | |||
1. '''Happy Path''' — Verifies the program behaves correctly under expected, valid inputs. | |||
<pre lang="php"> | |||
// e.g. formatDate should return the correct format when given a valid date | |||
$this->assertSame('2024/01/15', $this->formatter->format('2024-01-15')); | |||
</pre> | |||
2. '''Edge Cases''' — Covers extreme or atypical but still valid inputs. | |||
<pre lang="php"> | |||
// e.g. empty string, zero value, maximum integer, boundary date | |||
$this->assertSame('', $this->formatter->format('')); | |||
</pre> | |||
3. '''Error States''' — Validates how the program handles illegal inputs or system failures. | |||
<pre lang="php"> | |||
// e.g. should throw an exception or degrade gracefully when an invalid date is passed | |||
$this->expectException(\InvalidArgumentException::class); | |||
$this->formatter->format(null); | |||
</pre> | |||
==== Simple version ==== | |||
<pre> | |||
Write PHPUnit test case including edge cases | |||
'''php | |||
function xxx(){ ... | |||
''' | ''' | ||
</pre> | </pre> | ||
=== Prompt for Find Problems (or fix this) === | === Prompt for Find Problems (or fix this) === | ||
Example 1 | |||
<pre> | <pre> | ||
Help me fix the problem | Help me fix the problem | ||
| Line 69: | Line 211: | ||
source code ... | source code ... | ||
``` | ``` | ||
</pre> | </pre> | ||
Example 2 | |||
<pre> | <pre> | ||
Help me fix the SQL query | Help me fix the SQL query | ||
| Line 84: | Line 225: | ||
SQL syntax ... | SQL syntax ... | ||
``` | ``` | ||
</pre> | |||
=== Prompt for Direct Code Analysis === | |||
Use Case: When AI debugging tools aren't working (agents, IDEs, etc.), try a clean approach: Use web-based AI with just the code—no context, no error messages. Simply ask "What's wrong with this code?" or "Find any issues?" | |||
This fresh perspective often solves stubborn problems by avoiding bias from error messages and predetermined fix patterns, uncovering root causes that were previously missed. | |||
Example 1 | |||
<pre> | |||
Find any issues in this code: | |||
``` | |||
source code ... | |||
``` | |||
</pre> | |||
Example 2 | |||
<pre> | |||
What problems do you see in this code? | |||
``` | |||
source code ... | |||
``` | |||
</pre> | |||
Example 3 | |||
<pre> | |||
Review this code and identify potential issues: | |||
``` | |||
source code ... | |||
``` | |||
</pre> | </pre> | ||
== 相關 GPT 機器人 == | |||
* [https://chat.openai.com/g/g-3s6SJ5V7S-askthecode ChatGPT - AskTheCode] 可直接提供 GitHub repository 連結,探索 repository 程式碼。 | |||
GIT message generator by OpenAI | |||
* [https://blog.miniasp.com/post/2023/12/05/Useful-tool-CodeGPT 介紹好用工具:CodeGPT (使用 GPT 自動化產生 Git 的 Commit Log 訊息) | The Will Will Web] | |||
* [https://blog.wu-boy.com/2023/11/codegpt-in-modernweb/ 生成式 AI CodeGPT 開發經驗談 - 台北 ModernWeb - 小惡魔 - AppleBOY] | |||
== 相關網頁 == | == 相關網頁 == | ||
| Line 91: | Line 268: | ||
* [https://plugins.jetbrains.com/plugin/22282-ai-assistant AI Assistant - IntelliJ IDEs Plugin | Marketplace] | * [https://plugins.jetbrains.com/plugin/22282-ai-assistant AI Assistant - IntelliJ IDEs Plugin | Marketplace] | ||
* [https://docs.github.com/en/copilot/overview-of-github-copilot/about-github-copilot-individual About GitHub Copilot Individual - GitHub Docs] | * [https://docs.github.com/en/copilot/overview-of-github-copilot/about-github-copilot-individual About GitHub Copilot Individual - GitHub Docs] | ||
* [https://edge.aif.tw/anitahu-interview-talent-education/ 生成式 AI 增加學生溝通能力?胡敏君:因有強烈動機與好奇心] | |||
[[Category: Programming]] | |||
[[Category:Programming]] | [[Category: Generative AI]] | ||
[[Category: | [[Category: Revised with LLMs]] | ||
[[Category: | |||