范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Yao0。10。2正式发布你好零代码

  无代码开发平台是可以让程序设计者及一般用户不用传统程序设计语言即可以开发应用程序的开发平台,使用的是图形用户界面(GUI)以及配置。(维基百科)
  在一些特定场景中, 使用图形界面开发, 确实可以有效的提升程序开发的生产力, 也有很多优秀的实践案例。
  然而, 这种开发效率提升, 是以牺牲通用性、无法精确掌控逻辑、应用必须与平台深度绑定、存在数据泄露风险、甚至无法掌控业务数据为代价。
  不仅如此, 应对一些常见场景, 通过 "托拉拽" 编程更低效。 比如: 一张数据表有 100 个字段, 使用托拉拽配置一个数据管理表格。 一个业务系统有 200 张数据表, 使用图形界面配置出管理后台。 在没有数据分析平台的前提下, 一个业务指标统计涉及到多张表查询和复杂的数据处理。 ...
  Yao 没有采用大力出奇迹的办法,  而是换了一个新思路, 去解决这些问题。
  Yao v0.10.2 重构了界面引擎、新增 Studio CLI、DSL 编写处理器, 发布了 Yao Brain 平台 (DEMO 版)。
  基于这些新特性, 开发者可以 轻松 根据上下文逻辑,  用程序编程序 , 开发出  真无代码  产品。
  Yao Admin
  为了演示效果, 我们用 Yao 开发了一个通用管理后台  Yao Admin 。
  无需 "托拉拽",  连接数据库, 你就有了一个管理后台 。
  稍加完善后, Yao Admin 将作为一个独立的产品发布, 了解更多特性可以访问代码仓库。
  代码仓库: https://github.com/YaoApp/yao-admin
  开源协议: Apache-2.0 Yao 是什么?
  Yao 是一款开源应用引擎, 使用 Golang 编写, 下载即用。适合开发业务系统、REST API、管理后台、自建低代码平台等。
  GitHub 仓库: https://github.com/yaoapp/yao
  Github Stars: 4.8K
  开源协议: Apache 2.0
  官方文档: https://yaoapps.com/doc Yao vs 低代码/无代码平台
  与大部分低代码平台相比, Yao 有更好的通用性、应用独立发布(可申请软著)、非一次性代码,可持续迭代升级、不限于"托拉拽", 有多种编写方式等优势。 应用独立发布
  与大部分低代码平台不同, Yao 是给 开发者 使用的应用开发工具和运行时。
  使用 Yao 开发的应用, 代码独立发布(可申请软著), 无缝对接云原生工具链, 与使用 PHP, NodeJS 等脚本语言开发的应用无差别。 非一次性代码
  不同于代码生成器, Yao DSL 开发者可阅读、可以编写, 开发者可精确掌控业务逻辑, 应用可持续迭代升级。
  应用引擎全量开源, 技术团队可完全掌控全部代码。
  Table DSL 示例: {  "name": "::Bind Model",  "action": {    "bind": {      "model": "pet",      "option": { "form": "pet" }    },    "search": {      "process": "scripts.pet.Search",      "default": [null, 1, 5]    }  }}可替代脚本语言
  Yao 内建 JavaScript Runtime, 可以使用脚本实现 95% 以上常见业务逻辑。
  这使得 Yao 具备脚本语言的基础能力, 大部分场景下可以代替脚本语言使用。 多种编程方式
  Yao 应用有多种编程方式,且这些编程方式可以随意切换。 支持手工编写, 开发者可以使用任意编程工具编写调试。 支持程序生成, 根据上下文逻辑, 自动生成 DSL 或脚本代码, 甚至可以接入 AI 让人工智能编程序。 支持可视化编程, 使用 Studio 通过托拉拽图形编程工具制作。 新特性新界面
  v0.10.2 重构了 XGEN 界面引擎, 同时优化界面描述 DSL, 使用 Yao 开发业务系统、管理后台等类型应用更方便。 Bind
  在 Table DSL, Form DSL 中与 Model 绑定, 即可自动生成一个数据管理模块。
  在表格中使用 Table DSL
  Table DSL: {  "name": "绑定模型",  "action": { "bind": { "model": "pet" } }}{  "name": "绑定模型和表单",  "action": { "bind": { "model": "pet", "option": { "form": "pet" } } }}{  "name": "复制表格",  "action": { "bind": { "table": "user" } }}
  在表单中使用
  Form DSL: {  "name": "绑定模型",  "action": { "bind": { "model": "pet" } }}{  "name": "绑定表格",  "action": { "bind": { "table": "pet" } }}{  "name": "复制表单",  "action": { "bind": { "form": "pet" } }}
  更多用法参考 Widget 手册 Cloud Props
  在开发界面交互时, 经常需要为一些组件提供查询接口。比如, 某个资源所属类目的下拉列表, 在用户点击时, 需要请求一个接口, 获取类目数据。
  可以使用 Cloud Props 特性, 将组件参数与处理器绑定, 应用引擎加载时, 自动生成查询接口。
  Table/Form DSL: {  "宠物": {    "bind": "where.status.in",    "edit": {      "type": "Select",      "props": {        "xProps": {          "$remote": {            "process": "yao.component.SelectOptions",            "query": {              "model": "pet",              "wheres": [                { "column": "created_at", "op": "ge", "value": "2020-01-02" }              ]            }          }        }      }    }  }}
  更多用法参考 Widget 手册 Compute
  通常情况下,在数据读取和写入时需要对字段数值处理, 来满足呈现和存储的需要。
  可以使用 Compute , 在声明字段使用的组件时, 指定处理器对数值进行处理。
  为便于使用, 新增了一组 Compute处理器,用于常见的数据处理, 开发者也可以根据需要, 使用自定义处理器。
  处理器
  参数表
  返回值
  说明
  Get
  [<字符串参数>]
  <字符串参数>
  读取数值 示例
  Trim
  [<字符串参数>]
  过滤首尾空格 示例
  Concat
  [...<字符串参数>]
  "value1value2.."
  连接字符串 示例
  Hide
  []
  "" 空字符串
  返回空字符串 示例
  Download
  将路径转换为下载地址 示例
  Upload
  将下载地址转换为路径 示例
  ...
  Table/Form DSL: {  "相关图片": {    "bind": "images",    "view": { "type": "Image", "compute": "Download" },    "edit": {      "type": "Upload",      "compute": "Upload",      "props": {        "filetype": "image",        "$api": { "process": "fs.system.Upload" }      }    }  },  "是否在线": {    "bind": "online",    "view": {      "bind": "online_view",      "type": "Text",      "compute": {        "process": "scripts.compute.MappingOnline",        "args": ["$C(row.online)", "$C(props.mapping)"]      },      "props": { "mapping": { "1": "::Online", "0": "::Offline" } }    },    "edit": {      "type": "RadioGroup",      "props": {        "options": [          { "label": "::Online", "value": true },          { "label": "::Offline", "value": false }        ]      }    }  }}
  更多用法参考 Widget 手册 Action
  在界面描述中, 可以使用 Action 定义按钮的响应行为。 界面引擎提供了多个场景的行为。
  KEY 执行动作
  VALUE 参数
  说明
  History.push
  { "payload": "<路由地址>"}
  跳转到指定路由地址
  Service.<名称>
  { "method": "<函数名>", "args": [<参数表>] }
  调用云函数
  Studio.<名称>
  { "method": "<函数名>", "args": [<参数表>] }
  调用 Studio 云函数  仅开发模式下有效
  ....
  ...
  ...
  更多用法参考组件文档 yao get 命令
  为了更轻松的复制项目, 可以在空目录使用 yao get 命令下载 Yao 应用。
  可供下载应用列表, 未来支持第三方应用上架。
  应用
  简介
  yaoapp/yao-admin
  一个通用管理后台
  yaoapp/demo-app
  演示应用
  yaoapp/demo-project
  工程项目管理演示应用
  yaoapp/demo-finance
  财务管理演示应用
  yaoapp/demo-plm
  生产项目管理演示应用 mkdir -p /data/appcd /data/appyao get  yaoapp/yao-admin云函数
  在 services 目录下, 创建添加 js 脚本, 这个脚本中定义的函数都可直接通过 aciton 访问, 也可通过 API 接口调用。
  脚本文件 /data/app/services/foo.js /** * Cloud Function * * POST /api/__yao/app/service/foo * {"method":"Bar", "args":["hello", "world"]} * * @param  {...any} args * @returns */function Bar(...args) {  return {    message: $L("Another yao application") + " (Cloud Function: foo.Bar)",    args: args,  };}
  Form DSL 中调用 {  "layout": {    "primary": "id",    "operation": {      "preset": { "save": { "back": true }, "back": {} },      "actions": [        {          "title": "测试云函数",          "icon": "icon-cloud",          "action": {            "Service.foo": {              "method": "Bar",              "args": ["{{id}}", "{{name}}"]            }          }        }      ]    }  }}安装界面
  废弃原 yao init 命令, 使用安装界面完成应用初始化。 mkdir -p /data/appcd /data/appyao start
  根据命令行提示, 进入应用初始化配置界面完成配置。
  文件系统处理器 & JS API
  新增一组文件系统处理器和 JS API。
  查看处理器手册 HTTP 请求处理器 & JS API
  新增一组 HTTP 请求处理器和 JS API。
  查看处理器手册 更多处理器
  新增编码解码、加密解密、证书导入等处理器。
  查看处理器手册 Studio CLI、 Service、JSAPI
  在 studio 目录下, 创建添加 js 脚本, 这个脚本中定义的函数都可直接通过 aciton 访问, 也可通过 API 接口调用。
  stuido 目录下的脚本具有超级权限, 可以访问 dsl, script 等文件空间, 可用于实现生成 DSL 和脚本代码。 /** * Cloud Function * * POST http://:/service/hello * {"method":"World", "args":["hello", "world"]} * * @param  {...any} args * @returns */function World(...args) {  return {    message: $L("Another yao application") + " (Studio Function: hello.World)",    args: args,  };}
  Studio CLI cd /data/appyao studio run hello.World hi "::{"foo":"bar"}"
  Form DSL 中调用 {  "layout": {    "primary": "id",    "operation": {      "preset": { "save": { "back": true }, "back": {} },      "actions": [        {          "title": "测试 Studio",          "icon": "icon-cloud",          "action": {            "Studio.foo": {              "method": "Hello",              "args": ["{{id}}", "{{name}}"]            }          }        }      ]    }  }}Yao Studio
  Yao 即将提供一个可视化编辑器, 通过图形界面的方式编写 DSL。
  当前正在开发中, 预计 2023 年第一季度上线。
  预览(屏幕截图):
  Yao Brain
  最好的工具, 你应该感受不到它的存在。
  我们始终坚信, 在未来的程序开发中, AI 助手可以完成 90% 的工作, 开发者在 AI 的工作成果基础上微调即可。
  我们也正在积极探索这个路线, 发布了 Yao Brain 平台。
  尽管现在还只是基于确定规则, 但已经可以实现像 Yao-Admin 这样的通用管理后台。
  未来某天, 只要告诉 Yao Brain 你的需求, 它可以帮你生成一个 CRM, 一个 ERP 或是其他符合你业务需求的程序。

网红辛巴被传造车后辟谣,炒作的背后竟是对汽车制造的蔑视!不久前,辛选创始人辛巴在直播间表示,自己将会在今年准备造车,并向比亚迪宁德时代特斯拉等车企挖人才。辛巴的原话是我要自己造车的这个相反,早在两年前就想这么做,只是当时条件还不够成熟资百度李彦宏我不造车,只造汽车机器人李彦宏这次直接对上了马斯克。酝酿了近10年,百度的智能汽车,在6月8日晚间,千呼万唤始出来,当晚是集度汽车的首场品牌发布会。这场原计划于4月召开的发布会,因为疫情拖延了2个月。举办新能源汽车不愁卖愁没得卖5月造车新势力销量近日陆续出炉,有4个品牌重回万辆俱乐部,一反4月份无一破万的冷清场景。与此同时,广汽埃安极氪汽车长城欧拉等新能源汽车品牌5月销量也上涨了1倍甚至更高。根据乘联会统UFC275张伟丽转身鞭拳KO乔安娜赢得二番战获得冠军挑战权北京时间6月12日11点整,UFC275在新加坡开战,中国UFC一姐张伟丽迎来与乔安娜耶德尔泽奇克的二番战,一番战两人鏖战五回合,在二番战中张伟丽在第二局回身摆拳KO乔安娜,直接获恭喜中国女排!恭喜蔡斌!17岁天才少女或驰援李盈莹,天降奇兵在北京时间6月15日的时候,中国女排将会迎来世界女排联赛第二阶段的比赛,在第二阶段比赛中,中国队要迎战比利时美国日本等强队,比赛的压力还是非常大的,而中国女排的队员也在积极的进行训今年首冠!陈雨菲三局险胜因达农,印尼大师赛成功登顶北京时间6月12日,世界羽联世界巡回赛印尼大师赛结束女子单打决赛,陈雨菲成功夺冠。在与泰国名将因达农的决赛里,陈雨菲经过三局激战以2比1险胜因达农夺得冠军。丹麦名将阿塞尔森赢得男单29次破世界纪录却成空谈!奥运冠军名誉扫地,丑闻毁了举重天才中国举重队在历史上出现过非常多的举重天才,说到举重天才就不得不提一个人的名字,她就是刘春红。刘春红来自山东的农村,在很小的时候就展现出了举重的天赋。刘春红在职业生涯中一共29次打破同为乒坛双子星,为何孔令辉和刘国梁如今的差距这么大?文微史解读编辑微史解读2017年,孔令辉深陷赌债风波。这个时候身为前任的马苏,不仅没有躲得远远的,反而站出来,表示相信孔令辉。不管怎么说,马苏能在这个时候站出来帮前男友说话,还是很我国5G网络全球规模最大!今年计划新增5G基站60万个CNMO新闻随着科技的不断进步,5G开始走进千家万户,网络覆盖日渐完善,为我们的生活带来越来越多的美好改变。近年来,我国致力于加快5G建设,坚持统筹谋划适度超前原则,推动共建共享,火爆!越南男足殴打主裁判,禁赛2年重罚2500万,中国小将曾吃亏自从在世预赛上击败了中国男足以后,越南男足突然成了咱们国内球迷比较熟悉的一支东南亚球队。越南男足球风比较凶悍,另外小动作也相对比较多,球员的脾气也比较火爆。近日,在越南国内男足乙级实体店之后,传统电商或迎来巨大挑战?新零售开始在全国兴起导读实体店之后,传统电商或迎来巨大挑战?新零售开始在全国兴起曾经有人说过这么一句话,站在风口之上,猪也会飞上天。这句是什么意思,相信也不用我解释了。不过也有很多人不敢苟同,特别是现
小米10Pro无缘更新MIUI14系统?下个月见分晓小米10Pro是小米公司于2020年推出的一款旗舰级别的智能手机,其拥有出色的硬件配置和优秀的性能表现,备受市场好评。然而,最近小米公司推出的MIUI14操作系统并未提供给小米10毕业前要做的20件事不管你多么内向,你一定要在全班同学面前,认认真真地讲一次话,或者唱一支歌,像刚入学时一样,再介绍一回自己,再一次认识彼此,感谢他们出现在你的生命里拜访一回你最尊敬的老师,真诚地向他文摘擅自对别人抱有期待,是最自私的一种自私图源网络侵删致歉人就是这样,总会活在某个时限内,那里的世界也许是几年之后连自己都无法理解的,但这又是我们无法突破的。为你,千千万万遍,遍体鳞伤还是会义无反顾,也许这就是人生,人生不地菜之美春耕进行时春回大地,万物复苏。天地间的第一抹绿,当属于地菜。若问我在春天会爱上什么美食,那一定是地菜。地菜也叫荠菜,是田野间非常有生命力的人间珍品,不似弱柳扶风,也不愿左右攀附,不家长告老师家长真的赢了老师吗?未必吧现在教育最大的是家长,家长几句话,水浒传就移出教科书。所以,不用说学校教育了。从教二十多年,头十年几乎没听说过家长告老师的,后来告老师的几乎每学期都有听说过,见识过。最后不用说赢了漫长假期后,儿子的读书习惯竟被一件小事改变了开学后,我本来担心儿子浩浩在漫长的假期后,不能适应。没想到他适应得还挺好原来常规的看电视时间大幅减少,也不总是惦记着拿我手机玩游戏了。作业写完后休息会儿,就自己捧一本书去看了。一方孕妈妈们知道么?抚摸胎教有门道,摸错了非常危险宝宝胎教是每一个孕妇在怀孕的过程中都特别注重的事儿,而抚摸胎教因其非常容易实际操作而备受青睐,而且抚摸胎教都是孕妈妈跟孩子中间进行交流的有效手段,但抚摸胎教不能随便开展,假如轻抚不整个孕期,孕妈妈体重增加多少斤最合适?怀孕后,监测和管理体重成了每位孕妈妈面临的重要任务之一。孕妈妈的体重增长过快或过慢都会影响肚子里胎宝宝健康,还会增加增加妊娠期并发症的发病率。图片来源头条图片库体重增长过慢可能会引村口那棵大柳树(现代诗)文图墨云村口大柳树爬上过你的身躯脚踏过你的脊梁折断过你纤柔的枝条甚至揉碎过你的嫩叶你总是没有一句怨言我幼稚的思维里从来没有感觉到你的痛苦记忆里你天生就那么健硕春天你总是勃勃生机夏天人到中年的失眠,真的会把你逼疯头条创作挑战赛失眠,对年轻人来说,是个多可笑的名词啊!对中年人来说,却是深深的深渊。年轻的时候从来没想过,自己居然会和这个名词,有一丝一缕的联系,而人到中年的自己,现在却夜夜失眠。巨大的斗笠万古长夜何时休,提灯一人看脚下。来时的路早已模糊不清,前方的道更是深浅无一。圣人言逝者如斯夫,不舍昼夜。言犹在耳!言犹在耳!九困逢顿悟,悟久终觉醒。醒在一夕间,觉是千万年。自然之力