我們是誰
我們來自阿里云云效程式碼團隊,為了尋找更舒服的開(更)發(早)體(下)驗(班),為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倍研發效能提升案例集》;
看完覺得對您有所幫助別忘記點贊、收藏和關注呦;