低代码与程序员:何去何从?—— 以inBuilder x UBML 为引例

之前提到过很多次低代码,这次我们来正式讨论一下低代码这个问题。

低代码,顾名思义,就是能少写代码就少写代码,以较少的代码调整量与大量模块化模板调整从而达成在较少时间内交付出较为完善的应用程序。

可以这么说,低代码和模块化、可视化等关键词联系紧密,通过对预置模板的“拖拉拽”等方式达成项目的搭建。

现在的低代码主要都是在讲述业务等办公领域的应用,但要真正讨论起来,计算机本身发展的过程就是追求轻量化代码的过程,从机器语言到汇编语言,再到C++,Python等高级语言,之后对于这些高级语言,有越来越多的类库加入,比如C++的STL库,方便了程序员的代码书写与理解;之后就是基于这些语言的开发软件,这些开发软件会预先提供部分模块(比如Unity的AR Foundation模块就是为了开发增强现实项目而准备的基础模块,当引用这一模块时,可以直接使用预设脚本导入到物体上,无需进入代码修改只需在Unity设计界面中对部分参数、引用做出可视化调整即可),通过这些模块,使得开发的过程能少写一些内容并对模块有清晰的了解,除去上面举例的Unity之外,还有很多初学者甚至几乎没有代码基础的人青睐的软件——RPG Maker系列,如果说Unity虽然方便了项目开发,但还是需要理解并写大量C#脚本来构建项目,那么基于JS或Ruby的RPG Maker系列可以说如果只是简单开发,几乎不需要任何代码就能编写经典的rpg游戏出来,尽管范围只局限在游戏开发中。这也是最为贴近低代码开发的一个例子。这些东西的研发历史都是早于低代码这一概念的正式提出的。

2014年,Forrester首次定义“Low-Code Development Platforms”,即低代码开发平台,在其发布的研究报告《New Development Platforms Emerge For Customer-Facing Applications》中,Forrester将低代码开发平台定义为:"通过可视化编程和模型驱动逻辑,实现快速应用开发的平台,同时支持专业开发者和普通业务用户共同参与开发过程。"报告中详细阐述了低代码平台存在的几个关键特征:

  1. 可视化开发界面:主要通过拖拽组件和配置参数的方式构建应用,大幅减少传统代码编写量
  2. 模型驱动开发:采用声明式编程范式,开发者通过定义业务逻辑模型而非编写具体代码
  3. 自动化功能:包括自动生成代码、自动测试、一键部署等能力
  4. 多角色协作:支持专业开发者和业务人员在同一平台上协作

中国的低代码平台大致就是从这个时期开始萌芽,这一时期国内互联网行业蓬勃发展,传统企业数字化转型需求激增,同时移动互联网普及带来对快速开发工具的需求,涌现出了很多本土低代码平台,比如氚云、简道云、阿里云·宜搭等等,然后在疫情期间瞬间爆发需求与发展,最后进入平稳的发展期。

计算机学习的过程中我们应该会学习到一个不同于编程语言的语言——UML,即统一建模语言,是一种用于软件系统分析和设计的可视化建模语言,它通过标准化的图形符号来帮助开发者更清晰地表达软件系统的架构、行为和逻辑结构,包括用例图,类图,时序图,活动图等。其不直接用于编写可执行代码,而是作为沟通工具帮助开发团队在项目前期达成共识。但事实上由于UML和实际代码的分离性,学生们对于UML的想象可能就止步于作业和考试要你画的一堆图中,在实际写前后端代码时根本不会去画图而是直奔着Controller之类的东西就开始框框写,即使考虑到了,但又可能因为精力有限,UML图考虑不周全,当发现需要增加什么用例或类时,带来的修改量也是较大的;对于开发者来说也有可能存在着这些问题。

UBML,即统一商务建模语言,相比之前提到的UML,最大的区别就在于和实际代码的联系,UML不依赖于具体代码实现,是面向传统软件的开发,提供系统分析、设计的通用建模工具,使用效果因人而异,对于缺乏项目管理经验的人来讲,用起来就会比较麻烦,而UBML则是专门为低代码平台设计的,强调业务逻辑与应用开发的直接映射的建模语言,目标是通过模型驱动开发快速生成企业级应用(如ERP、OA),当你理清建模时,一个程序可能随之而来的就做好了(这主要是因为其核心模型在于业务实体、流程、界面、规则,当你在低代码平台对模块“拖拉拽”时,你也在理清模块之间的关系)。同时由于UBML是由中国机构推动且目前运用在国内生态中的,其语法,图形等是为国内项目习惯定制的,便于国人理解与使用。

inBuilder作为承载UBML的低代码平台,负责了从建模到实现的关键步骤,当你在UBML层面把业务流程、数据结构、页面逻辑等模型都拖拉拽好,之后inBuilder就会为你准备好相应的数据库、后端接口、前端页面、审批流程等,根据这些模型与inBuilder的准备,就能生成一套可运行的系统。

从我之前对inBuilder和UBML的应用来看,确实可以不依靠写代码,在搭好环境的前提下就能简单满足业务需求,并且在这种条理性的步骤中理解这些业务的相互关系。对于学生群体来说,在已有前后端学习经验的基础上,快速上手UBML+inBuilder,既能搭建完整系统,又能锻炼逻辑思维与建模能力,为以后的项目构筑打好基础;对于独立开发者来说,无需团队支持,一人即可完成从建模到系统开发的全流程,省去了前后端协作成本;对于企业IT人员来说,可以高效开发内部系统(如审批流、信息管理),贴合低代码模式,缩短交付周期;对于业务/产品人员来说,可以直接参与业务建模,用可视化工具沟通需求,减少传统开发中的设计等待环节。

有人担忧低代码平台会剥夺程序员的生存空间,似乎有可能,但可能性又不是很大。目前的低代码平台并非智能,很多都仅仅能满足基本需求,即使结合了当今的AI来看,还是无法解决这个问题,当场景变得复杂的时候,你还是要写代码,而且可能要付出更高的代价。低代码的出现,一方面确实可以让程序员少写代码,从而将精力放到更艰难的开发维护等方面,但其作用不止于此,更多的一方面是其还原了业务开发的全过程——从需求到实现,能让程序员更多的去审视自己的开发过程,了解系统模块,数据流动,用户行为与流程的相互作用等问题,使开发代码的书写代价进一步降低。而开源的低代码平台更是可以让你体会到你所设计的项目与其背后的代码之间的联系,为后续可能存在的项目模块扩展建立基础。

低代码降低了普通人的开发门槛,却也为程序员提出了更高的要求。未来的开发之路,设计模型远远比埋头写代码重要,在系统各模块统一表达的平台中,程序员更应该具有建模思想。

最后,作为inBuilder社区开发贡献人员之一,欢迎大家为低代码平台做出贡献,搭建更多通用的模块,助力开源社区发展(^_^),也欢迎有兴趣的人前来尝试低代码的乐趣。

【顶级EI完整复现】【DRCC】考虑N-1准则的分布鲁棒机会约束低碳经济调度(Matlab代码实现)内容概要:本文介绍了名为《【顶级EI完整复现】【DRCC】考虑N-1准则的分布鲁棒机会约束低碳经济调度(Matlab代码实现)》的技术资源,聚焦于电力系统中低碳经济调度问题,结合N-1安全准则分布鲁棒机会约束(DRCC)方法,提升调度模型在不确定性环境下的鲁棒性和可行性。该资源提供了完整的Matlab代码实现,涵盖建模、优化求解及仿真分析全过程,适用于复杂电力系统调度场景的科研复现算法验证。文中还列举了大量相关领域的研究主题代码资源,涉及智能优化算法、机器学习、电力系统管理、路径规划等多个方向,展示了广泛的科研应用支持能力。; 适合人群:具备一定电力系统、优化理论和Matlab编程基础的研究生、科研人员及从事能源调度、智能电网相关工作的工程师。; 使用场景及目标:①复现高水平期刊(如EI/SCI)关于低碳经济调度的研究成果;②深入理解N-1安全约束分布鲁棒优化在电力调度中的建模方法;③开展含新能源接入的电力系统不确定性优化研究;④为科研项目、论文撰写或工程应用提供可运行的算法原型和技术支撑。; 阅读建议:建议读者结合文档提供的网盘资源,下载完整代码案例数据,按照目录顺序逐步学习,并重点理解DRCC建模思想Matlab/YALMIP/CPLEX等工具的集成使用方式,同时可参考文中列出的同类研究方向拓展研究思路。
内容概要:本文详细介绍了一个基于MATLAB实现的电力负荷预测项目,采用K近邻回归(KNN)算法进行建模。项目从背景意义出发,阐述了电力负荷预测在提升系统效率、优化能源配置、支撑智能电网和智慧城市建设等方面的重要作用。针对负荷预测中影响因素多样、时序性强、数据质量差等挑战,提出了包括特征工程、滑动窗口构造、数据清洗标准化、K值距离度量优化在内的系统性解决方案。模型架构涵盖数据采集、预处理、KNN回归原理、参数调优、性能评估及工程部署全流程,并支持多算法集成可视化反馈。文中还提供了MATLAB环境下完整的代码实现流程,包括数据加载、归一化、样本划分、K值选择、模型训练预测、误差分析结果可视化等关键步骤,增强了模型的可解释性实用性。; 适合人群:具备一定MATLAB编程基础和机器学习基础知识,从事电力系统分析、能源管理、智能电网或相关领域研究的研发人员、工程师及高校师生;适合工作1-3年希望提升实际项目开发能力的技术人员; 使用场景及目标:①应用于短期电力负荷预测,辅助电网调度发电计划制定;②作为教学案例帮助理解KNN回归在实际工程中的应用;③为新能源接入、需求响应、智慧能源系统提供数据支持;④搭建可解释性强、易于部署的轻量级预测模型原型; 阅读建议:建议结合MATLAB代码实践操作,重点关注特征构造、参数调优结果可视化部分,深入理解KNN在时序数据中的适应性改进方法,并可进一步拓展至集成学习或多模型融合方向进行研究优化。
先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值