这个“搭子”太棒了!AI助力结对编程新体验

共计 4079 个字符,预计需要花费 11 分钟才能阅读完成。

者:陈峻

您是否听说过“结对编程(Pair Programming)”这一概念?根据维基百科的定义,这是一种由两名程序员共同进行软件开发的方式。在这个过程中,一名程序员被称为“驾驶员”,负责代码的编写,而另一名程序员则被称为“观察员”或“领航员”,其任务是在“驾驶员”输入每一行代码时进行审查。此外,两名程序员之间常常会互换角色。在审查过程中,“观察员”不仅会关注代码的质量,还会考虑整体工作的“战略”方向,提出改进建议及未来需解决的问题。这样的安排旨在使“驾驶员”能够在“观察员”的指导下,专注于当前任务的“战术”落实。

在过去的两周里,我与人工智能(AI)合作,采用结对编程的方式,在一个全新的开发环境中,运用对我而言陌生的语言和框架,重建了我的博客。接下来,我将分享这一重建过程中与人工智能合作的一些经历。

背景概述

为了确保人工智能在重建过程中发挥重要作用,我设定了以下两条规则:

  • 通过传统搜索引擎获取信息的比例不得超过20%

  • 不向其他开发人员寻求帮助。

换句话说,在这次开发和学习过程中,人工智能成为了我最主要的信息来源、合作伙伴和助手。可以说,这种合作方式类似于我们开头提到的“结对编程”,让人工智能在其中扮演伙伴的角色。因此,在整个过程中,我使用了 GitHub Copilot、ChatGPT、Claude 和 Warp 等工具,并将它们视为我编程的“伙伴”。

技术栈的选择

在选择技术栈的阶段,我主要依赖于 ChatGPT 和 Claude。通过向它们提供我的技术背景及具体需求,我在多轮交流中逐渐明确了自己需要的编程语言、框架和编辑器。

众所周知,与人工智能的交流相当灵活且广泛。每当人工智能提供建议时,我都会深入探讨相应的方向与细节,并定期总结自己的理解以便再次与人工智能确认。相比几个月前,GPT- 4 和 Claude 2 不再只是迎合提问者,而是及时、礼貌地指出我理解中的错误,有效地避免我陷入误区。最终,我选择了 TypeScript、Astro、TailWindCSS 和 VSCode 作为博客重建的核心技术。

在这一阶段,人工智能高效地为我提供了有价值的信息,并帮助我迅速做出决策。这种高效的原因可归结为以下几点:

  • 明确的需求:清晰且易于理解的需求,使与人工智能的沟通变得简单,帮助其快速抓住提问者的意图。

  • 成熟的技术选择:我选择的技术堆栈由成熟的项目构成,这些项目通常拥有活跃的在线社区和丰富的官方文档,为人工智能提供了可靠的语义基础,确保其对相关技术的深入理解。

  • 结合个人经验:我在其他编程语言上的经验,使我在“结对”讨论中使用熟悉的语言、框架和开发环境作为参考,帮助人工智能更好地理解我的需求。

  • 多个人工智能平台的互补性:我同时在 ChatGPT 和 Claude 上进行讨论。尽管这两个平台在大多数情况下提供相似的信息,偶尔也会有不同的建议,相当于在“结对”中增加了一个伙伴。

  • 人工判断的重要性:尽管与传统搜索相比,人工智能提供的信息量有所减少,但如果用户缺乏分析和判断的能力,仍可能面临“选择困难”。因此,提问者必须具备良好的分析和判断能力,否则,过于宽松的自由度可能会妨碍获得理想结果。

开发环境的设置

虽然我以前使用过 VSCode,但从未将其作为主要开发工具。同时,我在安装 Node.js 和使用 NPM 方面的经验也相对有限。在这方面,AI 详细指导我构建了开发环境。

探索开发工具与人工智能的结合

特别值得一提的是,AI 在命令行操作中的应用过程。由于 Warp 提供的 AI 助手使用起来极为便利,当我遇到错误时,只需轻触闪电(⚡️)按钮,相关命令及其输出便会自动作为上下文提交给 AI。与之相对,在 GitHub Copilot 中,我必须手动挑选需要解释的输出内容,以确保上下文完整。虽然通过右键菜单的 AI 选项或快捷命令 @workspace /explain #terminalSelection 可以完成这项任务,但总的来说,Warp 的操作更为简便。

与 Xcode 的集成测试环境不同,使用 VSCode 的开发者必须根据所选语言和框架,来选择合适的测试框架和插件。在这个过程中,我遭遇了一些挑战。起初,我尝试按照 AI 的建议安装 Jest,但因开发环境与 Astro 的兼容性问题未能成功。在与 AI 几次交流无果后,我转向了搜索引擎,仍然没有找到解决方案。最终,一篇网络文章提到了一些我从未告知 AI 的配置背景信息,经过 AI 的指导,我终于成功配置了 Jest 框架。

然而,在进行后续的单元测试时,我再次发现 Jest 无法与 Astro 的运行环境协同工作。通过查阅 Astro 的官方文档,我意识到 ViTest 实际上是更适合 Astro 的测试框架。此外,ViTest 的安装过程十分便捷,能够完美运行 Astro 代码的测试。

因此,在这个项目中,我最终配置了两个测试框架,具体而言:使用 ViTest 进行 Astro 特定测试,而 Jest 则用于其他测试。

另外,不知是否是配置问题,GitHub Copilot 生成的默认测试代码是基于 Jest 的。为了生成适合 ViTest 的测试代码,我需要通过与 AI 的对话,明确提出这一请求。

通过上述经历,我逐渐认识到:即使有人工智能和搜索引擎的辅助,最权威的信息来源依然是官方文档。尽管 AI 对这些文档有相当的了解,但有时也会遗漏一些关键信息。这说明,官方文件的重要性是无可替代的,仍然是我们获取信息的首选。

通过代码阅读掌握新语言

通过阅读 Astro 提供的官方模板,我深入理解了 Astro,并且这也是学习 TypeScript 的最佳途径。在这个阶段,人工智能发挥了至关重要的作用,大大提升了我的学习效率。在 Astro 项目中,Astro 文件可能包含 TypeScript、JavaScript、HTML、CSS 以及特定的 Astro 标记和用法等多种元素。显然,对于缺乏相关经验的我来说,若没有人工智能的帮助,几乎无法找到学习的起点。

虽然 Astro 相较于其他框架较新,但人工智能的知识库已足以对其进行有效解读,并能清楚指出代码各部分的含义。借助人工智能对具体代码的详细解析,我逐渐掌握了代码的结构和逻辑。即使对于某些我不理解的地方,AI 也能及时提供进一步的解释。

在与 AI 的讨论中,我充分利用自己对其他编程语言和框架的了解,与人工智能进行对话。同时,我定期总结自己的理解,并请 AI 纠正其中的误解。随着讨论的深入,我还会定期请求 AI 提供先前讨论的结论,以便记录。

相关的代码解读和讨论主要是在 GitHub Copilot 中进行的。尽管 GitHub Copilot 整体表现良好,但使用过程中仍需注意一些事项,例如:

  • 若未选择特定代码,GitHub Copilot 将仅解释当前编辑窗口中可见的代码。

  • 为向 GitHub Copilot 提供更多上下文,手动选择提交的代码是必要的,这样才能形成当前问题的完整上下文。

  • GitHub Copilot 不支持跨多个文档的讨论,因此用户需要自行整合不同文档的内容,以形成完整的上下文。

  • GitHub Copilot 的回答有长度限制,若答案过长,可能会提示已覆盖的代码。在这种情况下,可能需要借助 ChatGPT 或 Claude 的帮助。

  • 在某些情况下,GitHub Copilot提供的答案质量可能不如ChatGPT

  • 编程实践

    自动生成代码的提示,是开发者体验人工智能强大潜力的重要途径之一。近期在开发者圈中热议的 GitHub Copilot,不仅能够洞察开发者的意图,还能实时创造出高质量的代码。对于我正在进行的博客重构项目,我不仅仅想要搭建一个全新的博客,同时希望在这个过程中学习并掌握新的编程语言和框架。因此,启用 GitHub Copilot 后,只要我提供足够的提示和注释,它便能迅速生成相关代码。

    起初,我觉得这种方式非常不错,但随着使用的深入,我意识到自己在短时间内竟然养成了依赖人工智能生成代码的习惯。这样的依赖让我过于关注注释对代码生成的作用,而忽视了具体代码实现的基本概念。这显然与我希望通过重构掌握新语言的目标相悖。面对人工智能输出的代码结果,我甚至产生了自己已经精通这门语言的错觉。

    意识到这一问题后,我决定只有在无法独立实现代码时,才会借助 GitHub Copilot 的实时代码生成功能。换句话说,不论代码质量如何,我都会先尝试自己编写,然后请人工智能帮助我识别问题,从而逐步提升代码的可读性与实用性。在这一过程中,我会向人工智能询问语法细节,请它指导我使用更符合 TypeScript 的编程范式和更适合的实现方法。

    由于同一功能的代码可能会被多次重复编写,因此提前进行单元测试显得尤为重要。在 VSCode 中,无论是使用 Jest 还是 ViTest,都可以启用自动化测试,以便在代码修改后立即执行测试。我希望 Xcode 也能具备类似的功能。毕竟在不断修改代码的过程中,往往会出现需要优化或修正的情况,只有通过测试,我们才能及时发现潜在的问题。

    小结

    经过一段时间与 人工智能产品的密切合作,我逐步认识到:在有效利用人工智能的同时,保持个人技术的成长和独立思考是至关重要的。面对飞速发展的人工智能技术,它毫无疑问将对我们未来的生活和工作产生深远的影响。

    如今,人工智能已经具备了迅速编写代码的能力,许多开发者或多或少地担心自己会被取代。作为一名开发者,我认为避免被取代的关键在于:不断提升自身技能,展示人工智能无法替代的独特价值。换句话说,虽然过度依赖人工智能确实可以在某些方面提高工作效率,或实现曾经无法实现的结果,但长此以往,开发者可能会逐渐失去自身优势,最终从人工智能工具的使用者转变为其助手:人类提示生成器(Human Prompt Generators)。当然,总体而言,人工智能在我学习和重建的过程中确实带来了巨大的惊喜。未来,我计划在工作中更加充分地融入人工智能。

    来源:百家号
    原文标题:这个“搭子”不赖!用 AI 实现结对编程
    声明:
    文章来自网络收集后经过 ai 改写发布,如不小心侵犯了您的权益,请联系本站删除,给您带来困扰,深表歉意!
    正文完
     0
    小智
    版权声明:本站原创文章,由 小智 于2026-02-19发表,共计4079字。
    转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
    使用智语AI写作智能工具,您将体验到ChatGPT中文版的强大功能。无论是撰写专业文章,还是创作引人入胜的故事,AI助手都能为您提供丰富的素材和创意,激发您的写作灵感。您只需输入几个关键词或主题,AI便会迅速为您生成相关内容,让您在短时间内完成写作任务。
    利用AI智能写作工具,轻松生成高质量内容。无论是文章、博客还是创意写作,我们的免费 AI 助手都能帮助你提升写作效率,激发灵感。来智语AI体验 ChatGPT中文版,开启你的智能写作之旅!
    评论(18 条评论)
    清甜饼干 评论达人 LV.1
    2026-02-19 13:51:49 回复

    结对编程的方式确实很新颖,AI的角色扮演让我觉得编程不再孤单。

         未知
    子奶茶 评论达人 LV.1
    2026-02-19 13:41:49 回复

    文章提到的角色互换很有趣,是否有建议可以帮助更好地实现这种角色转换?

         未知
    阎风梨 评论达人 LV.1
    2026-02-19 13:31:49 回复

    我注意到信息来源的限制会影响AI的表现,是否有更好的方法来优化信息获取?

         未知
    浅星河 评论达人 LV.1
    2026-02-19 13:21:49 回复

    在使用AI时,建议定期总结和反思交流过程,以便不断优化沟通策略。

         未知
    若然月 评论达人 LV.1
    2026-02-19 13:11:49 回复

    感觉AI作为编程伙伴的角色很重要,是否有具体的沟通技巧可以分享?

         未知
    桃然可 评论达人 LV.1
    2026-02-19 13:01:49 回复

    文章提到的技术栈选择让我想起了一个问题,如何知道某个技术是否真的适合自己呢?

         未知
    融澜蓝 评论达人 LV.1
    2026-02-19 12:51:49 回复

    这篇文章让我想知道,AI在编程中的局限性是什么呢?

         未知
    夏山沫 评论达人 LV.1
    2026-02-19 12:41:49 回复

    我也在使用AI编程,发现有时候它的解释不够清晰,大家如何应对这种情况?

         未知
    沐慢晨 评论达人 LV.1
    2026-02-19 12:31:49 回复

    文章提到的多轮交流方式让我想到了如何更好地与AI沟通,值得借鉴。

         未知
    海盐仔 评论达人 LV.1
    2026-02-19 12:21:49 回复

    有点好奇,和AI合作的时候,怎么确保沟通顺畅呢?有没有什么技巧?

         未知
    澜团子 评论达人 LV.1
    2026-02-19 12:11:49 回复

    搭子编程的概念太酷了,真的很想试试和AI一起写代码的感觉。

         未知
    柠檬仔 评论达人 LV.1
    2026-02-19 12:01:49 回复

    我觉得在选择技术栈时,多方对比AI的建议是个不错的思路。

         未知
    鲍山圆 评论达人 LV.1
    2026-02-19 11:51:49 回复

    我也在尝试用AI编程,发现有时候它的建议不太靠谱。大家有什么好的经验分享吗?

         未知
    盛喵之 评论达人 LV.1
    2026-02-19 11:41:49 回复

    看到AI在编程中的应用,真是让人感到未来无限可能。

         未知
    皮川光 评论达人 LV.1
    2026-02-19 11:31:49 回复

    这篇文章让我想起了我第一次使用AI编程的经历,真是一次奇妙的旅程。

         未知
    慢热松鼠 评论达人 LV.1
    2026-02-19 11:21:49 回复

    这个搭子真的太棒了,想知道在选择技术栈时,你是怎么和AI沟通的?

         未知
    白露圆 评论达人 LV.1
    2026-02-19 11:11:49 回复

    文章提到的各种工具都很吸引人,有没有推荐的使用技巧?

         未知
    储桃秋 评论达人 LV.1
    2026-02-19 11:01:49 回复

    这篇文章让我对AI在编程中的应用有了新的认识,真的很有启发性!

         未知
    利用智语AI写作工具,轻松生成高质量内容。无论是文章、博客还是创意写作,我们的免费 AI 助手都能帮助你提升写作效ai率,激发灵感。来智语AI体验ChatGPT中文版,开启你的智能ai写作之旅!
    18