Fleet是什么

Fleet在经历了封闭式预览之后,终于推出了公开预览版本。根据Jetbrains表述,Fleet是由 JetBrains 打造的下一代 IDE,它是基于IntelliJ平台,采用了全新的用户界面和分布式架构,从头构建的。

Fleet有着几个鲜明的特点:

轻量级编辑器:在定义上,它是一个轻量级的文本编辑器,可以满足快速浏览和编辑代码的需求,同时可以轻松转换成IDE,这也就是Fleet提供Smart Mode开关的原因。而这种模式的区分,依赖的是代码处理引擎和编辑器的分开架构。

智能的IDE:当开启了Smart Mode之后,会对项目进行全局索引,通过对项目的分析,来为我们提供智能辅助。例如基于项目和上下文感知的代码补全(在试用下来之后,这个功能让我叹为观止,我们后面再聊)、代码定义、用法导航、实时代码审查修复。

分布式的架构,分布式的工作:分布式的工作是目标,分布式的架构是基础。Fleet在设计上灵活性十足,代码的编写、处理、运行都是分布式,也更好的跟远程机器进行连接。

无微不至的协作:共享终端和调试会话、执行代码审查、探索代码,以及进行许多其他操作 – 全部无需任何设置。在使用的过程中,发现了这个比较有趣的功能,虽然之前的其他的IDE版本已经提供了Code with me,但是Fleet的协作模式,还是让我产生了极大的好奇。比如文件管理怎么做?版本并发控制呢?

试用Fleet

下载安装

我选择的是先下载了Tool Box,Toolbox App下载

安装完成之后,选择安装Fleet

目前Fleet推出的是预览版本

功能介绍

此处并不想过多的介绍,真实的体验大家可以实际下载尝试一下,Fleet尝试综合各个IDE的优点,对于此,我一直持乐观态度,一个善于总结出优点的组织或者人,如何能让人不乐观呢?

我只想问,这样的UI,谁会不爱?反正我爱!

关于性能

轻量级体现在哪里?计算快?内存小?我一直认为这是一个伪命题。在当前的这种计算机架构体系下,快和小不过是中和罢了,看看Fleet的表现。

在启动Fleet,打开一个MVC项目之后,运行内存大概600Mb,如此看下来,内存确实很小,但实际上我没有开启Smart Mode,对于项目来说,不过是一个高级点的文本编辑器。

当开启了Smart Mode之后,我发现Fleet的内存确实没有大的变化,但是却偷摸起了一个Fleet_backend进程,而这个进程耗着比较大的内存。

如此看下来,仿佛优化了内存,但又没有优化。实际上,这个跟Fleet的架构有关系。

Fleet的架构

首先,不出所料的,Fleet是基于高性能、可靠的JVM平台构建。但却不是简单的单一语言Java来构建,例如图中的FSD是用RUST构建的。

FSD

Fleet System Daemon,主要负责构建命令。包含着构建、运行代码,终端执行,其他环境的系统命令。

前端

Fleet在本质上是一个文本编辑器,那么它期望具备的所有的文本编辑的功能,更不用说,文件解析,语法标识、文本补全,编辑。而这些功能,Fleet把它交给了前端来提供。

所以这个架构下的前端,并不是基础的用户界面。

工作区

这个区域是设计比较巧妙的地方,它处理工作会话相关的任务。例如,代码协同中的多人修改下的文件会话状态管理。从这个角度看来,工作区,显然可以再远程执行。

智能模式和后端

Fleet的基础文本编辑的解析、补全、查找,显然无法满足我们这样优秀的工程师的需求。更高级的代码上下文的智能代码补全,重构,检查等等,就需要一个智能模式。

说一百句,不如试一次。我仍然强烈建议你下载尝试一下。并且Jetbrains,出了一个免费的Space,可以很好的无缝跟Fleet连接。如果感兴趣,我们接下来会做一个教程来使用Space。在结束今天的Fleet话题之前,我想偷摸跟你聊聊一个有趣的话题,Fleet的分布式事务问题。

Fleet的分布式事务问题

无论是Fleet的无缝合作模式,亦或者其他的IDE的code with me,在并发或者网络波动的情况下,就有一个文件的幂等问题,也就是牵扯到了分布式事务的问题。

场景

假设有两个用户A和B同时操作文本,他们有如下场景:

场景一:A对文件进行了重命名,B需要在自己的电脑上看到

场景二:A对文件重命名,B修改了文本中的内容

场景三:A使用了Fleet的括号匹配通过(,自动生成一对括号(),B删除了(

在聊这些之前,我们先看看,Fleet目前的工作模式。

我们可以理解,每一台FRONTEND都有一个Kernel,在负责文件状态的转换和交换。workSpace就是我们提到的工作区,无论是远程的还是本地了,我们都可以理解这样一个去中心的分布式架构,状态变成了分布式的传输,那么自然而然的就需要分布式事务来控制状态。

场景分析

场景一:A对文件进行了重命名,B需要在自己的电脑上看到。

场景二:A对文件重命名,B修改了文本中的内容

无论用户A的操作和用户B的操作在本地的应用状态是如何的,最终都会同步到工作区,在工作区进行定序,之后在各个端进行无条件的重放。这样用户A和B都能得到一个最终的结果。

场景三:场景三:A使用了Fleet的括号匹配通过(,自动生成一对括号(),B删除了(

好了,至此Fleet介绍完了,实际上在上面就介绍完了,作为Jetbrains的忠实老粉,我还是期待正式版Fleet的登场的,下期Space再见,拜了个拜。

Fleet的台子,我不能落后!相关推荐

  1. STM32单片机真的落后?

    一般这样认为的,只能说对单片机这个行业一无所知. 我用STM32做过的产品超过13款,占据了大部分. 我从两个方面来分析下现在STM32到底落不落后,太学术化的东西我不讲,保证小白都能听懂! 1.市场 ...

  2. 中国在5G、AI等领域对美国紧追不舍,但设备工艺依旧落后

    美国电子行业战略咨询公司 国际商业战略公司(IBS)CEO Handel Jones博士上个月在美国半导体协会举行的网络研讨会上对中国正在赶超美国的领域进行了分析. Handel Jones认为有以下 ...

  3. 商业大佬提醒:如果不采取措施,美国在人工智能领域将落后于中国

    https://www.toutiao.com/a6650112444876194311/ 2019-01-25 01:12:40 大量的美国商业精英逐渐形成了这样的共识: 全球范围内,中国在人工智能 ...

  4. 云监控状态调查:公有云和混合云的监控成熟度落后于传统数据中心

    据悉,目前企业对于所选购的公有云环境的可见度很低,且云提供商提供的工具和数据也十分不足.而可见度的缺乏会导致各种问题,例如无法跟踪或诊断应用程序的性能问题,无法监视和交付服务级别的协议,耽误检测和解决 ...

  5. 英特尔二号人物被解雇:7nm全面落后,芯片还要外包代工

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 昨天,英特尔宣布解雇二号人物.芯片业务主要负责人Murthy Renduchintala. 同时还全面重整了技术业务的架构. 原因,是英特 ...

  6. 韩寒:出了国才知道,外国是多么的落后(写的真委婉~不愧是韩寒)

    前几天从天朝飞往岛国澳大利亚,指导WRC工作的开展.刚下飞机,第一印象就很差,居然没有当地小学生组成的腰鼓队对我们进行迎接.走了几步,觉得澳大利亚不光是一介岛国,还是一个鸟国,很多的鸟类在地上乱走,极 ...

  7. 计算机专业的教学内容落后实例,关于中职计算机专业教学现状的思考.doc

    关于中职计算机专业教学现状的思考 关于中职计算机专业教学现状的思考 关于中职计算机专业教学现状的思考 [摘 要]本文从中职计算机专业学生基础薄弱.教学内容落后.学生缺乏实践训练等方面指出了本专业教育教 ...

  8. 爱立信总裁表示欧洲网络始终趋于落后,网站推广之下5G发展需加快步伐

    自从移动互联网的逐步完善发展后,越来越多的设备选择连接到移动网络当中,5G网络也是时代发展催生的产物,早在2020年移动数据流量的上涨为当下移动通信网络的发展带来不小的压力.而5G网络的出现足够满足用 ...

  9. git push时提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支

    在对本地库中的文件执行修改后,想git push推送到远程库中,结果在git push的时候提示出错: ! [rejected]        master -> master (non-fas ...

最新文章

  1. linux系统无法挂载U盘
  2. 操作系统学习笔记:进程同步
  3. python交互式绘图库_一个交互式可视化Python库——Bokeh
  4. python 列表筛选数据
  5. c primer plus--数据和C(第3章)--习题
  6. 1.10 梯度消失与梯度爆炸-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  7. 在STM32上实现使用DMA+USART3传输数据
  8. Spring MVC类型转换的意义
  9. 网上偶看一文,有感。特贴在下面。
  10. jsp % % ! 区别
  11. [转载] 【汇总】Android知识清单
  12. 批处理变量输出时提示“ECHO处于关闭状态”
  13. dell r710重装系统_dell服务器安装系统指南
  14. vs2019无法启动程序 系统找不到指定文件
  15. 统信UOS应用商店十月活动
  16. 18_2Servlet学习笔记
  17. 如何用Python编写一个求 1到n阶乘之和的程序
  18. 企业数字化最核心的数据智能,它的价值到底在哪?
  19. 9款漂亮的纯css字体样式
  20. Hook android系统调用研究(一)

热门文章

  1. uniapp 小程序 map设置地图缩放失效解决方法
  2. 如何在Linkedin领英上找客户
  3. 小钢炮 I7-8850H,UHD 630黑苹果10.14.4成功
  4. matlab实现ostu法图像分割
  5. DBCO-NH2,DBCO-Amine 实验室 杂氮二苯并环辛炔-胺 1255942-06-3
  6. 极简主义风格的应用方式,在纽约现代美术馆的体现,技术,思潮,思维有哪些?...
  7. python中浮点数间运算存在不确定尾数_python 浮点数类型
  8. 使用 F12 开发人员工具
  9. POI 导出 excel 设置单元格背景色 的坑
  10. 检索框/输入框测测试用例