AI Coding实践与思考
标题:AI Coding实践与思考
在LLM高度发达的今日,LLM+Coding Agent已经能够开发规模较大,表现客观的软件。在这样的情况下,在开发软件的过程中,人应该如何合理地分配精力投入,成为了一个新的需要考虑的问题。
多线程工作
参考了B站程序员UP主酒嘉年的说法,他认为:为提升效率,在AI编程的时候,应当要充分发挥AI多线程工作的优势。
他提出的思想模型如下:将人脑看作主CPU。传统的人工编程,人类思考代码逻辑是主要工作,而将代码逻辑实现到程序里则看作CPU的一个耗费时间的IO操作。如果借助AI,则可以把这些代码逻辑的实现交给AI来完成,人类只需要不断地思考代码逻辑。在AI正在实现一部分代码的时候,人类应当去思考新的逻辑而不是去干等。
他认为在这种工作模式下,他每天的工作强度更大了,让他的大脑更加疲惫了。但是,我认为他这种模式对于普通人来说借鉴价值有限。这位UP主他是专业的程序员,他能够看懂AI给出的代码是否正确,是否存在潜在的问题。而对于大多数人来说,自己写的代码未必能达到AI写的代码的水平。
合理使用提示词
SKILLS——AI Coding领域在25年下半年提出的的一个新概念。一个SKILLS指的是针对某种能力,如:UI设计、网页调试、代码规范等等,所设计的一组特殊的提示词。部署SKILLS后,Coding Agents会根据用户的需求,自动地将SKILLS里的提示词纳入上下文,从而更好地实现特定的功能。
谷歌的研究院发表的论文Prompt Repetition Improves Non-Reasoning LLMs表明,如果对AI重复输入某些提示词,可以让AI给出的结果更好。
测试驱动后端开发
后端开发,特别是CURD系统开发,主要是面对前端的API需求来开发对应的API接口。可能是RestAPI,也可能是新型的gRPC。
在这种情形下,人类可以在使用AI前,先人工写出API接口的测试。在Coding Agent的多轮调用,反复自动返工下,或许能更好地实现人类的需求。
AI是否真的无法进入某些行业?
感性来说,世界上被写得最多的程序应该是前端和后端程序。对于AI来说,训练得最多的也是来自这些程序的代码。
而对于某些相对于前后端开发来说,比较小众的领域,如:嵌入式开发、高性能开发,AI写的代码质量则没有这么好。
有人认为,程序员可以进入这些行业,来规避AI带来的冲击,避免与AI竞争。
但是,从理性上来思考,AI真的不会写嵌入式代码吗?AI真的不能写高性能开发的代码吗?
我们想想,人类是怎么写这些特定领域的代码的?无非是查阅文档,参考前人留下的代码,针对硬件的API、串口模式来编程。如果能够提前准备好相关的SKILLS,准备好相关的文档,针对嵌入式和高性能开发专门的Coding Agent,AI写出高可用性的代码不是问题。
在26年年初,Claude的开发企业Anthropic宣布要开发法律领域的专门AI软件,让市场大为震撼。这表明,为了寻求新的增长点,AI企业可以专门针对特定领域去开发模型。他们可以针对特定的领域去搜集语料,以训练模型在这些方面的能力。