我们是谁

我们来自阿里云云效代码团队,为了寻找更舒服的开(更)发(早)体(下)验(班),为Java程序员打造出 阿里云智能编码插件,aka Alibaba Cloud AI Coding Assistant(小名 Cosy)

(目前已经上架 IntelliJ IDEA 插件市场 ⬆️ )

Cosy集合了代码补全和代码搜索两大开发辅助功能,不仅能通过深度学习模型和程序分析技术,精准智能地帮助我们减少 击剑🤺 击键次数,还能基于海量代码片段和社区问答数据,让我们可以哪里不会搜哪里,沉浸在IDE内快乐开发。

今天带大家感受致力于打造沉浸式开发体验的代码示例搜索功能~

更舒服的开发姿势

大家想象中开发者的工作状态应该是码字如飞形如流水一气呵成,但实际却往往是左手百度谷歌,右手Stack Overflow,在IDE和浏览器间来回横跳(🤪。坦白说,我们之前也是这样~

我们开发过程中经常写着写着就会用到一些并不是那么熟悉的接口,或者是要实现一些不那么常用的功能,很难徒手全文默写一步到位,每天对着浏览器的时间比IDE窗口还要久。仔细想想这个过程效率还挺低的,不仅不同的参考信息要用不同的方式搜索不同的网站,还要筛选掉大量无效低质的信息,一不小心浏览器窗口就层层叠叠Tab列表就密密麻麻了。

为了让这个过程更简单更酷炫,我们除了代码智能补全,也在Cosy中精心打造了代码示例搜索功能,让我们和“在IDE和浏览器之间反复横跳”的日子说拜拜 👋

1、多API精准搜索:这个接口怎么用来着

名字听起来很酷炫,实际上就是:我明确记得我要用的方法是什么,但是不记得具体的使用方式,比如入参出参、异常处理等。

这个时候我们就可以直接把光标落在我们要查看参考示例的类或方法上,即可通过快捷键一键呼出海量参考示例片段(还支持快捷键触发和鼠标右键菜单栏选择哦)。

👆 比如,我正在行云流水地快乐编码,突然想从本地读取配置文件,只记得可以用FileInputStream 但忘了上下流处理的具体写法,我可以先打出 FileInputStream 然后直接一个快捷键,一秒弹出大量使用到FileInputStream的开源优质示例,我就可以直接对照着完成剩下的代码逻辑啦。

除此以外,API精准搜索还支持多API同时使用的场景。比如我不仅需要使用FileInputStream还需要同时用到BufferedReader的参考片段,我可以将BufferedReader加入到我的搜索条件,查看更为确切的搜索结果。

2、自然语言搜索:这个功能怎么实现来着?

第二种姿势是自然语言搜索,我们在明确知道我们要做什么,但不知道要如何实现时,我们可以通过描述我们的意图进行搜索。

👆 在我们描述过程中,Cosy也会自动联想我们的查询语句。

除了GitHub开源代码片段以外,我们还收录了海量优质的StackOverflow社区问答数据。通过代码片段语义分析和上下文描述,我们支持对代码片段的自然语言描述性搜索。

3、组合技:小孩子才做选择,我全都要!

最后一种场景是我们的组合技。当我们明确我们要做的事情,比如说我们想要读取Excel,但是我们还想用第三方组件库EasyExcel实现这件事情,那你我们可以将EasyExcel这个精准API搜索条件到功能描述的后面,像下面这个样子:

更友好的中文支持

或许你会问:可是中文才是我的本命,英文描述不清楚我的问题该怎么办?

不 用 担 心 !

我们贴心地对自然语言搜索进行了更好的本土化支持~ 不但可以补全联想中文搜索语句,还能使用中文搜索中英文代码片段~

再也不用在海量信息中苦苦筛选,IDE内快速验证可用,哪里不会查哪里,老板再也不用担心我的进度( *`ω´)

下期预告

我们不忘初心,为了寻找最舒服的开发体验(最早下班!)在捣鼓出来代码示例片段搜索功能之后,我们进一步想做社区问答和社区文档搜索。

想象一下,我本地调试堆栈异常了,直接框选错误提示,一键搜索相关解决讨论,直接在IDE内解决问题!

是不是很酷炫,是不是很想用 ~

🤫 这个月0.9.8-beta版本即将上线新功能,各位Java开发同学们,我们不见不散!

关于我们

了解更多关于云效DevOps最新动态,可微信搜索并关注【云效】公众号;

福利:公众号后台回复【指南】,可获得《阿里巴巴DevOps实践指南》&《10倍研发效能提升案例集》;

看完觉得对您有所帮助别忘记点赞、收藏和关注呦;

03-05 22:35