Kite
是一個基於go語言的微服務框架,kite想成為程式設計師們的智慧結對程式設計機器隊友。在程式設計過程中,Kite會自動實時將程式碼傳送至公司伺服器,在後端分析、搜尋網際網路和本地知識庫,生成答覆。
名詞解釋:”結對程式設計(Pair
Programming),是指兩位程式設計師坐在同一工作臺前協同開發軟體。這種工作方式適合知識的分享和傳遞,有利於提高工作效率——有資料顯示,編寫同一段程式碼只需要花費一半的時間、且質量更高。但程式設計師更習慣獨立工作,而結對的雙方未必技術觀點相近、脾性相投。”
目前程式設計師們使用的整合開發環境(integrated development environments,
IDEs)和文字編輯器都是不聯網的,這意味著在工作中遇到任何問題,他們需要切換到瀏覽器進行搜尋,這不僅讓工作變得不連貫,也很消耗時間。
Kite提供了一個不需要離開程式設計環境的知識庫,並在提供程式設計建議之外、進行基礎的自動糾錯。其核心技術,是基於機器學習的搜尋演算法;此外,過去一年中測試版13000名使用者貢獻的使用資料,提供了軟體工程所需的反饋之外,也加速了搜尋演算法的自我優化。
目前Kite的反應速度大約為10ms——這得益於遍佈全球的伺服器,以及預取技術(pre-fetching)的應用。軟體會根據使用者的輸入,搜尋Google、GitHub等開源知識庫,返回相關的建議,並將返回的指令內容基於其他使用者的使用頻率(而非字母順序)進行排序。此外,軟體還會對比終端輸入和GitHub程式碼,分析並提出拼寫建議。
Kite用API接入多種文字編輯器(如Sublime Text、emacs、vim、PyCharm和Atom),當下只支援Python語言,可以在OS
X和Windows系統上執行。在未來幾周內,公司會上線與Linux系統相容的版本,未來也會持續開發Python之外的更多程式語言。