怀陶宁
2026-1-15 13:05:00
我很难开始行动。很长一段时间里,我一直在拖延搭建这个网站、为 Visual Studio 创建一种新的编程语言以及设计全新的配色主题。每个项目看起来都让人望而生畏,我找不到时间也没有动力去着手做。这一切同时压过来,感觉实在是太多了。
但当一个法定假日给了我一个长周末时,我抓住机会在 Visual Studio 中试用了 Copilot,想看看自己能有多大进展。令我惊讶的是,我完成这三个项目的速度比预期快得多,也轻松得多。我分享自己的收获,是希望能激励您最终去着手处理那些一直拖延的项目。
如果您在 2025 年底有一些空闲时间,那或许会是一个绝佳的机会,让您终于可以启动那些您一直打算去做的想法。
让我们来聊聊我是如何启动这个 web 开发项目的。
项目 1 —— 一个静态网站
几年前,我写了一本名为《The Automated Home》的书,但收效甚微。我写这本书主要是为了自己,同时也想帮助其他智能家居爱好者为他们自己的自动化系统想出一些点子和方案。事实证明,书籍并不是做这件事的合适形式,所以长久以来我一直想把它改成一个网站。
我将这本书从 .docx 格式导出为 .txt 格式,这样就能把它输入到 Visual Studio 中的 Copilot 了。然后我创建了一个空文件夹来存放静态网站,并通过“文件->打开文件夹”将其打开。
然后我进入聊天窗口,给 Copilot 写了一个提示,内容是这样的:“把这本书变成一个网站,这个网站的功能应该像一本家庭自动化食谱。”
它琢磨了一会儿,一个静态网站就在我眼前慢慢成形了。一个文件一个文件地被添加到解决方案资源管理器中,并在编辑器中打开。
第一个结果相当不错。它的大部分内容都是正确的,但设计、菜单系统和内容组织不够理想。我作为 web 开发者的背景派上了用场,因为我知道自己想要什么以及希望它呈现出怎样的效果。所以,我开始在提示词中更加具体地描述,告诉它我希望 CSS 是什么样子的等等。
AI 创建这个网站所用的时间比我手动创建要少得多,大概快了 5 倍左右。我自己没写多少东西,不过每当我想做修改时,就会给人工智能提示。只有一些小改动,我才会手动编写代码。
这个工作流程很棒,但确实需要花不少时间等待 Copilot 完成它的任务。不过结果很不错,因为我既能有时间陪伴家人,同时又能在网站方面取得进展。
站点链接:https://www.homeautomationcookbook.com
项目 2 —— 一个 TOON 语言服务
我经常编写 Visual Studio 扩展,而这个扩展已经被提上了我的首要任务清单。主要是因为创建一个能作为 Visual Studio 语言服务运行的语言解析器和分词器颇具挑战性。TOON 是一种简单的语言,但即便如此,语言服务所需的一些独特功能,我在当前任何 C# 版本的 TOON 实现中都未能找到。
为了提供语法高亮、语法验证(波浪线提示)以及其他功能,语言解析器必须具备很强的容错能力。如果您在第 10 行出现了语法错误,您不会希望文件其余部分失去语法高亮,或者布满语法违规错误。大多数语言解析器在遇到语法错误时,只会简单地抛出一个错误,然后完全停止解析。
我的计划是让 GitHub Cloud Agent 指向 TOON 语言规范,并让它基于该规范创建解析器。我还希望它能根据该规范创建单元测试,以验证实现是否正确。
我在 Visual Studio 2026 中创建了一个新的 .NET 10 类库项目,并打开了 Copilot 聊天窗口。我给 Copilot 的提示大致是“根据 TOON 规范(),创建一个适用于 Visual Studio 语言服务的解析器和分词器”。
有一次,我点击了“Cloud Agent”按钮,向它输入了我的提示词,Visual Studio 就开始收集制定计划所需的信息。收集完成后,它会在 GitHub 仓库上创建一个包含这些信息的议题,然后将该任务分配给 GitHub Cloud Agent。
大约 20 分钟后,我收到了云智能体发来的包含初始实现的拉取请求。这是一次不错的初次尝试,但要让它达到我想要的效果,还需要做更多工作。我结合了常规智能体模式和云智能体来进行进一步的改进。
我发现云智能体在处理独立任务时最有帮助。我可以简单地提示它在后台开始工作,同时我在 Visual Studio 中做其他工作。这样,我就有两个工作流并行进行,能够快速取得进展。
完成后,我让智能体将类库制作成 NuGet 包,并使用 GitHub Actions 设置自动化的 CI/CD。不久之后,我发布了 Toon Tokenizer 包,现在可以开始开发 Visual Studio 扩展了。
这是我擅长的领域。而且一旦我创建了一个新的扩展项目,我就可以简单地添加 NuGet 包并着手处理。这部分我是手动完成的,因为我真的很喜欢扩展开发,所以我想全程自己操作。
这是一个超级有趣的项目,我得以使用 Profiler Agent 来微调解析器的性能。我还让这个智能体帮忙找出任何安全问题并加以缓解。它成功发现并修复了一些潜在风险。总的来说,这是一次很棒的体验,结果比我想象的要好得多。多亏了 Copilot,这又节省了 5 到 10 倍的时间。
项目 3 —— 新的色彩主题
很久以来,我一直想为 Visual Studio 制作一些新的颜色主题。但这是一种我没什么经验的扩展类型,所以我不确定需要付出多少努力。通常,未知的时间和精力投入是导致我在项目上拖延的原因。
为了启动这个项目,我决定以旧的“ Blue Steel ”主题扩展作为基础。我想创建两个 solarized 风格主题。这个项目真正的挑战在于将颜色标记与正确的颜色代码相匹配。我所拥有的全部资料只是来自网络上上这些主题的截图。
它看起来是这样的:
有了这些截图,我让 Copilot 提取 shell/environment 和 code 语法颜色的颜色标记,并将它们映射到 VS XML 主题文件中正确的颜色标记上。
那些XML文件包含了一系列类别,每个类别中都有颜色标记。- <Category Name="Shell" GUID="{73708ded-2d56-4aad-b8eb-73b20d3f4bff}">
- <Color Name="AccentFillDefault">
- <Background Type="CT_RAW" Source="FF6C71C4" />
- </Color>
- <Color Name="AccentFillSecondary">
- <Background Type="CT_RAW" Source="E56C71C4" />
- </Color>
- <Color Name="AccentFillTertiary">
- <Background Type="CT_RAW" Source="CC6C71C4" />
- </Color>
- <Color Name="SolidBackgroundFillTertiary">
- <Background Type="CT_RAW" Source="FFEEE8D5" />
- </Color>
- <Color Name="SolidBackgroundFillQuaternary">
- <Background Type="CT_RAW" Source="FFEEE8D5" />
- </Color>
- <Color Name="SurfaceBackgroundFillDefault">
- <Background Type="CT_RAW" Source="FFFDF6E3" />
- </Color>
- <Color Name="TextFillSecondary">
- <Background Type="CT_RAW" Source="FF000000" />
- </Color>
- </Category>
复制代码 Copilot 做得非常出色,但我得稍微调整一下颜色。还是需要进行一些手动的精细调整。不过它帮我开了个好头,节省了我很多时间。
如果您有兴趣为 Visual Studio 创建自己的颜色主题,我建议您克隆这个 GitHub 仓库来开始操作。一定要更改 .vstheme 文件和 .vsixmanifest 文件中的 GUID,以避免与原始文件发生冲突。
总之
如果不是 Copilot 给了我一个良好的开端,我可能根本不会启动这些项目。那会需要多得多的工作量。而且说实话,那样也远没有这么有趣或令人满足。看到事情快速推进非常鼓舞人心,也确实有助于让您坚持到完成。
智能体开发在这些项目所涉及的大量工作中表现出色,但有时我就是想用传统方式来做事。有时候我就是喜欢自己完成某些任务,或者手动做一些调整显然更快。
无论如何,做这些事情都很有趣。而且我终于完成了我这么久以来一直想做的事。
原文链接:https://devblogs.microsoft.com/visualstudio/how-ai-fixed-my-procrastination/
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|
|
|
|
|
相关推荐
|
|
|