查看“【项目】数字基座(OGAS编辑器探索版)”的源代码
←
【项目】数字基座(OGAS编辑器探索版)
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{4}} 💡[[OGAS]](俄语:Общегосударственная автоматизированная система учёта и обработки информации,英语:All-State Automated System,全国自动化系统)是一项苏联的全国性网络工程 <br>数字基座 是一个OGAS在新时代下的新尝试,目的是建立全国性的自动化系统,以统一的形式构建数字基础设施,打通各行各业的壁垒,形成一个高效的整体。 <br>🥜姊妹项目:[https://kdocs.cn/l/cvNWBmWfLEKO Sait平台开发计划],[https://kdocs.cn/l/cqnH3YhbDGbg SAIT平台项目(迭代)说明] <br>项目说明: <br>1. 引言 <br>从长远看,随着 数社小组 或者 其它类似的组织的不断壮大,对于各类 App 的需求一定会越来越多,而人手必然会面临不足,且各模块的衔接也需要大量人手,到时候需要一个类似【低代码】编辑器的 App,用于辅助或加速生产其它 App 并将它们衔接在一起,同时还需要提供一些基础服务,比如用户服务、支付系统、任务系统、插件市场等等。简单的说,数字基座是一个提供基础组件的积木式的工具型 App,一个可以加速【生产 App 的 App】,将来这些子 App 涉及的面,包括但不限于:影视、游戏、数控机床、自动化农业、数学研究、数据显示、系统工具、中台界面等等。 <br> 有人会问,为什么不直接使用微信、企业微信、飞书、淘宝、抖音这样的“基础服务”?为什么要另起炉灶? <br>因为现有的资本企业之间存在壁垒,数据的流动和页面的跳转存在非常大的障碍,如果我们拥有自己的数字中台或者基础服务,则可以省去各种繁琐的开发和对接,提高整个社区的运作效率。 <br> 那么,为什么不使用 [[IDEA]]、[[VSCode]] 等编辑器,为什么要制作我们自己的编辑器?见 附录A。 <br> 数字基座 带来的好处(能解决什么): <br>1. 提供基础组件,使得在其基础上生长出来的子 App 天生具有较强的功能。 <br>2. 提供类似低代码的拖拽式编辑方式,使得普通人也可以制作 App,这是与低代码相似的地方。 <br>3. 提供强类型编程环境,使得我们可以精确地、深度地定制应用中的每一个细节,这是与低代码不同的地方。 <br>4. 提供近似 Notion 或 Unreal蓝图 一样的无字符串编程环境,降低用户使用的门槛,提高底层编译器的速度,减少因反复解析带来的性能损耗,同时将来还会提供编译到 C 的能力,解决性能焦虑问题。 <br> 凭什么数字基座能做到,而别的平台做不到(区别在哪里): <br>1. 其它平台存在壁垒,而我们的没有壁垒,任意同类型组织或集体,都可以共享数据,共享组件。 <br>2. 基于非字符串编程环境,类型不会丢失,文档和注释与类型明确绑定,用户负担轻,操作体验更好。 <br>3. 在其它平台中,写死的界面是第一公民,而逻辑是次要的或缺失的,而在数字基座中,逻辑是第一公民,这使得任意修改都变得极其容易(不论文档编写还是逻辑编写都是拖拽式操作),而无需用户学习多种语言和配置语法。 <br> 以上这些,归总起来意味着什么? 意味着一旦这个基座完成,我们会获得极大的效率提升。不论是单一内容的创作,还是多模块的衔接,都非常便捷迅速,因为所有的功能都基于这个底座,所有内容都是可以自然衔接的。这里的效率提升,跟现有的 [[SAIT]] 项目有一定的交集,区别在于,数字基座以逻辑组件为主体,且不专门面向某个特定领域,数字基座面向的是相对泛化或相对通用的需求,用户可以基于数字基座打造其它应用。 <br> 也就是说,数字基座更偏向数据和逻辑编辑器,而 [[SAIT]] 偏向数据和文档编辑器。两者没有好坏优劣之分,只有适用范围、交互方式和阶段性目标的差别,且由于 [[SAIT]] 使用了更成熟的技术(React),所以可以快速呈现,解燃眉之急,而数字基座则是一种探索式的尝试,难点太多,不一定能成功: <br> 2. 方案 <br>怎么解决 <br>先实现最基础的交互逻辑、代码方块的运行和调试,再引入外部功能组件,然后进一步优化体验细节。 <br>产品形式 <br>短期的 交互 界面类似游戏:《70亿人》 <br>长远规划中的 功能 类似:Apple App Store + Steam + B站 + 淘宝 (看着很杂,但所有界面风格都脱胎于《70亿人》,界面风格会保持统一,而功能则进行融合,本质上软件市场和商品市场是同构的,可以融合) <br>设计原则 <br>A. 统一:尽量不采用多语言和多配置,而是尽量使用一种语言、一种交互逻辑(但可以通过序列化在多环境中传输)。 <br> 保持风格统一,不区分文档和逻辑,不区分前后端,一切皆逻辑,一切皆数据、一切皆可运行。 <br> 所有功能尽量使用编辑器本身创造的语言来实现(实现一定程度的自举)。 <br>B. 简单:保持简易,简易优先。 <br>C. 自动:服务于自动化,消除尽量多的人工环节。 <br>D. 有趣:吸引年轻人 <br> 技术栈 <br>• 前端:Flutter支持的多平台架构,预计开发网页和移动端两个版本供技术与非技术成员使用。 <br>• 服务端: C++、Golang、Node.js 、[[Rust]] 等多端支持(仅逻辑和数据层面,不涉及界面)。 <br>• 部署:手机端、Web端、将来可能部署到 AR眼镜、VR 头显端。 <br>• 数据源:任意支持 Key-Value 结构的载体,包括但不限于文件服务、Redis。 <br>迭代计划: <br>[x] UI 界面 <br> [x] 基本的逻辑方块显示 <br> [x] 拖拽空白处平移画布 <br> [x] 方块的次序调整(上、下) <br> [x] 方块的父子次序调整(Tab前、Tab后) <br> [x] 双指缩放画布 <br> [x] 鼠标滚轮缩放画布 <br> [x] 插入点的显示 <br> [x] 白色插入点 <br> [x] 定位到最接近的方块 <br> [x] Tab 退格距离与方块保持一致 <br> [x] 绘制一条曲线,连接白色插入点和绿色拖拽点。 <br> [x] 绿色拖拽点 <br> [x] 超出边界时仍可拖拽 <br> [x] 超出边界时可弹回(左上方弹回) <br> [x] 拖拽父对象时子对象跟随 <br> [x] 拖拽父对象,并松开时,以动画缓动的形式重新嵌入到队列中。 <br> [x] 同时显示方块的类型和值 <br>[x] 方块功能扩展 <br> [x] 编辑方块的值 <br> [x] 可编辑文本 <br> [x] 可编辑数字 <br> [x] 如果输入不合法的数字则弹出提示 <br> [ ] 参数的显示和定位 <br> [ ] 可编译到简单的 Html 界面 <br> [ ] 可编辑逻辑运算(if、else、goto、for、return等) <br> [ ] 可封装 <br> [ ] 可保存 <br> [ ] 可搜索 <br> [ ] 可导入(复制) <br> [ ] 可导入(引用) <br> [ ] 可分享 <br> [ ] 可执行 <br> [x] 可调试 <br> [ ] 语句可在显卡中运行,如 inGPU( add(128, 256) , 1024*768) <br> [ ] 历史记录对比(类似 git 代码比较,且支持多人在线编辑同一个逻辑视图) <br> [ ] 可编译到 C 、可编译到 [[Rust]],对比 AST 执行效率和编译后的执行效率 <br> [ ] 引入影视相关函数(如:调用一个函数处理一个视频,导出到硬盘) <br> [ ] 引入聊天相关函数(如:开设一个 Room,生成邀请链接,然后弹出聊天窗口) <br> [ ] 引入游戏相关函数(如:路径追踪光照、面部表情动画匹配语音、显示骨骼动画) <br> [ ] 引入大数据训练和执行的函数(如:MiniGPT、可调用和显示股市数据) <br> [ ] 社区构建(贡献排行榜、用户、点赞、评论、转发、博客、教程、买卖等) <br>[ ] 体验的迭代 <br> [ ] 按钮布局改版 <br> [ ] 伸缩和动画按钮 <br> [ ] 支持键盘操作、支持快捷按键操作 <br> [ ] 支持VR射线的点选和拖拽 <br> [ ] 点击后的声音效果 <br> [ ] 点击后迸发出的粒子动画 <br> [ ] 星空地图 <br> [ ] 摄像机靠近后,挂载用户头像 <br> [ ] 摄像机再靠近,呈现该节点对应用户的动态,点击后进入其空间 <br> [ ] 贡献排行榜(消费排行、点赞排行、编辑推荐榜) <br> [ ] 函数智能推荐 <br> [ ] 语音 API 支持、引入实时翻译函数。 <br> [ ] 售卖硬件函数,硬件即函数,卖出去后,能自动联网,且可以在屏幕上被调用、被调试。 <br> 以上功能有待展开,目前 App的功能完整度约为 6%。 <br>内容发布 <br>https://poerlang.com/ogas <br>源码 <br>digso/ogas (github.com) <br>(需获得团队权限方可访问,请联系 @破耳狼 或 @廿一日的船) <br>相关人员 <br>当前开发人员 @[[用户:破耳狼|破耳狼]] ,参与讨论和 review 的人员 @[[用户:廿一日的船|廿一日的船]] <br> 欢迎加入、或直接在0群讨论。 <br> 附录A <br>传统编辑软件的弊端: <br>1. 传统编辑器倾向于容忍太多风格各异的语言和配置语言混杂,没有做必要的融合,加大了新手入门的难度(例如网页开发环境 html+div+css+typescript+javascript+sql+java+node.js+各种配置文件,加大了学习难度)。 <br>2. 没有对语言的风格和功能本身做隔离、没有对性能和界面做彻底的隔离。 <br>3. 没有杜绝代码文件的反复 parse,加大了CPU消耗,增加了卡顿。 <br>4. 传统编辑器大多基于字符串的编辑,边界不明晰,新手容易写出多一个括号或少一个逗号的代码从而报错。 <br>5. 编辑位置(前端、后端)做了太多不必要的区分,不能在同一个地方同时控制所有逻辑。 <br>6. 注释与代码并不完全对应,有时候分不清注释与上下两行代码的关系。 <br>7. 注释文档不能直观呈现,需要额外 parse 运算和渲染,加大了计算量,降低了学习体验。 <br>8. 很多脚本不支持调试,或需要复杂的配置才能调试、或者购买WebStorm才能方便调试。 <br>9. 由于插件的配置环境相对复杂,用户并不能基于函数这种颗粒度来进行快速的“插件”开发。 <br>10. 由于以上种种,各个模块之间存在很多断层,类型和文档经常丢失或分离,加大了模块对接的难度,拖长了项目周期。 <br> 解决以上问题,即可极大地加速应用开发。
该页面使用的模板:
模板:4
(
查看源代码
)
返回至
【项目】数字基座(OGAS编辑器探索版)
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
社区主页
新闻动态
最近更改
随机页面
帮助
华师附中老三届
站群链接
社友网(sn)
产品百科(cpwiki)
产品与服务(sn)
社区支持农业(sn)
工具
链入页面
相关更改
特殊页面
页面信息