随着数字化转型的推进,低代码开发平台正变得越来越受欢迎。在国内外市场上,已经出现了许多低代码开发平台。目前国内主流的低代码开发平台有:宜搭、简道云、明道云、云程、氚云、用友 YonBuilder、道一云、JEPaaS、华炎魔方、搭搭云、JeecgBoot 、RuoYi 等。这些平台各有优劣势,定位也不同,用户可以根据自己需求选择。下面我们选择一些为大家进行简要介绍。
01
国内低代码开发平台
用友 YonBuilder
YonBuilder 以云原生、多租户、模型驱动为基础技术,面向原厂开发、ISV 开发、本地化开发、企业自建、个人开发者在内的全生态,提供无代码和低代码的可视化开发能力,并与开放平台、连接集成平台、DevOps 平台无缝整合,实现高效的企业级应用构建,有效降低技术门槛,大幅提升企业 IT 生产力。
此外 YonBuilder 移动开发平台可一套代码多端运行,通过统一的开发配置流程实现 PC、App、友空间小程序等多端开发体验,提供丰富的多端模板和组件,为不同类型的开发者提供低代码扩展、专业开发工具支持。
优势:用友 8 大领域多年沉淀,支持复用和扩展较为复杂的行业产品。云上云下一体化,同样的产品可以同时部署公有云和私有云环境。
劣势:部分支撑服务没有集成到低代码开发平台,功能相对分散。
宜搭
宜搭是阿里巴巴集团在 2019 年 3 月公测的面向业务开发者的零代码业务应用搭建平台。开发者可以通过可视化开发单据页面、流程页面、报表页面、展示页面、外部链接页面,将这些页面组合在一起形成轻应用,一键发布到 PC 和手机端。
在 2019 年 9 月宜搭也发布了升级版宜搭 Plus,在单据、流程、报表等方面都进行了全面升级,成为一款面向 ISV 开发者的低代码开发平台,能够满足企业复杂业务管理系统开发所需的数据建模、逻辑 & 服务编排、专业 UI 页面设计等需求。
优势:大厂产品,用户体验较好,开发简单应用较为便捷,定位阿里生态,发展较快。
劣势:只能线上用,不能私有化部署,不交付源代码,价格较高。
简道云
简道云发布至今快五年了,已经算是市面上发展比较久的产品了,它由国内专业的大数据 BI 和分析平台厂商 —— 南京帆软软件有限公司(以下简称 “帆软”)孵化而来,在数据分析方面具有天然的优势。简道云与帆软旗下报表、BI 等其他产品定位有所不同,简道云致力于帮助非技术人员快速搭建企业应用,无需使用编码,即可搭建销售、OA 办公、生产等管理应用,帮助企业规范业务流程、促进团队协作、实现数据追踪!
简道云的核心功能包括表单、流程表单、仪表盘以及其他一些高级功能,通过这些功能的组合,搭建出各种不同的应用。
优势:强大数据分析功能、快速移动化、界面交互体验优。
劣势:缺乏低代码开发功能,模型无法代码化扩展,复杂应用无法支撑;仅支持云端部署,无法私有化部署,费用较高。
明道云
明道云的发展历史很长,从最开始的梅花网到协作 SaaS 产品明道,最后在 2018 年转型成为零代码业务应用构建平台。在行业中,还属于比较新的产品,明道云给自己的定位是一个 APaaS 平台,让企业用户不需要代码开发就能够搭建出用户体验上佳的销售、运营、人事、采购等核心业务应用。从整体功能上看,明道云对标的是国外应用搭建平台 Airtable,主要通过搭建数据管理以及流程管理应用,帮助企业高效管理业务。
优势:移动化能力强,支持与钉钉和企业微信集成,视图功能较为强大,可扩展性好。
劣势:报表功能较弱,审批流偏弱,有一定上手门槛,费用高。
氚云
氚云是深圳奥哲网络科技有限公司(奥哲网络)三大主推产品之一,跟简道云是同时期的选手,是一款面向管理者或业务人员的以场景为中心的零 (低) 代码平台。氚云是以明确的场景为中心,通过可视化表单、流程设计、智能报表和模板化应用,帮助管理者或业务人员快速搭建流程与应用,透明呈现业务进度,实时展现精准数据,完整沉淀管理信息。
优势:表单流程配置灵活,应用模板丰富,交互设计体验较好,对钉钉支持较好。
劣势:功能较基础,复杂功能需使用低代码,需绑定钉钉提供服务,对于非钉钉类应用,局限性较大。
02
国外低代码开发平台
Microsoft Power Apps
Microsoft Power Apps 是微软开发的低代码开发平台。该平台提供了可视化的开发工具和预定义的组件,可帮助企业快速开发和部署应用程序。Power Apps 还与微软的其他服务和工具集成,如 Microsoft Teams 和 Microsoft Dynamics 365,以提高生产力。
Salesforce Lightning Platform
Salesforce Lightning Platform 是 Salesforce 开发的低代码开发平台。该平台提供了可视化的开发工具和预定义的组件,可帮助企业快速开发和部署应用程序。Lightning Platform 还与 Salesforce 的其他服务和工具集成,如 Salesforce CRM 和 Salesforce Marketing Cloud,以提高生产力。
Mendix
Mendix 是低代码开发平台的领先者之一。该平台提供了可视化的开发工具和预定义的组件,可帮助企业快速开发和部署应用程序。Mendix 还提供了多种应用程序模板和开发者社区,使得开发人员可以更轻松地构建应用程序。
随着数字化转型的推进,低代码开发平台的应用范围也在不断扩大,不仅可以用于企业内部的应用程序开发,还可以用于开发面向客户的移动应用、电子商务应用、物联网应用等。
低代码开发平台已成为企业数字化转型的利器,通过选择合适的低代码开发平台,企业可以快速响应市场变化,提高生产效率,降低成本风险,获得更多的商业机会和竞争优势。
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的
几个月前,我读了一篇关于rubygem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain