当然!很高兴您问这个问题。为了让我们的合作更高效、更愉快,您可以把我当作一位专业的、全天候待命的结对编程伙伴。
与我高效协作的最佳实践方法,可以总结为以下几点:
明确具体的目标 (Be Specific) 这是最重要的一点。您提供的指令越清晰、越具体,我给出的回答和代码就越符合您的预期。
biz-hd/user/classes/ 目录下,创建一个 UserClass.php 文件,并实现一个 register($mobile, $password) 的静态方法,需要对密码进行哈希加密。”提供充足的上下文 (Provide Context) 虽然我能看到您项目中的文件,但我无法像您一样了解其背后的业务逻辑和您的最终目的。在提问时,请尽量提供相关背景。
app-ghs 的订单列表接口,发现这个 OrderService::getOrderList 方法查询速度很慢,因为它在循环里查询了数据库。请帮我重构它,解决 N+1 问题。”迭代式提问与合作 (Be Iterative) 不要期望一次性得到完美的最终答案。我们可以像真正的结对编程一样,通过一系列的对话来逐步完善。
RefundController 的基本结构,包含 actionCreate 和 actionList 两个方法。”actionCreate 方法添加接收 orderId 和 amount 两个 POST 参数的逻辑。”amount 参数添加验证规则,确保它必须是大于0的数字。”RefundService 中,并在 Controller 里调用它。”代码生成 (Code Generation) 当您需要新功能时,可以直接让我为您生成。请明确文件名、类名、方法名、参数和预期的功能。
“请为
biz-hd/purchase/classes/PurchaseClass.php增加一个静态方法getRecentPurchases($shopId, $limit = 10),按addTime降序排列。”
代码理解与分析 (Code Explanation) 当您遇到不熟悉的代码时,可以让我为您解释。您可以选中一段代码,或者直接提问。
“请帮我解释一下
actionCreateOrder这个方法,它具体做了什么?数据是如何流转的?有哪些外部依赖?” (这正是我们刚才做的事情!)
代码重构 (Refactoring) 当您觉得某段代码可以优化时,让我来帮您。可以指定重构的目标,如性能、可读性、或者遵循某个设计模式。
“这个
RefundController::actionPass方法里的权限校验逻辑太复杂了,请帮我把它抽离成一个独立的 Action Filter。”
调试与错误修复 (Debugging & Fixing) 当程序出错时,把错误信息和相关的代码块发给我。我能帮您分析错误原因,并提供修复建议。
“我遇到了一个
Trying to get property 'super' of non-object的错误,这是出错的代码行和相关上下文,请帮我分析一下问题出在哪里,并给出修改方案。”
编写测试 (Writing Tests) 为了保证代码质量,我可以帮您编写单元测试或功能测试。
“请为
OrderService::refund()方法编写一个 PHPUnit 测试用例,覆盖退款成功和退款金额超限两种场景。”
学习与探索 (Learning & Brainstorming) 您也可以把我当作学习工具,或者与我进行技术方案的探讨。
“在 Yii2 中,使用 Service 层相比直接在 Controller 中调用 Class 层有什么优势?请举例说明。”
一言以蔽之:把我当作您的智能编程伙伴。给我清晰的指令、充足的上下文,并通过对话逐步细化您的需求。我们的合作越像两位经验丰富的开发者在沟通,最终的效果就越好。