阿里云云效代码智能语法服务的底层技术LSIF,产生的背景是什么样的?
.LSIF 之前,LSP(Language Server Protocol)定义了编码语言与各类终端代码编辑器之前的交互协议。原先开发者需要为每一款编辑器都定义适配一种语法分析服务应用,那么 M 个语言要在 M 个代码编辑器中使用的话需要 MxN 个应用。而有了 LSP 的出现,开发者在解析代码语法时只需要遵循 LSP 协议格式,实现代码补全、定义展示、代码诊断等接口,就只需要开发 M+N 个应用。 然而代码分析往往需要耗费大量的时间和资源,当用户请求某个语法服务(如查看定义),后端需要克隆代码,下载依赖包,解析语法,构建索引(类比一下 IntelliJ Idea 初始化工程的场景),编辑器场景用户已经习惯于这样的方式,等待几分钟或许问题不大。但 CR 场景或者轻量级的代码浏览场景,这种方式就显得时效性比较低了,几分钟后或许用户已经完成了代码浏览,而且缺少持久化的存储会导致资源过度消耗。于是,LSIF 就在这样的背景下应运而生,秉承用空间换时间的思想,提前计算好语法分析结果以特定的索引格式存储在云上,从而快速响应不同用户的多次请求。
答复内容摘自《云原生技术与架构实践年货小红书》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1127
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。