关于ide:云研发-IDE-Uncode演示版发布欢迎加入开发

41次阅读

共计 1813 个字符,预计需要花费 5 分钟才能阅读完成。

花仲马,五一在加班,我便只得找点事件做。

还记得 Uncode 吗?用于落地我构思的整个云研发体系的 IDE,如果不记得的话,请拜访『流程即代码:低代码 & 云研发 IDE —— Uncode』。它来了,当初来了。

Uncode 架构

我,兴许善于 IDE 的插件开发,还有浏览了大量 Intellij IDEA Community 的源码,但也说不上善于 IDE 的设计 —— 有太多的坑值得去探。特地是在五一之前,我尝试用 Druid 去构建一个编辑器,便发现这并不是容易的事件。所以,我走回了 WebView + Monaco 的路线,而后用 Rust 作为零碎的外围:

上图是以后 Uncode 的架构图:

  • 基于 Tauri,所以应用的是原生的 WebView 构建。抉择 Tauri 的起因是:对 Rust 反对更敌对。
  • UI。TypeScript + React,选 React 而不是 Angular 的一个起因在于:1. 好久没用 React 了。2. 外加国内的 Angular 用户变小了。
  • App。Tauri 基本上作为是一个 Proxy 在运行 + 零碎接口的拜访,将外围性能下沉至 uncode。
  • Uncode Core。次要工作:1. 提供泛滥 DSL 的解析和解决。2. 封装泛滥工具,以提供剖析性能,用于撑持反馈反馈。3. RPC 反对 —— Tauri 太麻烦了。

或者,你还留神到了 Golang。

Uncode 应用 Rust 来实现各类的 DSL 的解析,以及各类的代码生成。然而,Rust 还短少一个重要的工具,Antlr(至多还不稳固)。仍旧是那个老问题,Antlr 官网提供了大量的现有编程语言的语法,这个重要的个性因为反对咱们做动态剖析。所以,咱们将应用 Golang 来临时实现这样的性能。

Uncode 的第一个小指标

思考到 Uncode 不是一件容易的事件:

  • 设计一系列 DSL 来将设计和流程等代码化
  • 设计一个语言(即 Datum,原来的 Charj)来转换不同的语言
  • 设计一系列接口来集成其它一系列工具
  • ……

所以,Uncode 的第一个指标,相当的简略:能够用 Uncode 来编写 Uncode 的编辑器。

IDE 的复杂性。变身为一个 IDE 是一件非常复杂的事件。在那之前,须要筹备好稳固牢靠的 UI 接口 + 良好的交互性。当然了,还有对于诸多工具的集成。

Uncode 演示版

所以,在五天里(加上 4.30 号),我开发了演示版本的 Uncode,除了不能写代码,它仿佛什么也能做。

需要即代码

需要代码化,行将软件开发需要形象为特定的畛域语言,并应用治理代码一样的形式来治理需要,追踪需要的变动。同时,为通过新的 API 来对接版本管理系统,以可视化需要,演变为看板代码化。

『需要即代码』作为 Uncode 的第一个局部,在演示版里,我实现得比较简单,读取代码库里的 story,解析其中 cucmber 的语法,而后展现到 Uncode 里。对应的 DSL 也还在晚期(因为还得改 Cucumber 对应语法的解析器)。

# status: backlog
Feature: 架构守护 DSL 设计
  作为一个架构师,我心愿在设计通过相似于 ArchUnit 这样的 DSL 来设定调用规定等。Scenario: 开发人员违反规定时,无奈提交代码
    # Enter steps here

因为,应用的 Kanban 库不是很欠缺,所以并没有创立对应的编辑性能。对应的性能截图如下:

设计即代码

设计即代码就略微简单一些,分为这么四局部:

  • 架构描述语言。此处是有一个 DSL,只是我还在设计中。
  • Modeling。说是建模,然而也说不上,模型的双向绑定。即扫描代码,生成 UML,而后展现;批改 UML 的话,会批改对应的代码。(前半部分反对,后半局部暂不反对)。
  • 架构适应度函数。第一个性能是架构守护,即基于 Arch Unit 的 DSL 形象。其它的临时懒得写了。
  • UI Design。即我在去年设计的:https://github.com/phodal/design,能够实现简略的 DSL 转换为设计图,以及 DSL 转换为 UI 组件。

UI 仍旧很丑。

代码的代码化

我抵赖,这就是一个带目录性能的编辑器。哦,不,临时还反对保留文件,然而根本可用。

其它

Todoing。

就这么五天,你还想要什么自行车。

小结

GitHub 下载预览版:https://github.com/inherd/unc…

如果你善于又或者是对以下的内容感兴趣:

  • React
  • Monaco Editor
  • Rust
  • Tauri
  • 对 UI 有美感

人生苦短,欢送退出 Uncode 的开发:https://github.com/inherd/uncode

正文完
 0