最近重构了好几个老项目,做了不少功能优化,日耗tokens也打到了3个亿。对coding需要什么样的能力,也有了更深的理解,今天和大家分享一下我的思考。我觉得对于非技术背景的人群来说,最重要的不是去学更多代码知识,这块AI更新一个版本可比人学的快的多了,更重要是去用好AI和保证AI的交付质量。因此我觉得比较重要的能力是这三个。1.需求定义与方案判断能力就我自己目前整个coding时间耗时来看,50%以上的时间都是在和AI去讲需求是什么、设计方案选择哪个样子的。为什么这个环节会这么耗时?因为很多需求细节如果不描述清楚,后面就会变成无穷无尽的返工。比如说我跟AI说我需要一个数据统计后台,然后扔给它一些资料让AI去想,AI确实也能做出来一个看起来不错的后台。但问题是,很多细节和真实使用场景肯定是对不上的,比如说哪些数据口径需要统计、数据更新频率是什么。所以一句话做一个App不是说不能实现,前提是这个App足够简单,需求边界要足够清晰。只要是长期使用的生产级功能,复杂度都会高很多,细节需要一点点敲对,人需要去讲清楚自己的需求,从AI给的方案里做出选择。2.测试与验收能力产品做完了≠产品上线能用了,中间还有一个最重要的事情叫测试和验收。我自己搞出来几次大bug都是本地测完没什么问题,我直接发到线上服务器了,然后发一次崩一次。原因就在于我漏了几个边界条件的验收,恰好这几个地方发生了bug,然后我的整个线上系统就卡崩了。这块的难点在于人和AI是否能够在一起,想清楚足够多的边界场景来覆盖产品的异常,然后通过自动化测试来规避各种bug,尽可能提升产品上线后的稳定性。3.系统架构认知能力系统越复杂越会发现架构设计的重要性,如果前期没有做好架构设计,很容易写着写着就变成一堆屎山代码,改bug的时间远大于写功能的时间。但我觉得AI发展这么快,我们并不需要去学习怎么做具体的架构设计,只需要了解原则然后让AI去干就好了。架构上整体遵循高内聚、低耦合这个原则就好了。比如说我要做一个数据后台,那可能会包含数据获取、数据冶炼、数据展示、数据分析多个模块,那这些模块在开发的时候最好每一个模块都是自己呈一个单元,通过各种API来完成信息的交互,而不是说凑一起用。所以架构认知能力,本质上不是让非技术人变成架构师,而是要具备基本的系统拆解意识,然后给AI讲清楚你想要的是什么就可以了。