云研发 IDE Uncode:演示版发布(欢迎加入开发)


prtyaa
prtyaa 2023-12-25 13:27:52 66514
分类专栏: 资讯

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

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

PS: 我们并不为了取代现有的 IDE,也不作任何对比,只是为了实践云研发。

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。即我在去年设计的:github.com/phodal/desig ,可以实现简单的 DSL 转换为设计图,以及 DSL 转换为 UI 组件。

同样的看图:

UI 依旧很丑。

代码的代码化

代码的代码化还早着:

好吧,看这截图,我承认,这就是一个带目录功能的编辑器。哦,不,暂时还不支持保存文件,但是基本可用。

其它

Todoing。

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

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=30265
赞同 0
评论 0 条
prtyaaL0
粉丝 1 发表 2554 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1448
银河麒麟打印带有图像的文档时出错  1365
银河麒麟添加打印机时,出现“server-error-internal-error”  1151
统信桌面专业版【如何查询系统安装时间】  1073
统信操作系统各版本介绍  1070
统信桌面专业版【全盘安装UOS系统】介绍  1028
麒麟系统也能完整体验微信啦!  984
统信【启动盘制作工具】使用介绍  627
统信桌面专业版【一个U盘做多个系统启动盘】的方法  575
信刻全自动档案蓝光光盘检测一体机  484
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!