写点什么

开发人员的私人助手:亚马逊 CodeWhisperer

作者:阿呆
  • 2023-11-11
    北京
  • 本文字数:924 字

    阅读完需:约 3 分钟

开发人员的私人助手:亚马逊CodeWhisperer

背景

随着大语言模型的兴起,亚马逊 CodeWhisperer 也被更多开发者用于平时的开发,whisperer 意为低语者,我们可以将之理解为:当我们在 coding 时,CodeWhisperer 像一个经验丰富的前辈一样,在我们耳边辅助,帮我们快速完成我们的开发任务。本文介绍我如何使用 CodeWhisperer,协助我快速高效的完成日常开发工作。

使用场景

场景一:根据描述推荐相应的代码

日常工作中,我们需要一些时间转换的公共函数,CodeWhisperer 可以根据我们的描述,给出几种推荐代码供我们选择,tab 键即可采用代码,eg:我们需要将时间格式转换为 str 格式:

场景二:针对特定的函数生成对应的单元测试

在开发过程中,开发为了保证自己代码的质量,会写相应的测试用例,这个过程会耗费大量的时间,我们针对具体的方法生成相应的测试用例。

场景三:根据函数名,推荐相应的代码片段

eg:异步获取百度网页的 html,并且给出几种选择,允许用户选择自己想要的代码。但有个问题,自动导入的 aiohttp 的位置应该在注释上方,需要手动调整一下。


场景四:针对文件进行代码安全扫描,寻找代码的问题

针对上述代码进行安全扫描,我们可以针对性的进行解决。

详细的扫描结果如下,检测出函数 add_two_numbers 的任意函数执行安全漏洞(并给出对应的 CWE 号),datetime 未 import,aiohttp 未安装等问题,当我们在修改代码的过程中,会进行实时扫描。但目前的扫描依然存在一些问题,我们将函数名中的 baidu 故意修改为 badiu,这个操作并不会影响正常的功能,但其实是可能会对后续造成一些隐患的,扫描程序并未扫描出该单词的问题,需要进一步完善。

不足及建议

在日常使用过程中,CodeWhisperer 确实对平时的开发过程有所帮助,但也存在一些需要改进的地方,下面逐一列举:

  1. 目前对中文的支持度不够,很多中文描述,模型并不能给出代码推荐;

  2. 函数的边界条件考虑不足,这也是我们平时容易踩坑的地方,比如在场景一中,当入参是非 datetime 格式时,会抛出异常;

  3. 功能需要完善,想要对话式的进行代码逐步完善,对代码进行改写(命名规范修改或 sql 优化等),对代码生成相应的注释等等。


虽然目前 CodeWhisperer 确实有待改进,但是我们合理的使用,也能提高工作效率,让我们期待 CodeWhisperer 更加完善,成为一个优秀的工具。


发布于: 刚刚阅读数: 5
用户头像

阿呆

关注

坚守准则,认真做事。 2018-05-22 加入

职位:360资深后台开发,主要负责DevOps平台开发 技术:Python 爱好:炉石传说

评论

发布
暂无评论
开发人员的私人助手:亚马逊CodeWhisperer_Amazon CodeWhisperer_阿呆_InfoQ写作社区