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之外的更多编程语言。