引言

当大语言模型出现之后,编程这个行业一直在被重塑。从最早的代码补全,到现在的对话式编程,AI生成完整应用已经逐渐成为现实。最近兴起的vibe coding,更是提出了一种全新的开发范式——用户用自然语言描述需求,AI来实现编码和调试,用户只需要负责体验和提修改意见。

这种开发方式对于非程序员来说到底体验如何?中文自然语言真的能直接生成可运行的应用吗?本文通过一个完整的案例——从零构建一个经典数独游戏,来记录整个过程,分享一些实际体验和思考。

案例选择:为什么是数独游戏

选择数独游戏作为案例有几个原因:

  1. 功能边界清晰:需求明确,不会太复杂,适合做完整案例展示
  2. 包含经典算法:数独生成和解题都需要回溯算法,正好可以看看AI能不能正确实现算法逻辑
  3. 有交互界面:涉及前端布局和用户交互,可以验证AI在UI方面的能力

4.  实用:做出来真的能玩,不是玩具项目

所以,数独其实是一个很不错的AI编程能力测试案例,不大不小,刚好能看出水平。

工具

现在AI编程工具很多,为什么我选择用AiPy来做这个案例?主要几个考量:

  1. 原生中文支持:AiPy是国内团队开发的,深度优化了中文理解,特别是对非技术用户的自然语言需求理解。这正好符合本文的主题——中文自然语言转应用。
  2. 全流程托管:从代码生成到运行调试,AiPy都负责,不需要用户自己配置环境、解决依赖。非技术用户不用管那些技术细节,专心提需求就行。
  3. 增量式对话开发:支持一轮一轮对话迭代,不需要一次性把所有需求说清楚。这符合人类认知习惯,大部分人都是想到哪说到哪,慢慢完善需求。
  4. 真的能输出可下载的成品:生成的代码可以直接保存,用户拿到就能用,不用再折腾。

而且就算担心token不够用也没关系,邀请码就填c8W3,会有两百万的token。基于这些特点,AiPy非常适合本文要验证的场景——让一个完全不懂技术的用户用中文需求生成可运行应用。

 

需求演进过程

初始需求

一开始,我并没有把需求想的很全,就是一个非常简单的初始需求,这也更符合真实情况——大部分非技术用户一开始也只能说个大概:

"我想做一个网页版的数独游戏,就是我们平时玩的9乘9的那种,能生成题目,能填数字,能检查对错,界面简单一点就行了。"

就是这么一句话,没有技术术语,没有详细功能列表,非常口语化。

AI的响应很快,几分钟就给出了第一个版本。我们来看看第一版做的怎么样:

第一版成果:

·       ✅ 正确画出了9×9网格,用粗线分隔了九个宫,布局正确

·       ✅ 实现了点击格子选中,填入数字的基本交互

·       ✅ 能随机生成数独题目

·       ✅ 有检查答案功能

·       ⚠️ 但确实也有很多可以改进的地方

第一版就把核心骨架搭起来了,这已经很让人惊讶了。你就说一句话,它能把核心功能做出来,这理解能力真的不错。

第一轮需求细化

用过第一版之后,就能提出更具体的改进需求了。我体验之后,整理了这些改进点:

现在基本功能有了,想优化一下:

  1. 格子有点小,手机上不好点,能放大一点吗?
  2. 初始给的题目数字和我填的数字分不清,能区分一下样式吗?
  3. 我填错了能马上告诉我吗?不用等我全部填完再检查
  4. 我写错了能擦掉吗?现在只能重新填,不太方便
  5. 能选难度吗?有时候想玩简单一点的,有时候想玩难的
  6. 能帮我做个好看点的配色吗?现在这个太素了
  7. 我怎么知道现在点到哪个格子了?能高亮一下吗?

还是大白话,一条一条说问题说需求,没有技术术语。

AI理解完全没问题,很快就更新好了。我们看看这一轮之后有什么变化:

·       格子真的放大了,手机上点击很准

·       初始数字加粗黑色,用户填写蓝色,一目了然

·       错了马上标红,实时提醒

·       增加了擦除按钮

·       增加了难度选择下拉框(简单、中等、困难)

·       配色改成了淡蓝色背景,看着舒服多了

·       选中格子加了灰色高亮

这一轮下来,体验提升了不止一个档次,几乎已经能用了。我当时感觉,真的快成了。

第二轮:增加高级功能

能用之后,我就想,作为一个数独爱好者,还有一个常用功能——候选数笔记。遇到难题的时候,需要在格子里记几个可能的候选数字,帮助推理。这个功能能加上吗?

我又提出了新的需求:

现在很好用了,能不能再帮我加一个笔记功能?就是玩难题的时候,可以在格子里写小的候选数字,一个格子能写多个,这样方便推理。需要加一个开关切换普通模式和笔记模式。
还有,实时错误检查能不能也加个开关?有些人不想被提醒,想自己玩,不想一错就变红。

这个需求其实挺复杂的,需要增加状态切换,不同模式下不同的渲染逻辑。我以为要改挺久,结果十几分钟就改好了。

验证结果:

·       ✅ 模式切换按钮加上了

·       ✅ 笔记模式下,数字真的是小的,每个格子能填多个

·       ✅ 切回普通模式正常填大数字

·       ✅ 错误检查开关也加上了,完美满足需求

到这里,功能上其实已经非常完整了。一个专业数独该有的功能都有了。

测试与BUG修复

功能完整了,接下来就是全面测试,找BUG。测试下来发现两个小问题:

  1. BUG1:状态清空不完整 —— 切换难度的时候,有时候上一把填的数字没清干净,会留在棋盘上
  2. BUG2:解题不完整 —— 极少数极难题目,一键解题解到一半就停了,没填满

我把这两个问题反馈给AI,我不懂技术,我就只说现象:

我测试的时候发现两个小问题:

  1. 切换难度,偶尔原来填的数字不会完全消失,还留在上面
  2. 最难的题目,点一键解题,有时候剩几个格子没填就停了
    你能帮忙看看吗?

AI很快就分析出了原因:

·       第一个问题是切换难度时,重置逻辑不完整,用户输入数组没有完全清空

·       第二个问题是回溯算法在极端情况下,找到解之后没有正确退出递归

然后几分钟就修复好了。我重新测试,两个问题都解决了。完美。

有意思的是,我不需要懂什么是递归,什么是数组,我就说现象,AI自己搞定一切。这对于非技术用户真的太友好了。

最终交付成果

经过四轮迭代,我们得到了最终版本。让我们来看看完整的功能列表:

功能列表

| 功能模块 | 功能点 | 完成状态 |

| 基础功能 | 标准9×9九宫格布局 | ✅ 完成 |

| | 点击选中填数字 | ✅ 完成 |

| | 三种难度随机生成题目 | ✅ 完成 |

| | 检查答案正确性 | ✅ 完成 |

| 体验优化 | 格子大小适配手机 | ✅ 完成 |

| | 选中格子高亮 | ✅ 完成 |

| | 初始/用户填写数字样式区分 | ✅ 完成 |

| | 可配置实时错误标红 | ✅ 完成 |

| | 擦除单个格子 | ✅ 完成 |

| | 重新开始当前题目 | ✅ 完成 |

| 高级功能 | 一键自动解题 | ✅ 完成 |

| | 候选数笔记模式 | ✅ 完成 |

| 部署 | 单HTML文件,双击运行 | ✅ 完成 |

| | 无依赖无需安装 | ✅ 完成 |

技术实现观察

虽然我不懂编程,但是我也能看出来AI生成的代码结构很清晰:

·       整体架构:单文件HTML应用,包含HTML结构、CSS样式、JavaScript逻辑,没有外部依赖,非常简洁

·       布局:使用CSS Grid实现九宫格布局,正确处理了边框粗细,宫格分隔清晰

·       算法:

·       数独生成使用回溯算法,能生成不同难度的题目,通过控制空格数量区分难度

·       解题也使用回溯算法,能保证找到解,修复后的算法能处理所有情况

·       交互:事件委托处理格子点击,状态管理正确,模式切换流畅

我把代码拿去给一个前端朋友看了看,他说:"代码写的挺规范,逻辑清晰,没什么明显问题,能直接用。"

能让专业程序员给出这个评价,AI真的不错了。

经验总结:中文自然语言开发的要点

通过这个完整案例,我总结了几点用中文自然语言开发应用的经验,不管你用不用AiPy,这些经验都适用:

1. 循序渐进,不要试图一口吃个胖子

最开始不用追求完美,把核心需求说清楚,先出一个能运行的版本,然后一轮一轮迭代。这样风险小,每一步都能看到进展,也不容易需求偏差。

你要是一开始就把几十条需求全扔给AI,反而容易出问题。循序渐进是最好的方式。

2. 说现象不说原理,说效果不说技术

这一点特别重要。非技术用户不要不懂装懂去说技术术语,你就说你想要什么效果,出了BUG就说现象。

比如你不用说"请用回溯算法实现解题",你就说"做一个一键解题按钮,点了就能把答案都填出来"就行了。用什么算法那是AI的事儿,不用你操心。

3. 中文真的不需要太"文学",直接说要点就行

AiPy对中文理解很好,你不用组织特别优美的语言,就一条一条说清楚你要什么就行了。像聊天一样说就行,不用讲究格式。

4. 测试要充分,发现问题及时改

AI也会出BUG,这很正常。你测的越充分,越早发现问题,改起来越快。现在改BUG也很快,没什么麻烦的。

5. 选择原生中文工具,沟通成本低很多

同样的意思,用中文说给中文原生优化的AI,理解准确率高很多。别迷信国外的月亮圆,中文需求还是中文工具好用。

对AI编程的一些思考

1. 非程序员真的能开发软件了

这一点在这个案例里已经被证明了。我一个不懂编程的人,几个小时,几十块钱,做出一个功能完整的数独游戏。这在以前,完全不可能。

现在真的可以了。也就是说,未来很多小工具小需求,真的不需要找专业程序员了,用户自己就能做。

2. 程序员会不会失业?

我觉得不会。相反,程序员会被解放出来,不用去做这些小需求,能去做更复杂更有挑战的事情。这些小需求以前因为成本原因根本得不到满足,现在能满足了,这是增量市场,不是零和博弈。

3. 这就是未来的开发方式之一

vibe coding,自然语言转应用,这不是昙花一现,这真的是未来开发方式的一个重要方向。以后就是:

·       小需求:用户自己AI做

·       中需求:AI为主,程序员微调

·       大需求:程序员架构,AI编码

4. AiPy的定位很准

AiPy抓住了一个很好的定位——服务中文非技术用户,让每个人都能实现自己的想法。这个定位真的很好,市场需求很大。

结论

通过这个完整的数独游戏开发案例,我们可以看到:现在的AI已经能很好地理解中文自然语言需求,并且一步步迭代生成可运行的应用了。即使是完全不懂编程的用户,也能通过对话得到自己想要的成品。

整个过程非常顺畅,从一句话需求,到功能完整的数独游戏,也就几个小时时间。AI理解需求准确,调试BUG主动,真的让人惊喜。

如果你也是一个非技术用户,有一个想法一直想实现,我真的推荐你试试AiPy这种工具,体验一下自己做产品的快感。真的,你会发现,原来你也行。

AI编程的时代已经来了,它不只是专业程序员的工具,它也能让我们普通人受益,让每个人都能成为创造者。


哈哈哈
7 声望437 粉丝

Marketing