当前位置: 首页 > 科技观察

研发效率提升利器:五位AI编程小助手

时间:2023-03-18 02:29:41 科技观察

一年前写过一篇文章。2021年必须知道/采用的七大AI软件开发/测试工具,介绍了基于OpenAICodeX的GitHubCopilot、自动补全代码工具Codota等,上周介绍了阿里与阿里联合开发的BizCook系统北京大学:第一个工业开发自动代码生成系统。的确,未来已来,智能编程助手就在身边。我们是时候考虑引入这样的编程机器人作为程序员的助手,帮助他生成代码、完成代码、检查代码,从而大大提高软件开发的效率。今天我们就给大家介绍5款比较实用的智能编程工具,让你更好的了解它们能做什么。可能看完这篇文章,你已经迫不及待地下载一个工具来试试了。1.JediJedi是一个专注于代码自动补全、代码重构、代码搜索、查找参考的功能。它也是Python的静态分析工具,通常以IDE/编辑器插件的形式出现。Jedi通??过一套简单的API和REPL(Read-Evaluation-Print-Loop,交互式编程环境,比如Python天生就有REPL运行环境)来实现上述功能。自动完成:Script.complete();转到/类型推断:Script.goto()、Script.infer()静态分析:Script.get_names()、Script.get_syntax_errors()重构:Script.rename()、Script.inline()、Script.extract_variable()、Script.extract_function()代码搜索:Script.search()和Project.search()Jedi的一些基本特性:可以处理复杂的模块/函数/类结构很好地支持virtualenv/venvPython的类型提示非常有效理解存根文件可以推断Docstrings的函数参数,例如sphinx、epydoc和基本的numpydoc支持最常用的Python特性非常可靠的软件,经过很长时间的改进。2.WingProWing的智能编辑器让Python编码变得快速简单。在编写代码时,Wing强大的静态和实时动态代码分析为开发人员提供了上下文相关的帮助、代码补全和智能错误检查,可以快速识别块、范围或文件中的相同字符。可以通过字符串进行多项选择,也可以通过单击编辑器一次统一编辑所有选择。编辑器的自动完成程序中提供的代码片段允许快速输入标准代码模板和常用结构。片段中的字段是通过Tab键输入的。根据调用它的上下文,同一段代码可以采用不同的形式。Wing的代码警告系统提供编码错误的早期识别,例如语法错误、未定义的变量和属性、无法解析的导入、缩进错误和无法访问的代码,同时Wing的SourceAssistant不断更新以显示类型信息、内联文档、调用提示和链接用于编写或访问的代码的Python文档。Wing可以模拟vi、emacs、VisualStudio、Eclipse、MATLAB、XCode,方便用户上手。Wing自动编辑:编写代码时,调用助手自动录入函数和方法参数,允许通过tab键切换调用,快速正确放置参数。未更改的默认参数将被自动删除,调用将相应地重新包装。其他可配置的自动编辑操作包括自动关闭括号和引号、使用PEP8样式的可选自动间距、自动修复乱序输入以及在输入新代码时管理块。重构是一种在不影响其功能的情况下快速重组代码的方法。Wing支持重命名和移动符号定义点,从现有代码中提取新的函数或方法,向现有表达式引入变量,改变符号命名风格。3.TabnineAITabnineAI是一个代码自动补全工具。借助先进的公共代码模型和精准的自定义算法,不断学习团队已有的代码、模式和偏好,以便在您的代码编写过程中及时准确地推荐代码,完成代码,助您完成快速编程任务。此外,开发团队可以使用该工具获得规范一致的代码,代码质量也有保障,可以降低测试成本,更快交付代码。Tabnine根据上下文和语法预测并建议下一行代码,并可以在编辑器中完成整行代码,甚至完成功能齐全的代码,让程序员成为超级10倍的开发者。Tabnine支持不同的IDE和多种编程语言,从最流行的JavaScript、Python和TypeScript到鲜为人知的Rust、Go和Bash。4.AmazonCodeWhisperer使用CodeWhisperer构建和训练代码生成的ML模型,从而自动向开发者推荐代码,节省开发时间和精力,加速前后端开发。通过在最流行的服务(包括AmazonEC2、AWSLambda和AmazonS3)上为AWSAPI提供代码建议来加快开发过程。自动化单元测试生成。不再编写重复的单元测试代码。CodeWhisperer基于自然语言标注,自动推荐与实现代码匹配的单元测试代码。CodeWhisperer从各种数据源(比如开源代码)中训练出来,理解普通自然语言写的注释,根据开发者的意图生成代码,匹配开发者的模式和风格,所以生成的代码和开发者写的差不多代码方式。CodeWhisperer甚至提供了在程序员键入时自行完成注释的建议。程序员可以接受CodeWhisperer的推荐,查看更多推荐,或者继续编写自己的代码。我们还可以轻松地查找和检查引用的代码,以及它是如何在另一个项目的不同上下文中使用的。CodeWhisperer提供安全扫描以检测Java和Python代码中的安全漏洞,并建议开发人员删除可能被认为有偏见和不公平的代码。5、KiteKite也表现不错,可以快速向程序员推荐上下文感知代码。根据过去的统计,开发者在编程中使用它可以减少47%的击键次数。通过超过2500万个文件的数据训练,Kite使用的模型相当强大,可以一次推荐多行代码。Kite还可以帮助我们从代码库中快速找到与当前编码文件相关的文件。您还可以通过将鼠标悬停在它上面来使用它来查看Python文档,并查找操作方法和示例。其实这样的工具还有很多,比如:AlphaCode、DeepCode、SourceAI、Bayou、Clever-Commit、Embold、mabl、PyCharm、Pylint……