AI Coding 最佳实践-从零到一全栈项目编写

AI Coding最佳实践

随着人工智能技术在编程领域的深度渗透,AI Coding已从简单的代码补全工具进化为涵盖全流程开发的智能辅助系统。从精准的提示词设计到多工具协同的MCP(Model Context Protocol)生态,再到专业化的AI编辑器应用,开发者正逐步探索出一套高效利用AI能力的实践体系。本文将系统梳理AI Coding中的核心方法论与工具链,通过提示词优化准则、编辑器选型、MCP生态应用及实战案例,为开发者呈现一套可落地的AI辅助编程最佳实践,助力在快速变化的技术环境中提升开发效率与质量。

提示词

提示词设计准则

参考Github Copilot文档的设计准则

docs.github.com/zh/copilot/...

包括

  1. 先总体说明需求,再具体说明需求细节,而不是毫无逻辑的说明需求

编写一个函数,以指示某个数字是否是质数

此函数会要求提供一个整数,如果此整数是质数,将返回 true

如果输入的数字不是正整数,此函数将会出错

  1. 提供例子,在实现具体功能之前,先提供具体的例子或实现

编写一个函数,以查找一个字符串中的所有日期,并在数组中返回这些日期。 日期的格式可以如下所示:

  • 05/02/24
  • 05/02/2024
  • 5/2/24
  • 5/2/2024
  • 05-02-24
  • 05-02-2024
  • 5-2-24
  • 5-2-2024

示例:

findDates("我要在 11/14/2023 去看牙医,并在 12-1-23 参加书友会")

返回:["11/14/2023", "12-1-23"]

  1. 将复杂任务拆分成更小的任务

例如,不要要求 Copilot 生成单词搜索迷宫,而是将此过程分解成更小的任务,并要求 Copilot 逐个完成这些任务:

  • 编写一个函数,以生成一个 10 x 10 的字母网格。
  • 编写一个函数,以便在给定一组有效单词的情况下查找字母网格中的所有单词。
  • 编写一个函数,该函数使用之前的函数生成一个包含至少 10 个单词的 10x10 字母网格。
  • 更新上一个函数,以打印字母网格和网格中的 10 个随机单词。
  1. 避免多义性,避免提示词含糊不清的用词

例如,如果"这个"可能是当前文件、上一个 Copilot 回复或者特定的代码块,请不要问"这个有什么用"。 相反,应当具体化:

  • createUser 函数的作用是什么?
  • 上一个回复中的代码的作用是什么?

多义性也适用于库:

  • 如果正在使用不常见的库,请描述库的作用。
  • 如果希望使用特定的库,请在文件的顶部设置导入语句,或者指定要使用的库。

提示词分类

使用AI开发大型项目时,因为代码长度太大,超过大模型的上下文长度上限,导致大模型忘记自己的需求是啥,或者项目的规范是啥,于是目前AI编辑器主流的两种做法是

  • 使用项目级别的提示词文件,说明需求
  • 使用规则文件 定制回答需要注意的点(规则文件可分为全局、用户、项目级别)docs.cursor.com/zh/context/...

包括还有cline的workflow文件,指定大模型按照某种流程执行动作

AI编辑器

AI编辑器是AI Coding重要的一环,市面上已经有的且出名的AI编辑器包括如下

  • VSCode Copilot(早期比较烂,随着版本更新,个人感觉最新版已经有Cursor 7成功力了,对于学生来讲是廉价的替代品)
  • Cursor(订阅价格较高,规则变化大,要白嫖到比较困难)
  • Trae国际版(有高级模型,但是不免费,订阅价格一般)

以下是AI插件

  • Augment Code
  • Cline(开源的AI拓展,可以自己接入模型实现编程,但是效果一般)
  • 其他一些接触较少

MCP

MCP市场

怎么知道有哪些MCP Server,可以在这些市场看看,对于一部分AI编辑器(比如Trae),已经内置了市场,添加MCP相当方便

收集的MCP市场如下:

操作浏览器

操作浏览器,通常使用的是爬虫那一套技术,比如Selenium、Playwright、Puppeteer等等,但是原理都是开启一个全新的浏览器,再使用API操作浏览器执行一些操作。登录态、用户信息、打开的标签页都不在了,很麻烦。

使用chrome-mcp就可以直接操作当前使用的浏览器进行操作,非常方便。

操作数据库

操作GIt/Github

基本涵盖了操作github的全部操作,比如常见的可以是创建一个github仓库,搜索仓库,等等

实践

下面做一个简单的示例,比如使用VSCode Copilot + 一些MCP工具 完全零代码编写一个全栈项目(小项目)

因为我的额度不足了,所以使用免费的GPT5-mini模型,对应的需求也会简单一些

需求详情

JavaScript 复制代码
我希望你使用HTML+node.js+postgres,编写一个简单的学生信息管理页面,要求实现学生信息的增删改差

根据需求优化提示词

Plain 复制代码
---
mode: agent
---
使用 `html + node.js + postgresql`,操作数据库时使用 `dbhub mcp`,帮我创建一个简单的项目,功能主要是学生信息的增删改查,项目创建完毕使用浏览器(使用 `chrome-mcp`)进行测试,测试功能无误后,创建一个github仓库(使用 `github-mcp`),将代码上传上去

执行步骤时要求使用`sequential-thinking mcp`详细思考之后,再执行操作

我的MCP Server配置如下

JSON 复制代码
"chrome-mcp-stdio": {
  "command": "npx",
  "args": [
    "node",
    "/Users/yangguo/.nvm/versions/node/v22.16.0/lib/node_modules/mcp-chrome-bridge/dist/mcp/mcp-server-stdio.js"
  ]
},
"github": {
  "type": "http",
  "url": "https://api.githubcopilot.com/mcp/"
},
"dbhub-postgres-npx": {
  "command": "npx",
  "args": [
    "-y",
    "@bytebase/dbhub",
    "--transport",
    "stdio",
    "--dsn",
    "postgres://postgres:postgres@localhost:5432"
  ]
},
"sequential-thinking": {
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
}

对话记录

AI 实现的功能,增删改查毫无问题,当然功能比较简单实现起来就很容易了

代码编写完成,AI推送到github中

相关推荐
卡布叻_星星2 小时前
前端JavaScript笔记之父子组件数据传递,watch用法之对象形式监听器的核心handler函数
前端·javascript·笔记
开发加微信:hedian1163 小时前
短剧小程序开发全攻略:从技术选型到核心实现(前端+后端+运营干货)
前端·微信·小程序
YCOSA20255 小时前
ISO 雨晨 26200.6588 Windows 11 企业版 LTSC 25H2 自用 edge 140.0.3485.81
前端·windows·edge
小白呀白5 小时前
【uni-app】树形结构数据选择框
前端·javascript·uni-app
优秘智能UMI5 小时前
UMI企业智脑智能营销:多平台视频矩阵引领营销新潮流
大数据·运维·人工智能·ai·矩阵·aigc
吃饺子不吃馅6 小时前
深感一事无成,还是踏踏实实做点东西吧
前端·svg·图形学
90后的晨仔6 小时前
Mac 上配置多个 Gitee 账号的完整教程
前端·后端
少年阿闯~~7 小时前
CSS——实现盒子在页面居中
前端·css·html
开发者小天7 小时前
uniapp中封装底部跳转方法
前端·javascript·uni-app
阿波罗尼亚7 小时前
复杂查询:直接查询/子查询/视图/CTE
java·前端·数据库