JetBrains又出神器啦!Fleet,体验飞一般的感觉
简介
java开发的同学可能对于JetBrains这家公司并不陌生,因为JetBrains号称拥有世界上最好的JAVA开发工具IDEA。确实IDEA非常好用,它满足了一个java开发者所有的梦想。
当然JetBrains还提供了其他语言的开发神器,PyCharm,PhpStrom,WebStorm等等。只要跟开发工作有关的,都能在JetBrains的全家桶中找到。
这么好用的神器自然是价格不菲,但是JetBrains特意为学生党推出了免费的licence版本,非常的人性化。
现在JetBrains又准备推出一款编辑器Fleet,这款编辑器到底是做什么的呢?它有什么优点呢?一起来看看吧。
从eclipse到Fleet
还记得最开始接触java的时候,还是从JAVA的命令行开始的。编写完代码之后,首先用javac命令将代码编译成字节码,然后再使用java命令去运行。虽然java是世界上第二好用的语言,但是这种手动编译运行的方式实在让人头痛。
后来有一天,听同学介绍,发现了eclipse这个工具。当时实在是惊为天人!它是如此的强大,颠覆了我对IDE的认知。
当然,我始终认为IDE做的最好的是微软出的Visual Studio,简直是包罗万象,可惜那时候Visual Studio只支持微软自己的C#和.net平台,无奈只好放弃。
eclipse又好用又免费,加上品类繁多的各种插件,DIY一个符合自己口味的IDE不在话下。
所以那时候在开发之余的另外一个爱好就是反复安装eclipse的各种插件,体验不一样的乐趣。
后来在工作中,一开始也是使用eclipse,不过eclipse作为一个纯开源项目,也暴露出来了它的短板,就是第三方插件比较混乱,在使用中往往有这样那样的bug。
然后有同事给安利了IDEA,说实话最开始的IDEA是很丑的,并且IDEA对项目的组织方式更加松散,更像是对一个个文件的管理而不是项目,所以我仍然坚持使用eclipse。
那么,是什么让我产生了从eclipse到IDEA的转换呢?
记得,那是一个夏天,天还还很蓝。我像往常一样点进eclipse的官网,看一下是否有最新的版本可以升级。
本来没报什么希望,结果还真的有,这个版本就是eclipse che,居然是一个web版的开发工具,号称是下一代eclipse。
难道eclipse以后就只能在web端使用了吗?浏览器的体验有没有本地开发工具这样丝滑呢?
虽然我很担心,但是抱着试一试的态度,还是按照官方的文档,尝试安装eclipse che。
安装过程很痛苦,使用过程更加痛苦。不知道是我机子系统的问题还是它的文档没有写明白,我硬是没有能够用eclipse che来开发一个项目。
eclipse che本意是将开发环境搬到云上,奈何那时候的技术和思想有点太超前了,于是成功把我劝退了。
接下来就从eclipse切换到IDEA,进行了多年的开发。后面再也没有去关注过eclipse和eclipse che的发展。
在写这篇文章的时候,我特意去看了下,原来Eclipse本地的IDE还在,它的最新版本是2021‑12,eclipse che也发展到了7.0版本,并且开始支持Kubernetes-Native。
但是,一切都回不到过去了。
既然eclipse已经过去了,我们再聊一下IDEA。
说实话,作为一款付费的软件,IDEA在使用上的确比eclipse强。最好用的java开发IDE不是白吹的。
当然,为了支持IDEA这么强大的特性,就需要占用大量的系统内存。IDEA动不动就1G-2G完全不成问题。
那么有没有轻量级的开发工具呢?当然有。
所谓开发工具,就是支持代码高亮,编译代码这些功能的工具,记事本之类的这里就不提了。
那时候有两个工具可以使用,一个是atom,一个是微软的vs code。
两者都是轻量级的开发工具,都支持插件的扩展。我也都用了,最后还是选择了微软的vs code。虽然没有具体进行比较,但是感觉微软的更加稳定,功能性方面更好。
既然已经有了微软vscode这样的强大又简洁的轻量级开发工具,那么Fleet凭什么认为大家会选择它呢?
这是一个好问题。我们细细道来。
Fleet的特性
Fleet最大的优势就是背靠jetbrains这颗大树,有了IDEA等一众开发工具的加持,大家很难不相信Fleet的品质。
换用jetbrains的话来说,他们花了20年的知识和经验来编写开发工具,并且Fleet底层使用的是IntelliJ的代码处理引擎,所以Fleet是足够可信的。
当然,有了保证还是不够的,我们需要知道Fleet到底有那些特性。

先看下Fleet的主界面。非常的简洁漂亮。自带了git和history。
Fleet支持自动完成,重构,跳转,debug等所有IDE应该支持的特性。
目前Fleet支持的语言有JAVA,kotlin,python,go,javaScript,Rust,TypeScript和JSON。其他的语言如PHP,C++,C#,HTML正在开发中。
看到这里,我们可能还有疑问,这些特性好像其他的轻量级IDE都有呀,那么Fleet的特色在哪里呢?
分布式!没错,是分布式!
Fleet的架构是分布式的,Fleet 并不关心您的项目是在本地、在容器中还是在千里之外的另一个国家。 通过提供虚拟化文件系统,Fleet 可以同样出色地处理本地和远程项目。
Fleet有三种工作模式,分别是Editor mode,Smart mode,Distributed mode.
对于editor mode来说,一切都是本地的,所以它提供的功能和特性比较有限:

在Smart mode中,可以提供一些高级的特性,比如项目和上下文感知代码完成、定义和用法的导航、动态代码质量检查和快速修复等。这些特性不是一个轻量级的Fleet能够完成的,所以需要额外的Language Servers和Code engine来处理,如下图所示:

什么叫做Distributed mode呢?就是把这些Language Servers和Code engine统一放到云上或者docker容器中,本地的Fleet只作为客户端和远程服务器进行连接即可:

这样的分布式也同时可以实现多用户协同合作的功能。
个人感觉,Fleet可能是eclipse che的高级版本。敬请期待。
JetBrains Space
另外,jetBrains还把Fleet和JetBrains Space进行结合。
你可以把JetBrains Space看做是一个远程的工作环境,可以免去了本地搭建工作环境的烦恼。
总结
Fleet这么好用,那么怎么下载呢?很抱歉,Fleet暂时无法下载,你必须到Fleet的官网上去申请,听说名额有限,赶紧行动起来吧。
JetBrains又出神器啦!Fleet,体验飞一般的感觉的更多相关文章
- webform 转 MVC 飞一般的感觉
前言: 浅谈webform与mvc,让开发变得更加简单,这里主要通过比较webform与mvc的开发方式,以下全属个人看法,不完善的地方可以留言补充. 正文: 废话不多说,直接说工作中经常用到的地方 ...
- 阿里巴巴开源性能监控神器Arthas初体验
如果问性能测试中最难的是哪部分,相信很多人会说“性能调优”.确实是这样,性能调优是一个非常复杂.技术含量很高的工作.涉及到的知识面很广.以我多年从业经验来看,在企业里,大多数的性能调优都是由开发架构师 ...
- 飞一般的国内maven中央仓库
修改maven根目录下的conf文件夹中的setting.xml文件,内容如下: <mirrors> <mirror> <id>alimaven ...
- easyui combobox 去空格事件 去掉,结果输入空格体验不畅的感觉,让combobox能够输入空格
$("[comboname=name]").next("span").find("input.textbox-text").unbind(& ...
- [Docker基础]Docker安装教程
Install Docker Docker支持几乎所有的Linux发行版,也支持Mac和Windows. 各操作系统的安装方法可参考Docker官网. 安装环境 ubuntu 16.04 Docker ...
- i春秋官网4.0上线啦 文末有福利
爱瑞宝地(Everybody)期待了很久的 i春秋官网4.0上线啦 除了产品的功能更加完善 性能和体验也将大幅度提高 清新.舒适的视觉感受 搭配更加便捷的操作流程 只需一秒,扫码立即登录 即刻进入网络 ...
- 03-运行第一个docker容器
环境选择 容器需要管理工具.runtime 和操作系统,我们的选择如下: 1.管理工具 - Docker Engine因为 Docker 最流行使用最广泛. 2.runtime - runc Dock ...
- thinkphp框架的优缺点
ThinkPHP的优缺点如下: 1.高级模型:可以轻松支持序列化字段.文本字段.只读字段.延迟写入.乐观锁.数据分表等高级特性. 2.视图模型:轻松动态地创建数据库视图,多表查询相对简单. 3.关联模 ...
- Get Docker CE for Ubuntu
Docker 分为开源免费的 CE(Community Edition)版本和收费的 EE(Enterprise Edition)版本. 配置 Docker 的 apt 源 1. 安装包,允许 apt ...
随机推荐
- java的String参数格式化
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. form ...
- CF187D BRT Contract
考虑如果哪次经过了红灯则显然已经和出发的时间没关系了. 然后我们需要做的是怎么样找到最近的一个是红灯的点. 然后实际下是我们做一个前缀和:\(L_i = \sum d_i\) 然后求\(\min (L ...
- Codeforces 961F - k-substrings(二分+哈希)
Codeforces 题面传送门 & 洛谷题面传送门 介绍一种奇怪的 \(\Theta(n\log n)\) 的奇怪做法. 注意到这个"border 的长度必须是奇数"的条 ...
- Atcoder Grand Contest 002 F - Leftmost Ball(dp)
Atcoder 题面传送门 & 洛谷题面传送门 这道 Cu 的 AGC F 竟然被我自己想出来了!!!((( 首先考虑什么样的序列会被统计入答案.稍微手玩几组数据即可发现,一个颜色序列 \(c ...
- python16线程
python对于I/O密集型应用比较好,具体根据是什么类型应用来查看 对于cpu密集型应用可以借助python的一些扩展去实现 thread模块是比较早期的模块,thresding是比较新的模块,对t ...
- docker可视化管理Portainer
Portainer是一款轻量级docker容器管理平台,占用资源少,支持集群,支持权限分配. $ docker volume create portainer_data$ docker run -d ...
- 从零开始学习oracle
引用博客:https://blog.csdn.net/qq_36998053/article/details/82725765 )Oracle之<环境配置> (二)Oracle之<基 ...
- hbase调优
@ 目录 一.phoenix调优 1.建立索引超时,查询超时 2.预分区 hbase shell预分区 phoenix预分区 3.在创建表的时候指定salting. 4.二级索引 建立行键与列值的映射 ...
- c#GridView
分页: 1.先把属性AllowPaging设置为true, 2.pagesize为每一页的行数,PageSize="15". 3.OnPageIndexChanging=" ...
- Elasticsearch【基础入门】
目录 一.操作index 1.查看index 2.增加index 3.删除index 二.操作index 1.新增document 2.查询type 全部数据 3.查找指定 id 的 document ...