首页 > 其他分享 >为什么现代的低代码开发平台都不支持导出源代码?

为什么现代的低代码开发平台都不支持导出源代码?

时间:2023-06-28 09:03:25浏览次数:33  
标签:代码 导出 Visual 开发 可视化 Studio 源代码

摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

初次接触低代码的程序员大多会纠结一个问题,为什么功能越强大的低代码开发平台越不会提供导出源代码的功能?

要想回答这个问题,我们得回顾一下低代码开发的发展史。事实上,支持导出源代码的低代码工具,是上一个时代的产品了。现在,大多数还有研发能力而且愿意推进产品化的低代码厂商都已经完成了或者正在进行向元数据驱动的转型。

站在2023年,国内低代码行业的厂商多样性太强,鱼龙混杂。为了说清代码生成器和元数据驱动的差异和优缺点,我们可以用Windows桌面程序的可视化开发作为类比,毕竟Visual Studio可以算是低代码的鼻祖之一了。

最初Visual Studio和更早期的Visual Basic在设计界面时采用了代码生成器的技术方案,IDE将用户拖拽控件、设置属性的动作直接翻译成操作这些控件的代码。用户可以直接获取到这些代码,如果有需要则可以通过修改这些代码来实现对VS可视化开发能力的扩展。

(Visual Studio 生成的WinForm代码)

这种做法历史悠久,可以上溯到90年代。有点很明显,这种做法对IDE来说,实现起来最简单,用户动手修改起来也是比较方便的。然而,如果用户真的使用这种做法开发一个大型的项目并长期维护,就会发现放任开发人员对designer generated code部分进行修改,先不提如何读懂设计器生成的没有注释的代码,很容易导致后续的可视化操作冲掉一部分手工修改的代码,甚至连可视化设计页面都无法打开。可视化开发成了“一锤子买卖”,长期来看,可视化开发带来的开发效率和可维护性优势都非常有限。毕竟,软件不是一蹴而就的,而是需要长期的维护和迭代,才能充分发挥出价值。

为了解决这个问题,让可视化开发可以长期发挥效用,微软在做新一代桌面应用开发方式时参考了Web中使用的HTML技术,2008年推出了WPF技术。使用Visual Studio开发WPF应用的界面时,IDE将用户拖拽控件、设置属性的结果保存为XAML格式(一种XML)的元数据。因为XAML本身就是可视化设计的结果,可以和可视化设计器一一对应,用户对XAML的修改可以实时反馈到可视化设计页面,这就是Visual Studio默认的Split视图。用户可以随时在可视化开发和编码扩展之间切换,适配开发阶段和维护阶段。

(Visual Studio生成的WPF元数据)

将面向过程的代码切换为面向结果的元数据,可视化开发从“一锤子买卖”到持续覆盖,可视化开发终于发挥出了应有的价值。下面是两种技术路线的特性对比:

评价标准 生成源代码 生成元数据
产品化程度 低(需通过混淆来保护版权)
扩展开发的推荐方式 修改生成的源代码 开发插件(元数据标签)
可视化开发覆盖度 创建时 全生命周期
总体的可维护性
总体的开发效率 低(与编码开发接近)

回到文章开头的问题。作为一名程序员,如果你希望使用低代码开发工具构建并长期维护一个软件项目,请趁早抛弃“导出源代码”的想法,因为低代码最大的价值并不是像可配置的代码模板一样,初次创建一个页面或业务逻辑,而是降低长期的开发和维护成本。选择一个产品化程度高(重点关注页面和逻辑设计的灵活度、文档、教程和开发者社区),采用元数据驱动技术路线的低代码开发平台吧,比如葡萄城的活字格低代码开发平台,如果有必要按照厂商提供的类似于“插件”或“子系统集成”的方式进行扩展开发。

如果你做的是“一锤子买卖”的项目,后续将维护工作完全移交给甲方,那就别用低代码。读别人写的代码很痛苦,读机器生成的没有注释的代码简直是噩梦。大家都是程序员,同行何苦为难同行?

标签:代码,导出,Visual,开发,可视化,Studio,源代码
From: https://www.cnblogs.com/powertoolsteam/p/17509622.html

相关文章

  • R语言从经济时间序列中用HP滤波器,小波滤波和经验模态分解等提取周期性成分分析|附代码
    全文下载链接:http://tecdat.cn/?p=9350最近我们被客户要求撰写关于经济时间序列的研究报告,包括一些图形和统计输出。经济时间序列的分析通常需要提取其周期性成分。这篇文章介绍了一些方法,可用于将时间序列分解为它们的不同部分 ( 点击文末“阅读原文”获取完整代码数据*******......
  • R语言Gibbs抽样的贝叶斯简单线性回归仿真分析|附代码数据
    全文下载链接:http://tecdat.cn/?p=4612最近我们被客户要求撰写关于贝叶斯简单线性回归的研究报告,包括一些图形和统计输出。贝叶斯分析的许多介绍都使用了相对简单的教学实例(例如,根据伯努利数据给出成功概率的推理)。虽然这很好地介绍了贝叶斯原理,但是这些原则的扩展并不是直截了......
  • R语言JAGS贝叶斯回归模型分析博士生延期毕业完成论文时间|附代码数据
    原文链接:http://tecdat.cn/?p=23652最近我们被客户要求撰写关于贝叶斯回归的研究报告,包括一些图形和统计输出。本文为读者提供了如何进行贝叶斯回归的基本教程。包括完成导入数据文件、探索汇总统计和回归分析 ( 点击文末“阅读原文”获取完整代码数据******** )。在本文中,我......
  • R语言使用多元AR-GARCH模型衡量市场风险|附代码数据
    原文链接:http://tecdat.cn/?p=19118最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。本文分析将用于制定管理客户和供应商关系的策略准则假设:贵公司拥有用于生产和分销聚戊二酸的设施,聚戊二酸是一种用于多个行业的化合物。制造和分销过程的投入包括各种......
  • JavaScript 中模块的导入和导出
    模块简介html文档一般在标签中引入外部js文件<script>标签引入的脚本中创建的变量,都会被注册为window对象下全局变量,这样做会污染全局命名空间这就衍生除了模块化的解决方案,比如CommonJS等,但是这些解决方案都不是JavaScript原生的,直到ES6支持JavaScript模块的使用。......
  • Java学习——IDEA编辑器 导出项目对应Java Doc文件
    IDEA生成JavaDoc帮助文档方法一:使用命令行生成1.选中项目右键showinExplor。。2.选中地址栏cmd3.输入命令javadoc-encodingUTF-8-charsetUTF-8Doc.java4.在项目地址中查看生成html等文件方法二:使用idea生成1.(选中要生成文档的类)找到工具栏tools-->......
  • 自定义代码片段
    前言使用自定义代码片段可以快速生成代码片段,提升开发效率。使用在vscode中ctrl+shift+p,新建全局代码片段。写好模板,复制进这个网站https://snippet-generator.app/将生成的模板复制进文件中......
  • Qemu中生成针对具体体系结构的纯净代码的方法---利用GCC的-E选项
      实验室正在研究一个叫做Qemu的项目,外国人写的初始代码。里面很多内容是我们不需要的,但是却参杂在我们关注的代码中。突然想到了一个编译命令-E,它能够一下子就把那些不需要的代码过滤掉。以前几次开会大家都抱怨这个东西干扰信息太多,导致代码分析的连贯性总是被打断,进度特别慢......
  • tcp_bbr 代码分析
     brr算法流程:bbr算是一个完全独立的拥塞算法,具有自己的拥塞状态机.tcp_cong_control函数已经被bbr_main函数接管了 staticvoidtcp_cong_control(structsock*sk,u32ack,u32acked_sacked,intflag,conststructrate_sample*rs){conststr......
  • 优维低代码实践:数据加工/转化详解
    优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。优维低代码实践连载第⑧期《数据加工/转化详解》▽一、表达式VisualBuild......