掌握excel固定单元格技巧,让数据管理更高效
316
2023-01-16
本文目录一览:
什么是零代码应用开发平台?
尽管市场上也把建站、网店开发、小程序开发等免代码服务也称为零代码开发,但因为这些平台面向的是特定的目的,服务一个专有的范式,所以一般不将他们划入零代码平台的范畴之内。真正的零代码开发平台面向的是广泛和多样的需求,在设计aPaaS产品的时候,并不确定一个特定的用户会用它来搭建什么应用。
当然,虽说面向的需求是广泛的,也不代表aPaaS是万能的。零代码开发几乎都是面向企业应用世界,而很难扩展到消费者应用领域,比如游戏、社交、工具软件等必然长期属于原生开发的世界。
所以,零代码应用开发平台需要一个比较准确的定义。它是指围绕企业数据和业务管理需求,通过可视化方式设计数据结构,用户交互形式、设置访问权限和定义工作流程的平台。你会发现,即使是原生开发企业软件,大体也是按照以上这几个步骤来进行的。
我用一个相对完整的列表,将零代码开发平台的能力元素和特性描述如下:
1)可视化构筑业务对象数据表(Entity),并支持建立关联。甚至需要支持跨应用的数据表关联。(这是aPaaS未来可能胜出其他方案的关键优势)。
2)为不同的数据场景配置不同类型的视图(View),能够定义数据行和列的过滤,能够设置列表、看板、日历等不同界面形式。
明道云构筑的销售应用数据视图
3)能够定义不同用户角色(Role),并赋予角色不同的数据访问和改写权限(Permission Set)。权限定义越精细越好。
明道云构筑用户角色和权限组合的界面
4)能够建立针对数据的汇总表和统计图表(Report)
5)能够建立自定义的输入表单(Form),分发给不同角色使用。
6)能够建立自定义的打印报表(Form Report),用于输出各类形式表格,通过Email,短信发送或者打印。
7)能够管理企业用户、部门、组织结构,并将其用于应用逻辑关系,比如应用的分发,角色的赋予和工作流中的流向信息。
8)能够可视化配置工作流(Workflow),支持特定条件下的数据新增,改写,删除等操作,并能够融入数据填写,审批等人工流程节点。工作流的运行能够监控和保存日志。
明道云构筑审批工作流的界面
9)应用能够封装后分发(Distribution)给不同的用户。
10)面向企业内部个人用户的工作台,仪表台等特性,实现个性化使用。
不同的aPaaS产品会有不同的特色和侧重点。所以以上特性并不一定存在于每一个aPaaS产品中。但是,特性越完整的,就越接近一个典型意义上的零代码企业应用开发平台。在以上实现中,有纯粹的零代码模式,也有个别需要用低代码方式来降低产品复杂度,但同时也会让非技术人员难以上手。
所以,aPaaS是SaaS应用和开发工具的混合,说它是SaaS,是因为开发者和终端用户使用的是同一个产品,只是通过权限和分发关系让界面千人千面。说它是开发工具,是因为它用模型模拟的应用搭建思路和原生数据库应用开发是类似的。
软件的应用特点和二次开发能力共存也不是一个新鲜事物。用Excel软件构筑一个个人所得税计算器,让用户可以输入自己的工资,即可得到应缴税额,对于使用者来说是应用,对编制这个Excel文件的人来说是开发工具,但他们用的都是Excel。
为什么企业软件领域可以实现零代码开发?
为什么游戏和社交软件做不到零代码开发,而企业软件市场却出现了零代码工具?是因为企业软件的开发比较简单吗?
当然不是。能够模式化完成一个工作的原因在于这项工作具备可重复性,就像我们会用3D打印制作一两件零件,但如果要生产成千上万个同样的零件,我们宁可花费成本先去制作模具。企业软件可以模式化开发的原因就在于大多数企业管理软件都由非常类似的需求和实现方式来构成,如果不积极利用这些相似性和模型化方法就需要不断重复发明类似的轮子。
当然也并非所有的企业应用都有相似性。在特定行业和职能中总有一些需要专门化设计和开发的应用。但在企业的运营全流程中,围绕客户,供应商,销售订单,产品,供应商,采购订单,制造流程,服务流程等商业对象,企业软件要解决的问题具有很强的相似性。这些相似性,或者使用范式可以被概括为以下环节:
1)围绕上述商业对象(Business Objects)的数据搜集和存储,并对数据的有效性进行验证。例如:建立一个采购订单,向特定供应商采购三项商品。
2)数据的查询和呈现。例如:运营部门查询处A仓库在今天应该到货的采购订单。财务部门查询货物已经收讫,并且应该在本周付款的采购订单。
3)数据的计算。例如:当采购订单的货物到达特定仓库后,更新相关商品的库存信息。
4)流程的控制。例如:当起草采购订单并准备发出时,根据采购的类别和金额发起不同的审核流程,在审核通过或者拒绝后执行不同的流程内容。
5)信息通知。例如:在采购订单批准后,自动生成采购单并发送给供应商,并通知仓库准备收货。
6)数据的统计和分析。例如:汇总过去一年的采购订单中按照BOM清单的产品金额分布,或者按照供应商的分布。
企业软件的设计和开发人员对以上这些使用范式都非常熟悉,它们经常出现在各种企业软件的开发需求中。实际上,除了以上抽象出的范式,企业软件的其他独特功能点并不太多了,甚至很多属于所有企业级软件共有的模块,比如管理用户和用户组,权限角色等。正是因为这个原因,企业软件的开发存在高度模型化的可能,从而在大部分场景下,摆脱对原生代码开发的依赖。
在云时代之前,除了Access以外,苹果公司也有FileMaker,Intuit公司也曾经开发过Quickbase(这个名字来源于Intuit公司财务软件产品Quicken),Quickbase后来被剥离,一直到今天都在提供服务。即使在原生开发领域内,企业软件市场也出现了各种现成的开发框架,它们和今天的零代码平台一样,都是为了通过模型化来提高交付效率和质量的办法。
为每个企业的软件需求,都从第一行代码开始写起,单独依靠某种高级语言和集成开发环境建立开发项目,这种做法已经越来越没有必要。正如Gartner的预测,大部分的企业应用将来都会依赖零代码平台,以至于不远的将来,零代码平台并不会刻意保留这个前缀,因为这将成为天经地义的事情,这就像今天为了满足一个通用需求,大多数企业不会去定制开发,甚至零代码平台都不会用,而是直接使用一个标准的SaaS产品。
为什么aPaaS具有难以替代的优势?
用户开始选择aPaaS产品,不仅仅是因为他们可以这样做,更重要的是因为不得不这样做。因为aPaaS与定制开发,以及标准SaaS产品相比有几个难以替代的优势。
1)满足企业的多样化需求
企业软件需求的多样化是定制开发模式的起源。虽然标准SaaS产品能够满足企业应用需求中的共性部分,但是因为行业、规模和产品内在特性的差异,每个企业的管理方式和流程都有自己的特点,而且它还会根据企业的规模阶段不断演变。这种差异在不同职能中程度不一,一般来说,围绕产品设计、制造和服务履行的核心业务流差异度更高,而人事,财务等价值创造的支持环节差异度比较小。
在这种背景下,用户始终在寻求一种既能保持足够的灵活性,又能够控制开发的成本和复杂度的方法。aPaaS基本就是直接针对这个问题而诞生的。
2)从定制开发中需求沟通的痛苦中解脱
企业软件实现过程中的第一痛点还不是贵,而是需求沟通的复杂。有业务需求的人不是开发软件的人,能够开发软件的人对业务痛点并没有切身的体会和经验。于是行业非常依赖专业的企业软件需求分析和实现方法设计能力,但这个能力是非常稀缺的资源。这也难怪企业软件开发需求的提出主体总是五花八门的,他们之间也需要进行复杂的沟通和信息汇总。
更要命的是,很多时候需求在实施之前都无法100%确定,企业自己无法提出一个完整的解决方案。这时候,要么需要求助于咨询机构这样的外脑,要么就只能走一步看一步。这两个方案听起来都不令人舒适。前者绝非普通中小企业所能够承受,后者可能会影响系统的开发和实施质量。
aPaaS的出现倒是让走一步看一步的方案变得更加现实。企业可以通过零代码平台渐进地开始实施。如果整个系统过于复杂,可以先从一个具体的环节开始,局部数字化(比如先把订单管起来)。反正用aPaaS搭建的速度足够快,用户甚至可以利用零代码工具来生成企业应用原型,在实际使用中进行验证,确认了终端用户可以掌握,原先识别的问题可以被有效解决之后,再继续推进更完整的实施。
可以这么说,零代码工具可以让开发者和使用者之间的距离充分缩短。在极端情况下,使用者甚至可以自己就是搭建开发者自己。他们可能在一两个小时的搭建后就能够确认这个方案是不是能够有效地解决问题。
3)在企业内部打通数据中台的需求
在企业IT中,还有一个致命痛点存在,那就是不同业务系统之间的数据相互隔离,不能综合使用,使得企业难以进行跨职能的数据相关性和因果分析,也难以实现跨职能的数据自动化。比如要分析一个价格调整措施对财务报表的影响,这个工作在任何一个孤立的信息系统中是无法完成的,而如果要做到,就至少需要从采购,销售,营销和财务系统中获得数据。同样的道理,企业也很难在遇到财务目标无法达成的情况下,自动做出最优的价格决策。这些都是影响企业运营水平至关重要的问题。近年来,Gartner提出的Paced Layer架构,以及阿里给电商企业提供的中台方案就是针对这种需求的反馈。
大企业当然可以投入专门的资金来打造数据中台性质的系统,但小企业支付不起,并不代表他们不想获得这样的能力。aPaaS平台提供了这个可能性。
首先,因为aPaaS平台管理数据的模型一致,所以它一般能够提供一个标准化程度非常高的编程接口,从外部系统汇合数据变得相对容易很多,这就像路由器一样,不管你有多少联网设备,它们都可以用统一的协议连接在一起。有了集中的数据,各种应用需求都变得容易兑现。哪怕个别系统依然需要通过抽取数据服务后另行原生开发,也比不断重复做数据整合工作要高效很多倍。
甚至,如果用aPaaS平台直接管理业务数据对象,这个数据整合工作都可以免除。用户可以直接在各个职能相关的数据对象中建立关联,建立汇总查询,批量抽取数据到BI平台,建立不同数据之间的自动化。
有关企业数字中台的介绍,建议可以读一下这篇采访文章。
4)突出的成本和效率优势
零代码开发平台和原生代码开发相比到底能够提高多少效率目前还没有精确的计量,但这个效率差至少是10倍以上。传统开发模式需要10天的,aPaaS一天之内就能够搞定。
更重要的效率差别不仅仅是时间,还包括零代码平台可以免除专业技术人员的参与。虽然它要求搭建者熟悉业务,完成基本的逻辑梳理,但毕竟这和动辄需要和好几位技术人员一起开会沟通需求要高效得多。即便在复杂的应用系统上,也至多只需要2-3人分工就能够完成整个项目的实现。因为简化协作的原因带来的成本节省甚至都不值十倍了。因为所有人都知道找到靠谱的定制软件开发团队几乎就是一件撞大运的事情。
同时,定制开发通常很难提供高品质的软件。软件运行的可靠性,缺陷消除的程度都很难和标准化产品相比,毕竟定制软件只有一个用户。而一个aPaaS平台不仅要同时服务很多终端用户,还要服务五花八门的应用搭建者,它能够做到一次对,次次对;一次缺陷消除,所有用户收益的效果。
5)开箱即用和自己动手的两全
和成型的SaaS应用相比,aPaaS看似有一个缺点,就是依然需要“搭建”。这有点像整体家具系统,摆在样品间很好看,但是实际买回家还需要施工人员来拼装才能达到预期的效果。
实际上,这个问题并不是无解,甚至很好解。aPaaS一开始自然不可能获得各个行业的最佳实践,让每个企业都能够看到“样板间”效果。但是,随着时间的推移,用户企业和集成商的参与,样板间会越来越多,甚至比SaaS产品提供的用例方案更加强大,因为后者提供的是一个固定家具的摆设效果,而前者能够根据不同的房型,提供不同的家具组合方案。
而且,在足够明确的细分市场下(比如金属加工制造流程管理这样的颗粒度),可以在aPaaS平台上开发出完全开箱即用的应用,直接分发给不同企业使用。有了这个能力,aPaaS不仅能够服务好终端用户,还能够催生集成商工作模式的变革,他们不仅可以通过出售IT服务挣钱,还能够在服务中加入解决方案的价值,消除定制开发成本,大幅提高项目服务毛利。
有了开箱即用的能力后,就能够大大加速企业采纳的意愿。而且,才采纳以后,“自己动手”的能力依然存在。就像先进的整体家居系统不仅可以组合,而且可以重新组合。企业软件的适用模式永远和企业阶段有关,比如小型制造业并不见得需要质量管理单元,但当年产值突破一亿元左右后,不仅面临ISO认证的刚性需求,也内在地需要引入全面质量管理。这样的企业可以在软件实施后依照实际需要继续调整、改进和增加软件模块。这个过程同样是低成本和高效率的。
6)平台特征提供的计算能力保证
在数据库应用中,有一个潜在的计算性能问题,尤其是在大规模数据表中进行复杂查询和联动计算时。如今,很多行业的企业数据规模都从数千数万条记录增长到百万,千万,甚至电商厂商轻而易举可以达到亿级数据。在制造和物流行业,物联网技术也必然带动更多的联网对象,产生的数据不仅规模巨大,而且计算形式也需要有针对性地加强。
对于定制实施系统来说,要分别通过分布式数据库,流式计算等先进技术来克服性能问题是一件极其昂贵的事情。aPaaS平台虽然为用户提供的是一个应用级的产品,但因为它范式统一,就有机会将这些基础计算隐藏起来,让用户不必关心这些后台事务就能够获得高性能的计算服务。通过aPaaS平台管理的数据表无论规模有多大,读写有多么频繁,实时查询的要求有多高,总有一个计算框架可以胜任。这种平台的扩展性让客户可以真正放心,aPaaS带来的不仅仅是开发效率的提升,还包括一个伸缩自如的基础设施服务。即便企业将来的业务规模成长百倍,也不会需要彻底重建IT系统。实际上,年收入数百亿美元的业务,背后驱动的IT平台极有可能就是Salesforce的http://force.com平台搭建的应用,而不需要是独立建立的应用系统。
正是因为以上这些优势,aPaaS在没有得到行业命名之前就已经开始逐步渗透到企业IT服务领域。在最近几年正在悄悄替代大量的定制实施软件项目,也让原先依靠标准SaaS产品的企业找到了新的选择。
aPaaS目前适合什么样的企业?
aPaaS虽然拥有巨大的优势,但也不代表它能够满足所有行业和企业的所有IT需求。下面列出了一些常见的排除项。aPaaS方案对这些性质的需求吸引力不强。
1)行业有明显的专有特征
有些行业本身的专有化程度很高,而且企业之间的差异性不大,这时候垂直的行业应用可能更加合理。
围绕这个特征最典型的例子就是餐饮业和酒店业。所有餐饮业的运营逻辑都是类似的,除了单店和连锁可能使用不同复杂度的方案以外,应用模块都大同小异。而且,这个行业解决问题的方法和范式是有明显的行业特征的,比如餐厅的排队等座系统,点单结账系统等。用零代码工具来构建如此专有的场景反而更加麻烦,而且无法有效提供有行业特色的视图。
2)行业有独立的代码审计要求
金融等行业的核心业务系统因为法规等要求不能使用零代码平台,因为它无法满足代码审计的要求。aPaaS平台不一定能够提供源代码给用户企业,而且即使提供,也无法佐证应用系统处理数据的准确性。这些行业因为监管要求高,本身资金也宽裕,所以不会应用aPaaS方案在核心业务环节。
3)面向顾客的前台系统
这个当然就是指的电商网店平台了。虽然电商零售的基本数据管理和aPaaS的能力并无太大的距离,但是面向消费者的前台系统一般要求更高的灵活性和营销设施的配套,用零代码平台创建不如直接使用专门的电商系统,比如有赞、微盟等开店方案。它们提供的不仅仅是店面功能,还包括围绕顾客的营销服务和支付平台,这些是aPaaS所不擅长的领域。
除此之外的大部分企业IT需求,零代码平台都有足够的优势来胜任。而且,随着软件和服务的界限越来越模糊,很难说未来的aPaaS不能扩展它的领地。企业软件的本质就是生产力工具,aPaaS的核心精神就是围绕企业的数字化运营提供高生产力选项。
在用户渗透的过程中,当前阶段的零代码平台更多满足的还不是普通企业的需求,而是那些有一定的自建IT能力的企业。他们一般拥有若干名信息化专员,能够理解自己企业的核心业务流程和问题,能够和业务部门展开有效的沟通。除了终端企业用户外,行业咨询群体和ISV群体也开始更多关注零代码工具,因为行业咨询者永远都希望拥有属于自己的落地工具集,而他们很难投入做出自己高质量的原生软件产品;而ISV群体则常年面临项目实施成本高,客户需求差异度大的痛点,希望通过某种平台来降低开发服务成本,沉淀自己的方案能力,从而让项目实施具备更多的可复制特点。行业咨询、管理咨询和ISV群体对零代码平台的掌握最终会让这个门类的解决方案走入更多的主流企业用户。
读完这段,如果你对零代码平台有兴趣,明道云提供直接的使用体验,你可以自助注册试用。
如果您关注过去两年中IT行业的新词汇,您肯定会发现零代码和低代码这两个热门词汇。随着企业数字化的开始,如何选择合适的数字化工具已成为许多软件开发企业关注的问题。
传统的软件开发方法无法满足当前企业的需求:人员成本高,研发时间长,操作和维护复杂。此时,零代码或低代码工具出现在市场上并受到关注是不可避免的趋势。对于不了解这两者的人,零代码和低代码之间有什么区别?我应该如何选择?这里是简搭(jabdp)的一个简短的介绍。
与传统的软件开发模式相比,您不需要学习几年的计算机编程知识(对低代码平台仍需要了解一点),可以使用这些平台快速开发功能强大的应用程序,因此低代码和零代码属于快速开发工具的范围。有多快?根据我们的测试,使用低代码或零代码的开发效率是传统方法的5到9倍。
快速开发工具之所以“快速”,是因为这些工具已经抽象了一些通用代码,并为它们提供了可视页面供用户操作,从而使您可以快速选择,拖动和创建所需的功能组件。同样,您也可以通过可视界面设置系统的逻辑和流程。通过功能,逻辑和流程,当然很容易制作软件。
另一个共同点是低代码和零代码都是APaaS(应用程序平台即服务)。 APaaS平台的最大优势在于它提供了快速开发的环境。您无需购买和维护一系列技术基础架构,例如服务器,中间件和网络。 APaaS平台已为您准备了所有这些。您可以在几个小时内完成应用程序的开发,测试和部署,并且可以随时进行调整或更新。
最大的不同是它面对不同的用户低代码比零代码更灵活,某些团队甚至提供了开放源代码版本,使您可以更自由地自定义它。
零代码开发平台更适合非技术人员,例如产品经理,销售和运营。如果您不了解任何代码知识,那么零代码平台是您的最佳选择。
同样,低代码平台也在尽最大努力扩展其零代码功能,将更多的功能无代码化,让开法越简单化。
低代码开发平台(Low-Code Development Platform,LCDP)是低代码开发所需的环境。大多数低代码平台都是以云上提供的aPaaS(Application Platform as a Service,应用程序平台即服务)的形式,不仅用于开发,还用于应用程序的运行,实现了软件开发到应用的一贯性支持。
所谓低代码开发,是指尽量无需编写源代码,通过使用“图形用户界面/GUI”这一可视化操作,在极短的时间内实现系统开发的手法。目前也有通过在Web浏览器上搜索所需组件,整合粘贴来制作应用程序的工具。
采用低代码开发,无需SQL记述就可以制作数据库,简化开发工序。在保证一定扩展性的同时,可以有效缩短开发工时。
为什么选择低代码开发平台?低代码开发平台最初被关注的是用于移动应用的开发。与基础系统开发相比,手机app开发对速度的要求更高,而且还必须支持多设备。在传统意义上,要在短时间内推出这样的移动应用程序是非常困难的,于是,低代码开发平台进入了开发人员的视野。
在现今社会,低代码开发平台受到关注的最大理由是数字化转型(DX)。所谓数字化转型,是指通过人工智能和物联网等信息技术,将一切事物通过数字数据连接起来,从而从根本上改变企业业务模式。
目前许多企业都在致力于数字化转型,以求在高速发展的时代中生存下来。企业的IT部门为了推进数字化转型,必须更密集的进行软件开发。但是,软件开发技术人员的数量是远远不够的,仅靠IT部门根本无法满足软件开发的需求。
低代码开发平台,可以被一般的业务人员、一线工作人员、管理人员等非专业的开发人员使用,无论是否有开发基础或经验,都可以经过简单的培训进行软件开发。
低代码开发的优势缩短开发时间
低代码开发最大的优势是可以缩短开发时间,也就节约了开发成本。低代码开发平台提供了大量的通用组件,可以实现一些基础功能。必要时可以添加自己编写的代码,来满足用户的功能需求,提供质量稳定的应用程序。
无需担心安全性
低代码开发平台的供应商会提供相应的安全对策,用户无需担心程序的安全性以及开发过程中的安全风险。为了实现特殊功能,需要自己编写代码时,用户只需关注自己的编写部分的安全性即可。
降低开发门槛
在低代码开发中,无需编写复杂的源代码,就可以在专用的平台上编写程序。即使没有受过编程专业教育的人,也可以在平台上轻松地进行开发工作。在传统印象中,程序开发都是由专业的工程师来完成,使用低代码开发平台,程序开发的门槛大大降低了。
低代码开发平台的主要功能通用性组件
低代码开发平台提供了大量通用的组件,这些可供使用的组件种类多样。
此外,用户也可以利用第三方开发的组件。这样的可再利用形式的组件,支撑着在低代码开发平台的视觉建模。
视觉建模
低代码开发平台以模型驱动型开发为基础,任何人都可以通过可视化建模,轻松实现程序开发。
通过拖放可以将所需的流程和组件整合,无需编程即可创建程序。同时,有编程技能的工程师也可以根据需要进行编码,从而定制组件。
支持各种架构
要开发与企业架构相对应的基础系统,就必须具备与各种系统协作的功能。在这一点上,低代码开发平台支持大多数的主流操作系统和数据库。
另外,通过丰富种类的API,可以和外部系统自由合作。因此,低代码开发平台具有可扩展性和开放架构,可支持大企业的基础系统开发。
基于代码的扩展
完全不使用代码的无代码工具,特点是使用预设好的功能来制作简单的应用程序。对于低代码开发平台,用户也可以通过编码自由扩展组件的功能。
低代码开发平台可以根据客户各自的需求,进行各种各样的定制,即使是复杂的大规模系统开发也能应对。
软件全生命周期整体支持
目前提供的低代码开发平台大部分采用的是云服务aPaaS的形式。
因此,低代码开发平台并非单纯的应用开发工具,从与数据库的自动连接、测试、正式启动、进一步运行管理、变更管理等开发工序到实际运用工序,搭载了支持整个软件生命周期的功能。
与无代码开发平台的区别与低代码开发平台对应的是无代码开发平台(No-Code Development Platform, NCDP)。无代码顾名思义,就是不以编写代码为前提的开发方法。
低编码和无编码在某种程度上非常相似。前述的可视化建模、可再利用的通用性组件、生命周期管理等低代码开发平台的特征也适用于无代码开发平台。
无代码开发平台同样适用于专业的开发者和无基础开发者,提供了能够在更短的时间内轻松发布应用的环境。无需通过编码进行编程,通过PaaS平台提供,可以在不构建操作环境的情况下立即运行。
乍一看,无代码开发平台只是从低代码开发平台中去掉了编写代码的要素。但实际上它们是非常不同的。
首先,无代码开发平台不能通过编写代码来扩展或定制功能。因此,无代码开发平台目标是通过预先准备好的组件和API,实现功能范围内的相对简单的程序开发。不需要专业开发人员进行系统设计和数据库设计,经过简单的功能设计后立刻就可以使用。
典型的例子是使用Excel等电子表格的普通业务人员,将Excel和纸质工作系统化,自己创建应用程序,以简化日常工作。这些应用程序由其使用者来完成运营,随着业务的变化可以灵活的调整应用程序的功能。
无代码开发平台不能通过编写代码扩展功能,所以不适合功能较多的程序开发。此外,由于API的系统协作自由度较低,也不适合核心系统的开发。
低代码:朝着更好的未来行进得益于一些厂商的努力,低代码行业正在构建起健康的生态。我们在讨论低代码的未来时,需要清楚一点的是,低代码并非万能,它有清晰的能力边界,而非一些声音所说的会“抢走程序员的饭碗”。低代码是企业数字化建设当中“最后一公里”,在保障企业数字化进程的价值赋能下,中国市场会有低代码的一方天地。
国内的简搭(jabdp)开发平台是一个低代码开发平台,复杂的业务功能,只需要会基本的sql语句和javascript语法,就能进行快速开发,满足其个性化的业务需求,设计出各种复杂的企业web应用。主要特点如下:
可灵活定制:简搭(jabdp)低代码平台提供了强大的定制能力,包括页面定制、数据表管理、业务流程定制等,便于实现各类企业应用。
权限管理:简搭(jabdp)低代码平台提供组织结构管理和精细的权限管理多人,便于企业根据实际情况灵活地进行权限设置和调整,促进内部协作。
易于部署和维护:简搭(jabdp)低代码平台提供一键部署功能,无需配置复杂的网络服务器;根据企业的需求变化进行系统维护也更容易。
支持二次开发和系统集成:简搭(jabdp)低代码平台是一个开放的快速开发平台,有经验的程序员依然可以基于jabdp定制开发出许多高级的功能,而不受jabdp本身的限制;同时,简搭(jabdp)低代码平台开发出的应用也可以很方便地与企业的现有信息系统集成,或者与微信、钉钉等第三方应用集成。
简搭(jabdp)低代码平台适合用于大部分的企业级web应用的开发,尤其适合企业信息管理系统(MIS)、企业资源计划系统(ERP)、客户关系管理系统(CRM),业务支撑系 统(BSS)等。并且就一些经典的项目案例提取整合出各种类型的项目模板,共享给开发者参考,开发者可以在原有的项目基础上进行修改定制,以打造其个性化的企业信息化平台。
关于低代码开发平台,一个常见的误区是认为“低代码开发平台只适用于平民开发者(Citizen Developer)”。平民开发者是指那些非传统的、没有受过专业编程教育的开发者,他们主要用低代码平台来创造和定制应用。
当然,通过使用低代码开发平台,可以降低对多数项目人员的技术要求。在多个项目并行时,只需要一个有经验的程序员进行数据表、业务逻辑等的设计即可,其他项目人员无需编程能力,这样在人月数和人员要求两个方向都能有效控制项目的投入。
借助低代码开发平台,可以更高效地理解中小企业的信息化项目需求,控制项目开发的成本,同时适应中小企业信息化需求变化快和缺乏专业技术人员进行项目维护的特点,是开发中小企业信息化项目的最佳选择。
简介: 什么是低代码?我们为什么需要低代码?低代码会让程序员失业吗?本文总结了低代码领域的基本概念、核心价值与行业现状,带你全面了解低代码。
什么是低代码
“Low-Code”是什么?如果你是第一次听说,没准也会跟我当年从老板口中听到这个词后的内心戏一样:啥?“Low-Code”?“Code”是指代码我知道,但这个“Low”字是啥意思?不会是老板发现我最近赶工写的代码很丑很“Low”吧... 想多了,老板怎么可能亲自review代码呢。那难道是指,“Low-level programming”里的“Low”?老板终于发现让我等编程奇才整天堆Java业务代码太浪费,要派我去闭关写一个高性能C语言网络库... 显然也不是,老板哪能有这技术情怀呢。那到底是什么意思?作为一名搜商比情商还高的程序员,能问Google的绝不会问老板。于是我一顿操作后,不假思索地点开了第一条搜索结果:Low-code development platform。
Wikipedia定义
从Wiki的这段定义中,我们可以提炼出几个关键信息:
• 低代码开发平台(LCDP)本身也是一种软件,它为开发者提供了一个创建应用软件的开发环境。看到“开发环境”几个字是不是很亲切?对于程序员而言,低代码开发平台的性质与IDEA、VS等代码IDE(集成开发环境)几乎一样,都是服务于开发者的生产力工具。
• 与传统代码IDE不同的是,低代码开发平台提供的是更高维和易用的可视化IDE。大多数情况下,开发者并不需要使用传统的手写代码方式进行编程,而是可以通过图形化拖拽、参数配置等更高效的方式完成开发工作。
Forrester定义
顺着Wiki的描述还能发现,原来“Low-Code”一词早在2014年就由Forrester提出了,它对低代码开发平台的始祖级定义是这样的:
相比Wiki的版本,这个定义更偏向于阐明低代码所带来的核心价值:
• 低代码开发平台能够实现业务应用的快速交付。也就是说,不只是像传统开发平台一样“能”开发应用而已,低代码开发平台的重点是开发应用更“快”。更重要的是,这个快的程度是颠覆性的:根据Forrester在2016年的调研,大部分公司反馈低代码平台帮助他们把开发效率提升了5-10倍。而且我们有理由相信,随着低代码技术、产品和行业的不断成熟,这个提升倍数还能继续上涨。
• 低代码开发平台能够降低业务应用的开发成本。一方面,低代码开发在软件全生命周期流程上的投入都要更低(代码编写更少、环境设置和部署成本也更简单);另一方面,低代码开发还显著降低了开发人员的使用门槛,非专业开发者经过简单的IT基础培训就能快速上岗,既能充分调动和利用企业现有的各方面人力资源,也能大幅降低对昂贵专业开发者资源的依赖。
低代码核心能力
基于上述的定义和分析,不难总结出如下这3条低代码开发平台的核心能力:
• 全栈可视化编程:可视化包含两层含义,一个是编辑时支持的点选、拖拽和配置操作,另一个是编辑完成后所及即所得(WYSIWYG)的预览效果。传统代码IDE也支持部分可视化能力(如早年Visual Studio的MFC/WPF),但低代码更强调的是全栈、端到端的可视化编程,覆盖一个完整应用开发所涉及的各个技术层面(界面/数据/逻辑)。
• 全生命周期管理:作为一站式的应用开发平台,低代码支持应用的完整生命周期管理,即从设计阶段开始(有些平台还支持更前置的项目与需求管理),历经开发、构建、测试和部署,一直到上线后的各种运维(e.g. 监控报警、应用上下线)和运营(e.g. 数据报表、用户反馈)。
• 低代码扩展能力:使用低代码开发时,大部分情况下仍离不开代码,因此平台必须能支持在必要时通过少量的代码对应用各层次进行灵活扩展,比如添加自定义组件、修改主题CSS样式、定制逻辑流动作等。一些可能的需求场景包括:UI样式定制、遗留代码复用、专用的加密算法、非标系统集成。
不只是少写代码
回到最初那个直击心灵的小白问题:Low-Code中的“Low”,到底是啥意思?答案已经显而易见:既不是指抽象程度很低(相反,低代码开发方式的抽象程度要比传统编程语言高一个level),也不是指代码很low(也相反,低代码所生成的代码一般都经过精心维护和反复测试,整体质量强于大部分手写代码),而是单纯的“少写代码” —— 只在少数需要的情况下才手写代码,其他大部分时候都能用可视化等非代码方式解决。
再往深一点儿看,低代码不只是少写代码而已:代码写得少,bug也就越少(正所谓“少做少错”),因此开发环节的两大支柱性工作“赶需求”和“修bug”就都少了;要测的代码少了,那么测试用例也可以少写不少;除了开发阶段以外,平台还覆盖了后续的应用构建、部署和管理,因此运维操作也更少了(Low-Code → Low-Ops)。
然而,少并不是最终目的:如果单纯只是想达到少的效果,砍需求减人力、降低质量要求也是一样的。低代码背后的哲学,是少即是多(Less is More),或者更准确说是多快好省(Do More with Less) —— 能力更多、上线更快、质量更好,成本还更省,深刻践行了阿里“既要,又要,还要”的价值观精髓。
平台的职责与挑战
上面说的是低代码给开发者提供的能力与吸引力,那么作为服务的提供方与应用的承载者,低代码开发平台自身应该承担怎样的职责,其中又会遇到多大的挑战?是否就一定要如阿里云所主张的那样,“把复杂留给自己,把简单留给别人”?虽然这句话听起来很深明大义,但不知道大家有没有想过,为什么我们一定要抱着复杂不放,平白无故给自己找事?就不能直接干掉复杂,也给咱阿里云自己的员工留点简单吗?是工作太容易就体现不出来KPI价值了,还是家里的饭菜不如公司的夜宵香?
冥思苦想许久后,我从热力学第一定律中找到了答案:开发一个应用的总复杂度是恒定的,只能转移而不可能凭空消失。要想让开发者做的更少,安心享受简单的快乐,那么平台方就得做的更多,默默承担尽可能多的复杂度。就像一个满身腱子肉的杂技男演员,四平八稳地托举着在高处旋转与跳跃的女搭档;上面的人显得越轻盈越毫不费力,下面的人就得越稳重越用尽全力。当然,不是说上面的女演员就很轻松没压力,只是他们各自的分工不同,所承担的复杂度也不一样。
根据《人月神话》作者Fred Brooks的划分,软件开发的复杂度可以划分为本质复杂度(Essential complexity )和偶然复杂度(Accidental complexity)。前者是解决问题时固有的最小复杂度,跟你用什么样的工具、经验是否丰富、架构好不好等都无关,而后者就是除此之外在实际开发过程中引入的复杂度。通常来说,本质复杂度与业务要解决的特定问题域强相关,因此这里我把它称为更好理解的“业务复杂度”;这部分复杂度不是任何开发方法或工具能解决的,包括低代码。而偶然复杂度一般与开发阶段的技术细节强相关,因此我也相应把它称为“技术复杂度”;而这一部分复杂度,恰好就是低代码所擅长且适合解决的。
为开发者尽可能屏蔽底层技术细节、减少不必要的技术复杂度,并支撑其更好地应对业务复杂度(满足灵活通用的业务场景需求),这是身为一个低代码开发平台所应该尽到的核心职责。
在尽到上述职责的同时,低代码开发平台作为一个面向开发者的产品,还需要致力于为开发者提供简单直观的极致开发体验。这背后除了巨大的工作量,还得能在“强大”和“易用”这两个很难两全其美的矛盾点之间,努力找到一个符合自己产品定位与目标客户需求的平衡点 —— 这也许是设计一个通用低代码开发平台所面临的最大挑战。
三、低代码相关概念对比
纯代码(Pro-Code / Custom-Code)
“纯代码”可能算是我杜撰的一个词,更常见的说法是-码(Pro-Code)或定制代码(Custom-Code);但意思都一样,就是指传统的以代码为中心(Code-Centric)的开发模式。之所以我选择用“纯代码”,是因为如果用“-码”会显得似乎低代码就不专业了一样,而用“定制代码”又容易让人误解成低代码无法支持定制的自定义代码。
当然,更准确的称谓我认为是“高代码”(与低代码恰好对应,只是名字太难听,被我嫌弃了...),因为即便是使用传统的代码IDE,有些开发工作也支持(甚至更适合)以非代码方式完成,比如:iOS端开发时使用的SwiftUI界面设计器、服务端开发数据库应用时使用的PowerDesigner建模工具。不过这部分可视化工作在传统开发模式下只是起辅助作用,最后通常也是生成开发者可直接修改的代码;开发者仍然是以代码为中心来开展主要工作。
低代码与纯代码之间的关系,其实跟视频和文章之间很像:
低代码就像是现代的“视频”,大部分内容都由直观易理解、表达能力强的图片组成,因此更容易被大众所接受。但与此同时,视频也不是死板得只能有图片,完全可以添加少量文字(如字幕、标注)来弥补图片表达不够精确的问题。BTW,关于“图”和“文字”之间的辩证关系,可以进一步参考《架构制图:工具与方法论》[1]这篇文章中的相关描述。
纯代码则更像是传统的“文章”,虽然很久以来都一直是信息传播的唯一媒介,但自从视频技术诞生以及相应软硬件基础设施的普及以来,便逐渐开始被抢走了风头。如今,视频已成为大部分人获取信息的主要渠道(从电视电影到B站抖音),而经常读书读文章的人却越来越少。但不可否认的是,文章依然有它存在的意义和受众(不然我也不会费这劲敲这么多字了),即使“市场份额”一直在被挤压,但永远会有它立足的空间。
如果按上面这种类比关系推导,低代码未来也会遵循与视频类似的发展轨迹,超越纯代码成为主流开发模式。Gartner的预测也表达了相同的观点:到2024年,所有应用程序开发活动当中的65%将通过低代码的方式完成,同时75%的大型企业将使用至少四种低代码开发工具进行应用开发。
但同样地,就像是视频永远无法取代文章一样,低代码也永远无法彻底取代纯代码开发方式。未来低代码和纯代码方式将以互补的形态长期共存,各自在其所适合的业务场景中发光发热。在后面的“低代码业务场景”章节,会详细列出哪些场景在现阶段更适合用低代码模式开发。
零代码(Zero-Code / No-Code)
从分类的完备性角度来看,有“纯代码”自然也应该有完全相反的“零代码”(也称为“无代码”)。零代码就是完全不需要写代码的应用开发平台,但这并不代表零代码就比低代码更高级和先进,它只是做了一个更极端的选择而已:彻底拥抱简单的图形可视化,完全消灭复杂的文本代码。选择背后的原因是,零代码开发平台期望能尽可能降低应用开发门槛,让人人都能成为开发者(注意:开发 ≠ 写代码),包括完全不懂代码的业务分析师、用户运营,甚至是产品经理(不懂装懂可不算懂)。
即便是专业开发者,在技术分工越来越精细的趋势下(前端/后端/算法/SRE/数据分析..),也很难招到一个能独立开发和维护整套复杂应用的全栈工程师。但零代码可以改变这一切:无论是Java和JavaScript傻傻分不清楚的技术小白,还是精通深度学习但没时间学习Web开发的算法大牛,都可以通过零代码实现自己的技术梦或全栈梦。“改变世界的idea已有,就差一个程序员了”,这句玩笑话或许真的可以成真;哦不,甚至都用不着程序员,有idea的人自己就能上。
当然,所有选择都要付出代价,零代码也不例外。完全抛弃代码的代价,就是平台能力与灵活性受限:
• 一方面,可视化编辑器的表达能力远不及图灵完备的通用编程语言,不引入代码根本没法实现灵活的定制与扩展(当然,理论上也可以做成Scrach/Blockly那样的图形编程语言,但那样不过是换一种形式在手写代码而已)。
• 另一方面,由于目标受众是非专业开发人员,平台能支持的操作会更趋于“傻瓜化”(e.g. 页面只支持大块业务组件的简单堆叠,不支持细粒度原子组件和灵活的CSS布局定义),同时也只会透出相对“亲民化”的模型和概念(e.g. 使用“表格”表示数据,而不是用“数据库”),无法支撑强大专业的底层开发原语和编程理念。
虽然零代码与狭义上的低代码有着上述明显差异,但从广义上来说,零代码可以当作低代码的一个子集。Gartner在其相关调研报告中,就是将“No Code”划在了范围更广的低代码应用平台“LCAP”(Low-Code Application Platform)中。而当前市面上很多通用的低代码开发平台,也都兼具一定程度的零代码能力;比如低代码领域领头羊Mendix,既提供了简单易用的零代码Web IDE - Mendix Studio,也包括一个功能更强大的低代码桌面IDE - Mendix Studio Pro。
HpaPaaS(高生产力应用PaaS)
上文提到,“Low-Code”一词是拜Forrester所赐。作为同样是国际知名调研机构(a.k.a 造词小能手)的Gartner,显然不会轻易在这场可能决定低代码领域江湖地位的新概念作词大赛中认输,于是也于2017年发明了“HpaPaaS”(High-productivity application Platform as a Service)这个听上去更高大上的缩写词。
按照Gartner的定义,HpaPaaS是一种支持声明式、模型驱动设计和一键部署的平台,提供了云上的快速应用开发(RAD)、部署和运行特性;这显然与低代码的定义如出一辙。但事实证明,名字起得太专业并不见得是好事,“HpaPaas”最终还是败给了起源更早、更接地气也更顺口的“Low-Code”:从2019年开始,Gartner在其相关调研报告中也开始全面采用“Low-Code”一词(如LCAP),亲手为“HpaPaaS”打上了 @deprecated 印记。
图源:What’s the difference between SaaS / IaaS / PaaS / aPaaS / HpaPaaS?
值得补充的是,“HpaPaaS“这个词也并非横空出世,而是传承自更早之前Gartner提出的“aPaaS”,它俩之间的关系是:HpaPaaS只是aPaaS的一个子类;除了HpaPaaS这种通过低代码实现的高生产力应用开发平台以外,aPaaS还包括面向纯代码的传统应用开发平台(High-control aPaaS,即可控度更高的纯代码开发方式)。
不值得但就想八卦一下的是,“aPaaS”这个词也非凭空捏造,而是与云计算的兴起渊源颇深。相信各位云道中人都已猜到,aPaaS与IaaS/PaaS/SaaS这些云计算远古概念是一脉相承的:aPaaS介于PaaS和SaaS之间,相比PaaS提供的服务更偏应用,但又不像SaaS一样提供现成的软件服务(更详细的说明可参考配图来源文章)。
四、为什么需要低代码
低代码是什么可能并没那么重要,毕竟在这个信息爆炸的世界,永远不缺少新奇而又短命的事物。大部分所谓的新技术都只是昙花一现:出现了,被看到了;大部分人“哦”了一声,已阅但表示不感兴趣;小部分人惊叹于它的奇思妙想,激动地点了个赞后,回过头来该用什么还是什么。真正决定新技术是否能转化为新生产力的,永远不是技术本身有多么优秀和华丽,而是它是否真的被需要,即:为什么需要低代码?如果用不同的主语填充上面这个问句(冷知识:这叫做“延迟主语初始化”),可以更全面地看待这个问题:
为什么「市场」需要低代码?
在这个大爷大妈都满嘴“互联网+”和“数字化转型”的时代,企业越来越需要通过应用(App)来改善企业内部的信息流转、强化与客户之间的触点连接。然而,诞生还不太久的IT信息时代,也正面临着与我国社会主义初级阶段类似的供需关系矛盾:落后的软件开发生产力跟不上人民日益增长的业务需求。
Gartner预测,到2021年应用开发需求的市场增长将至少超过企业IT交付能力的5倍。面对如此巨大的IT缺口,如果没有一种革命性的“新生产力”体系,很难想象仅凭现有传统技术体系的发展延续就能彻底解决问题。而低代码技术正是带着这样的使命而降临,期望通过以下几个方面彻底革新应用开发生产力,拯救差一点就要迈入水深火热的IT世界:
提效降本 质量保障
虽然软件行业一直在高速发展,新的语言、框架和工具层出不穷,但作为从业者我们不得不承认:软件开发仍处于手工作坊阶段,效率低、人力成本高、质量不可控。项目延期交付已成为行业常态,而瓶颈几乎总是开发人员(对机器能解决的问题都不是问题);优秀的开发人才永远是稀缺资源,还贼贵;软件质量缺陷始终无法收敛,线上故障频发资损不断。
相比而言,传统制造业经过几百年工业革命的发展,大部分早已摆脱了对“人”的强依赖:从原料输入到制品输出,中间是各种精密仪器和自动化流水线的稳定支撑,真正实现生产的标准化和规模化。虽然信息化号称是人类的第三次工业革命,但以软件行业目前的状况,远远还没到达成熟的“工业化”阶段。
所以,亲爱的程序员朋友,当你与前端联调了一上午接口,又与产品撕逼了一下午需求,再与自己的bug抗争了一整晚,好不容易遁入梦乡又被一连串报警短信吵醒时,是否有抬头对着星空憧憬过:“I have a dream... that one day,软件开发也能像工业制品一样,批量流水化生产,稳定高效没烦恼。” 事到如今,不管你有没有意识到,这个憧憬正在慢慢变成现实。
是的,低代码正在将应用软件开发过程工业化:每个低代码开发平台都是一个技术密集型的应用工厂,所有项目相关人员都在同一条产线内紧密协作。开发主力不再是熟知for循环一百种写法的技术Geek,而是一群心怀想法业务sense十足的应用Maker。借助应用工厂中各种成熟的基础设施、现成的标准零件、自动化的装配流水线,开发者只需要专注于最核心的业务价值即可。即便是碰到非标需求,也可以随时自己动手,用最灵活的手工定制(代码)方式来解决各种边角问题。
扩大应用开发劳动力
通过让大部分开发工作可以仅通过简单的拖拽与配置完成,低代码(包括零代码)显著降低了使用者门槛,让企业能够充分利用前面所提到的平民开发者资源。部分纯零代码需求场景下,低代码还能让业务人员实现自助式(self-service)应用交付,既解决了传统IT交付模式下的任务堆积(backlog)问题,避免稀缺的专业开发资源被大量简单、重复性的应用开发需求所侵占,也能让业务人员真正按自己的想法去实现应用,摆脱交由他人开发时不可避免的桎梏。
至此,应用开发能力不再是少数专业开发者的专利和特权,且今后所需要的技能门槛与拥有成本也会越来越低,真正实现所谓的“技术民主化”(democratization of technology)。
加强开发过程的沟通协作
多方调查结果显示,软件项目失败的最主要原因之一就是缺乏沟通(poor communication)。传统开发模式下,业务、产品、设计、开发、测试与运维人员各司其职,且各有一套领域内的工具和语言,长久以来很容易形成一个个“竖井”(silos),让跨职能的沟通变得困难而低效。这也是为什么当前热门的敏捷开发和DevOps都在强调沟通(前者是协同Biz与Dev,而后者是协同Dev和Ops),而经典的DDD领域驱动设计也主张通过“统一语言”来减少业务与技术人员之间的沟通不一致。
有了低代码后,这一状况将得到根本改善:上述各角色都可以在同一个低代码开发平台上紧密协作(甚至可以是同一个人),这种全新的协作模式不仅打破了职能竖井,还能通过统一的可视化语言和单一的应用表示(页面/数据/逻辑),轻松对齐项目各方对应用形态和项目进度的理解,实现更终极的敏捷开发模式,以及在传统DevOps基础之上更进一步的BizDevOps[2]。
统一开发平台下的聚合效应
低代码尝试将所有与应用开发相关活动都收敛到同一个平台(one platform)上后,将会产生更多方面的聚合效应与规模收益:
• 人员聚合:除了上一点所提到的各职能角色紧密协作以外,人员聚合到统一的低代码开发平台进行作业后,还能促进整个项目流程的标准化、规范化和统一化。
• 应用聚合:一方面,新应用的架构设计、资产复用、相互调用变得更容易;另一方面,各应用的数据都天然互通,同时平台外数据也能通过集成能力进行打通,彻底消除企业的数据孤岛问题。
• 生态聚合:当低代码开发平台聚合了足够多的开发者和应用后,将形成一个巨大的、连接一切、有无限想象力的生态体系,彻底放飞低代码的价值。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。