龙空技术网

Fleet,新一代IDE,Java初体验

天天写Bug 3684

前言:

目前各位老铁们对“java轻量化ide”大致比较关切,咱们都想要知道一些“java轻量化ide”的相关知识。那么小编也在网络上搜集了一些有关“java轻量化ide””的相关知识,希望咱们能喜欢,大家一起来了解一下吧!

前段时间JetBrains发布了新一代的IDE,Fleet,目前预览版处于邀测阶段,JetBrains对Fleet的描述是轻量、智能、分布式、协同。

轻量:当你需要快速浏览和编辑代码时。它能作为轻量的文本编辑器在瞬间快速启动,让你可以立即开始工作,而且它可以很容易地转换为一个IDE,此外,IntelliJ的代码处理引擎与编辑器本身是分开运行的。智能:Fleet继承了开发者对于IntelliJ的IDE中最喜欢的模块,比如基于代码上下文感知的代码补全、对定义及引用的快捷导航、即时的代码质量检查以及快速修复。分布式:Fleet的架构方式能支持一系列的配置和工作流程。你可以简单地只在你的机器上运行Fleet,或将一些处理模块转移到其他地方,例如将代码分析处理放在云端,减少本地的内存消耗,并提高代码分析的复用性。协同:你可以通过Fleet与其他人一起编写代码。Fleet不仅仅是允许共享编辑器,你可以通过Fleet共享终端和调试会话、代码审查、浏览代码等完成诸多协作任务,并且无需设置。

开发者也可以通过Fleet进行云端开发,开发者能在JetBrains的代码托管平台Space中直接打开Fleet,它会在云端启动一个容器对仓库代码进行处理及分析,本地端的Fleet只需连接到云端服务即可快速开发。目前Fleet支持Java、Kotlin、Go、Python、Rust、JavaScript以及TypeScript语言。

下面就带大家一起来体验一下。

界面样式

Fleet刚启动时,是默认的浅色主题,不得不说看起来挺轻量的,就是有点白瞎了眼,边框有点看不清。

目前Fleet不支持自定义主题,只提供了浅色主题以及内置的暗色主题,暗色主题有一点样式的兼容问题,部分按钮与背景色相同,导致无法看清,只有当鼠标划过时,才能发现那个地方居然有个按钮存在。我个人还是比较喜欢IntelliJ IDEA的默认皮肤,Fleet的皮肤还是有点差强人意。

Fleet提供了左侧工具栏、右侧工具栏以及底部工具栏,每个工具栏都能打开文件树、Terminal、搜索栏等模块,并且每个选项卡都支持拖拽,但是自由度有限,只能放置到固定的几个位置,当然,这样已经能满足大部分开发者的布局需求。

工程初始化

本次体验我主要以Java项目为主,因为JetBrains做的最好的还是Java/Kotlin。Fleet的新建工程还是很麻烦的,无法像Intellij IDEA一样根据模板自动生成工程结构,只能像VSCode一样通过一个个创建文件夹及文件进行工程结构的初始化,在当前没有插件支持的情况下是非常不方便的。为了演示方便,我只能先到Intellij IDEA中创建了一个简单的Maven工程,并在Fleet中直接打开。

默认情况下Fleet打开的Java工程为轻量模式,类似VSCode的light mode,只支持代码高亮,用于快速的代码浏览,如果想进行引用/定义的跳转,会提示需要开启“Smart Mode”。

下面我们打开“Smart Mode”,开启过程是需要等待一段时间的,它需要去下载“Smart Mode”依赖的组件,Fleet很多组件都是需要懒加载的,毕竟它支持多语言,不能直接加载所有语言的依赖组件,那样就不太轻量了。组件下载完成之后,它会像IntelliJ IDEA一样对工程进行索引,期间会解析并下载Maven依赖,这套技术体系是与IntelliJ IDEA保持一致的,底层也是基于PSI语法服务,这种方式能让Fleet也具备IntelliJ IDEA的开发体验。

我们来看下在打开相同的工程时,内存的占用情况。如下图所示,Fleet的内存占用确实要小很多,并且根据官方的介绍,Fleet的前端及后端组件能分布式部署,比如本地机器的前端只有编辑器及UI展示效果,将语法分析索引模块放到另一台机器/远端上,这样开发者的本地机器的内存占用将会更少,其他人也能复用语法分析的结果,这种方式确实体现了一定的轻量性。

Fleet轻量模式

Fleet Smart模式

IntelliJ IDEA

内存占用量

644MB

750MB

1.44GB

在文件树的“External Libraries”中能查看当前工程的依赖包引用情况,这块是跟IntelliJ IDEA保持一致的。

编码体验

下面我们实现一个简单的代码。下图中我们能看到Fleet提供了Java代码补全功能,响应速度也比较快,没有卡顿的感觉。

我们来对比下Fleet与IntelliJ IDEA的代码补全效果,体验下来编码体验与IntelliJ IDEA没有差别,非常顺滑,这点比VSCode好太多。

遇到没有导入的类时,能像IntelliJ IDEA一样自动的导入,也能在右键菜单中点击“Quick fixes”进行手动导入。

当有遇到报错时,Fleet也能通过“Quick fixes”提供快速修复的方法,这点的体验也是与IntelliJ IDEA一致的。

Fleet的代码补全也集成了IntelliJ IDEA的代码模板,比如我们常用的sout、fori等都能使用。

代码搜索

Fleet分为全局搜索以及范围搜索两种方式。

一、全局搜索

点击右上角的搜索按钮即可弹出全局搜索弹窗,样式与IntelliJ IDEA的全局搜索栏比较相似。支持以下几种搜索方式:

GOTO:查找并打开到指定的类、方法或文件。ACTIONS:类似VSCode的Commands,提供了诸多快捷命令。TOOLS:提供Git、Docker等工具面板的快捷入口TEXT SEARCH:提供基于文本的搜索方式

二、范围搜索

范围搜索可以自定义放置到左侧、右侧、底部工具栏中,功能及样式类似于VSCode的搜索功能,能指定需要搜索的范围,并且进行简单的条件筛选。

运行调试

Fleet的程序运行方式可以像IntelliJ IDEA一样在点击播放按钮运行,也能像VSCode一样,通过JSON配置文件运行。程序运行的参数配置没有像IntelliJ IDEA一样进行UI化,这对不熟悉参数配置的开发者不太友好,有一定的学习成本,而且Fleet在这块的文档也不完善。不太好的地方是在控制台输出中文时,存在乱码问题,而且偶尔会报找不到main方法的错误,不是很稳定。

第一次运行Java代码时,Fleet需要下载200MB左右的Kotlin、jps等组件,说明Fleet的很多组件都是可插拔的,便于轻量化部署。

Fleet的代码调试个人感觉比VSCode流畅,VSCode的调试是比较卡的,调试这块Fleet也是继承了IntelliJ IDEA的优点。

总结

整体体验下来,Fleet比较好的地方主要是代码补全、代码检测以及快速修复,这块继承了IntelliJ IDEA的优秀基因,其他方面目前使用起来还是略为粗糙,Bug也比较多,当然,作为一个刚发布的预览版本,还是可以接受的。目前Fleet的插件市场还在建设中,希望能将IntelliJ IDEA的插件平滑迁移到Fleet中,这样Fleet就能快速完善自身的不足。小伙伴们,你们更喜欢Fleet还是VSCode呢?欢迎在评论中留言。走过路过,随手关注一个!

标签: #java轻量化ide