7个用LLM辅助编程技巧
- 量子位
- 2025-01-16 16:54:38
7个用LLM辅助编程技巧
如何更好地用AI提升编程工作效率?
开发者David Crawshaw为我们展示了7大实用技巧:
1. 为LLM设定一个明确的目标,并提供必要的编程背景。
假设你希望LLM编写一个计算浮点四分位数的储水池采样器(reservoir sampler)。
此时,你需要明确是用Go语言实现,并且需要包含基本的接口和测试代码。
提供这些背景后,LLM才能生成初步的QuartileSampler结构,Add和Quartiles方法,以及相应的测试文件quartile_sampler_test.go。
2. 避免复杂的交互环境。
我们在IDE中使用聊天功能时,常因项目仓库过大、文件过于杂乱而导致LLM混淆代码。
相反,通过在网页浏览器中与LLM单独互动,可以更专注于特定的需求,避免被其他代码文件干扰。
3. 提出易于验证的任务。
比如,要求LLM“重写所有测试代码,并引入一种中间概念使其更容易阅读”。
对于人类来说,这或许需要多次调整,但搭配LLM,就可以立即调试,来验证生成代码的正确性。
再结合与LLM共同讨论bug等方式,最终迅速修正代码。
4. 让LLM帮助选择所需的库
比较大的项目文件,通常需要用到相当多数量的库,此时可以让LLM帮助选择合适的库,并设计相应的接口。
再拿四分位数采样器举例,我们可能需要使用Go语言的多个标准库函数,如slices.Sort和math.Float64frombits。
而LLM可以自动选择这些库函数,来处理浮点数转换,并生成相应的测试代码,如FuzzQuartileSampler。
5. 采用更细化的代码结构
拆分代码成更小、更细化的包有助于清晰地组织项目结构。
虽然将客户端和服务器功能合并在一个包中使用起来很方便,但这种做法容易让代码变得杂乱、不易理解。
而将功能模块化,可以让LLM更专注地生成相关代码,并使代码结构更加清晰。
例如,我们可以创建一个独立的quartile_sampler包,将采样器的实现和扩展功能集中在一起,减少对不相关代码的依赖。
7. 让LLM编写全面的测试代码。
在初步生成的测试代码中,LLM可能会自行生成期望值,但这些值并未经过验证,导致测试结果不可靠。
为了解决这个问题,我们可以要求LLM编写一个referenceQuartiles函数,例如编写一个referenceQuartiles函数,使用标准的四分位数计算方法,并将其与采样器输出进行对比【图1】。
通过这种方式,我们不仅能够验证期望值,还能提升整体测试的可靠性。
感兴趣的小伙伴可以点击:
网页链接
如何更好地用AI提升编程工作效率?
开发者David Crawshaw为我们展示了7大实用技巧:
1. 为LLM设定一个明确的目标,并提供必要的编程背景。
假设你希望LLM编写一个计算浮点四分位数的储水池采样器(reservoir sampler)。
此时,你需要明确是用Go语言实现,并且需要包含基本的接口和测试代码。
提供这些背景后,LLM才能生成初步的QuartileSampler结构,Add和Quartiles方法,以及相应的测试文件quartile_sampler_test.go。
2. 避免复杂的交互环境。
我们在IDE中使用聊天功能时,常因项目仓库过大、文件过于杂乱而导致LLM混淆代码。
相反,通过在网页浏览器中与LLM单独互动,可以更专注于特定的需求,避免被其他代码文件干扰。
3. 提出易于验证的任务。
比如,要求LLM“重写所有测试代码,并引入一种中间概念使其更容易阅读”。
对于人类来说,这或许需要多次调整,但搭配LLM,就可以立即调试,来验证生成代码的正确性。
再结合与LLM共同讨论bug等方式,最终迅速修正代码。
4. 让LLM帮助选择所需的库
比较大的项目文件,通常需要用到相当多数量的库,此时可以让LLM帮助选择合适的库,并设计相应的接口。
再拿四分位数采样器举例,我们可能需要使用Go语言的多个标准库函数,如slices.Sort和math.Float64frombits。
而LLM可以自动选择这些库函数,来处理浮点数转换,并生成相应的测试代码,如FuzzQuartileSampler。
5. 采用更细化的代码结构
拆分代码成更小、更细化的包有助于清晰地组织项目结构。
虽然将客户端和服务器功能合并在一个包中使用起来很方便,但这种做法容易让代码变得杂乱、不易理解。
而将功能模块化,可以让LLM更专注地生成相关代码,并使代码结构更加清晰。
例如,我们可以创建一个独立的quartile_sampler包,将采样器的实现和扩展功能集中在一起,减少对不相关代码的依赖。
7. 让LLM编写全面的测试代码。
在初步生成的测试代码中,LLM可能会自行生成期望值,但这些值并未经过验证,导致测试结果不可靠。
为了解决这个问题,我们可以要求LLM编写一个referenceQuartiles函数,例如编写一个referenceQuartiles函数,使用标准的四分位数计算方法,并将其与采样器输出进行对比【图1】。
通过这种方式,我们不仅能够验证期望值,还能提升整体测试的可靠性。
感兴趣的小伙伴可以点击:
