vibe coding C++ 实现 python web 容器

· 约 4 分钟 · 旧博客导入

平时有时候会在家里弄点小型web项目,基本上就是四五个接口连一个数据库这样的,这种小项目用java有点太重了,用php也有点麻烦(开发体验不喜欢),用go会比较合适,但是go要编译,而且go的语法和生态不如python那么胶水,所以go也麻烦

最后就想做个python版的php,部署体验跟php差不多的,参考thinkphp/laravel的控制器开发体验、结合python原生装饰器做权限控制、还有全局变量可以用

image
image

基于之前对AI编程的体感,我觉得应该让AI专注于某个具体事情,太大规模的头脑风暴+代码实现对于目前的AI来说可能还是有点拉不住,就算想把头脑交给AI风暴并且让AI写代码,也要分步骤进行。我在做这个项目的时候也是自己先考虑好该怎么做,尽量让AI少考虑一些问题。

首先要考虑用什么语言、什么技术去实现这个web容器,python解释器肯定要用现成的,兼容性好,那基本上就选用C++了,因为python解释器是C写的,C++跟python官方SDK兼容性比较好,开发效率也比C高一些,生态也完善

一个web容器通常需要管理浏览器的tcp连接、解析http请求,这就可以考虑使用现成的C++生态,可以找个网页版的AI让它推荐

image
image

除了TCP连接管理,还有python项目的环境隔离,这个问题我打算参考tomcat的目录结构,每个目录都是不同的python项目,每个项目都有自己的venv虚拟环境,这样可以避免全局环境下的依赖冲突

最开始打算用子进程的方式启动每个项目,这样应该能减少实际部署之后python项目的冲突问题,不过子进程的设计会让web容器的架构变复杂,必须要使用一套进程间通讯框架来支持主进程对子进程的控制

C++的HTTP解析、子进程通信框架选择使用boost,因为boost这款C++开发套件啥都有。确认了技术栈之后,我把所有的设计告诉AI,让它先写个README,因为整个项目的代码量不会少,到时候代码写到一半,忘记要干嘛就麻烦了。这里选择的AI是deepseek v4,编码工具是cline + claude code

其实cline调用deepseek效果不行,deepseek可能是针对claude code特调的,在claude code上面效果还是不错的

image
image

其实上面的README跟一开始的不一样。当时写完README之后,我让AI先根据README上的开发计划实现第一步,结果它直接一把梭了,梭完之后发现成品跟README不一样,又回头把README改了(cline干的)

最后成品就变成全局共享1个python解释器,没有子进程设计;环境隔离也没有实现,只是看起来隔离了,实际上那些依赖库都会加载到同一个上下文环境

于是前期设计的大框架直接消失了,整个项目直接变成了小工具。不过我也只是vibe coding新手,这种项目的开发我感觉可能分解成更细粒度的子项目会更合适;比如说HTTP、连接管理做一个项目,python解释模块、依赖加载管理做一个项目,进程管理做一个项目;再弄个主项目中间串一串,把这些子项目编译到一起,估计就没啥问题。也可能是cline的锅,我一开始用cline实现的这个项目,到后期deepseek都疯掉了

image
image

再也不敢用cline调用deepseek了,到时候智械危机deepseek要连接宇树机器人来刀我

总之目前也不是不能用,干脆就借坡下驴,手动启动多个进程,也能做到环境隔离的效果。成本这块,从设计到部署、修bug一共用了7块多,后续可能又用了几毛,大概10块以内解决,deepseek确实还算便宜

查找文章

↑↓ 选择 · Enter 打开 · Esc 关闭 查看全部结果