pb开发的界面出现问号_零代码/低代码开发平台效率更高?专家告诉你惊人真相...

dc1639fb15b51f457b599b103460dfe7.png

这几年很火的一个概念叫低代码 ( Low Code Development ) 开发,用少量的代码就能开发复杂的业务系统。然后更进一步,由此又催生出一个新的概念:零代码开发 ( No Code Development )。

但是想想人工智能,吹了这么多年,落地的应用有多少呢?语音开空调?关窗帘?可以查天气的Siri?最有用的好像是自动驾驶,算是在一个细分领域的具体应用。是的,理想总是美好的,现实却要脚踏实地。本文就来扒一扒零代码开发平台美丽故事后的真实现状。

零代码开发是新技术吗?

其实零代码开发并非什么新鲜的概念。2000年左右就非常普遍。大家还记得水晶报表 ( Crystal Report ) 吗?不需要依赖开发人员,使用图形化的工具就能绘制报表。还有 Lotus Notes,可以在界面上配置数据表单,并且通过邮件的方式发送到各个部门填写。还有BPM软件(审批王、K2等),无需开发人员介入,使用图形化的方式就能配置表单与流程,实现业务流程的数字化。还有自助建站系统,选一个模版,画几个网页,就能生成一个高大上网站。然而这些都是20年前就存在的技术,零代码只是一个新头衔。

零代码开发平台可以做什么?

从应用范围上来说,零代码开发目前能做的和20年前差不多,还是局限于细节的开发领域。这些开发可以总结出共性,可以标准化,可以设计出图形化的界面给最终用户使用,因此能大幅提升效率。

目前的零代码开发平台主要有三类,界面设计类、表单流程类、数据管理类。

第一类是界面设计类,通过拖动的方式绘制用户界面。思路与传统的自助建站系统雷同,只是现在进行了扩展,不只是开发网页,还能与后台的业务数据交互。不仅能绘制电脑端的界面,还能设计手机端的样式。典型的厂商有 微软的 PowerApps,被西门子收购的Mendix,以及获得大笔融资的Outsystems 。

第二类是表单流程类,这一类工具谈不上新技术,基本上就是BPM厂商在炒作,还是20年前那一套图形化的流程设计、表单设计工具,换汤不换药。这一类工具只实现了审批的过程管理,流程结束,管理就结束了。

第三类是数据管理类,这一类工具最早的实现方式其实是Excel,可以设定很多字段,可以把数据录入进去然后进行统计。随着应用的深入,为了实现共享编辑,Google发明了云端的Excel,可以多人同时编辑,可有追踪每个人的修改痕迹。但Excel不能定义字段类型,不能做输入校验,不能控制权限,于是 Salesforce 发明了云端数据库的模式,可以在线创建数据表,设定字段,并融入了第一类和第二类开发工具的界面设计、流程设计的功能,打造了一套云端开发管理系统的新模式,也因此迅速红遍全球,成了最热门的管理软件开发工具。

零代码开发真的这么美丽吗?

前面Salesforce的故事只说了一半,零代码只是开发的第一步。我们都知道Excel可以配置公式,实现数据计算,并提供了数百个公式,可以实现很多很复杂的功能,这就是一种最基本的低代码。这些公式,给简单的Excel文档带来了更大的价值,说的高大上一点,也算是一种人工智能。

系统开发也一样,你不可能只是简单的录入和查看数据,为了让系统更智能,你必须要做很多计算。比如对于一套物品领用的管理系统,你需要实时扣减库存;对于一套会议室预约的系统,你需要计算会议室是否被占用;对于一套请假系统,你需要计算员工的年假还剩几天,还能不能继续请年假。这些就是开发人员所说的业务逻辑的部分。通过编写业务逻辑,可以让系统更智能,提升工作效率。

如何编写业务逻辑呢?Salesforce 的实现办法是使用触发器,在数据保存之前,编写代码进行校验,数据保存之后,更新相关的数据表。国产的低代码开发平台华炎魔方,也是类似的思路。

我就是不想写代码,能用零代码方式实现业务逻辑吗?

答案是可以,可以解决一小部分简单的需求。比如 Salesforce 提供了一个工具Process Builder,可以在界面上编写条件判断,执行更新数据库操作,实现基本的业务逻辑。

8d7667cadfa124bfa814ec7ccfd2ed44.png

但是这类工具有点尴尬,如果你是一个程序员,写一段这样的业务逻辑可能只需要20行代码5分钟,但是想要画出这样一张零代码的流程图,肯定不止5分钟。如果你是一个业务人员,这上面的东西你真的能看懂吗?就算你看懂了,你能自己画出这样的流程图吗?或许IT部门的同事可以做到,但有没有真正提升开发效率我要打一个大大的问号❓。还有一点,这样的流程图,要怎么调试呢?

同时,对于大型项目,版本管理是很重要的课题,Salesforce当然也有对应的解决方案。你可以创建一个Salesforce DX项目,然后把所有界面上绘制的业务逻辑同步到本地,加入源码仓库进行版本管理。但问题又来了,你是通过图形化的方式绘制的业务逻辑,所以同步到本地的也是一大堆配置文件,各种属性用来记录配置界面上的各种参数,源码本身并没有可读性。当业务逻辑发生变更时,版本管理工具提供的代码差异比较功能更是鸡肋一样,没有价值。

零代码只是一个花架子,低代码开发平台是最好的选择

因此笔者认为,在界面上绘制业务逻辑是不懂开发的无奈选择,对于程序员来说,编写脚本思路更加清晰、更容易阅读和修改、更容易调试,开发效率更高。国产低代码开发平台华炎魔方选择编写脚本的方式来开发业务逻辑,可以很方便的实现本地调试、单步追踪、复制粘贴、以及多人协作下的源码版本管理。

低代码开发平台有什么好处呢?

效率!企业在数字化转型的过程中,需要面对很多问题。如何数字化?哪些部门需要数字化?哪些业务需要数字化?这些问题都需要在不断的摸索和试错中前行。并且业务部门永远只能描述需求,开发人员又不懂业务,如果按照传统的模式,项目上线通常需要几个月甚至数年的时间才能开发完成,这会严重阻碍业务创新的进程。而低代码开发平台就不一样了,程序员通常可以在一周甚至一天之内搭建出系统原型。业务人员可以一边试用系统原型,一边与程序员进行探讨,找到思路差异的部分。程序员也可以一边修改一边与业务人员确认。使用这种迭代开发模式,数据建模通常可以在1~2周内完成,根据业务需求的复杂程度不同,业务逻辑部分可以在2~4周内完成,系统就能正式上线了。系统推广到各部门应用之后,必然会继续反馈各种开发需求,基于低代码平台开发的系统核心业务逻辑采用配置的方式实现,只需要调整配置可以快速的响应需求,很多需求当天就能调整完,当晚就能更新到正式环境。

开发效率提高了,企业的业务创新能力也就自然提升了。在一个可控的时间段内,实现公司所有业务部门的数字化转型,把传统分散在各个Excel,各类文件,各种子系统中的数据收集到统一的数据平台上来,对于提升管理水平会有很大的帮助。举一个简单的例子:供应商管理,从供应商的初期评审、各种资质文件、到签订的每一个合同、每一次付款情况、每个项目的验收记录、每年的考评记录,都可以在一个界面上清晰的查看。对于客户,从初始的客户来源,到客户评级、每次的成交记录、谈判记录、客服记录、投诉记录、是否能及时付款、甚至客户在公司网站上的浏览记录等等,都可以完整的追踪。

只有程序员才能使用低代码开发平台吗?

低代码开发平台的第一个能力是数据建模,这一点不需要很高的编程水平,但需要懂数据库设计。怎样把用户的业务需求转换为数据表保存下来?各种业务要素,应该用什么样的字段类型来表现?数据表之间要怎么关联?数据量大时,如何优化数据结构提升查询效率?主表记录删除时,相关表记录应该如何处理?很多IT部门的专家、项目经理、产品经理都掌握类似的技能,这个环节都可以比程序员做的更好。

即使是编写业务逻辑,很多理科生在大学中都学过C语言课程。编程本身不难,定一个变量,写一个循环,写一个判断,难的是各种编程框架、各种编程语言、各种函数、各种控件、各种平台等等。低代码开发平台把所有的难题都在内核层面解决,开发人员只需要处理数据建模和核心业务逻辑编码两个部分,相对要简单很多。如果你曾经尝试过编写Excel的宏,那切换到低代码开发平台应该没有很大的难度。当然,一定需要时间去学习,我觉得逻辑思维清楚的人,通过培训课程,应该可以在1~3个月之内掌握低代码平台的开发能力。

学习低代码开发平台对于程序员的个人发展有帮助吗?

其实这是两条完全不同的发展路径。传统的程序员要阅读和编写大量的代码,使用各种编程语言,学习各种控件,各种函数,做的项目越多,编程水平越高。难题是技术的发展日新月异,要不断的学习新知识,新的开发工具甚至新的开发语言。30岁必须要开始考虑转型为项目经理或是产品经理,否则40岁以后必然要面对职业生涯的瓶颈。

而低代码开发平台的程序员专注于数据建模和业务逻辑实现,重点关注的是业务而不是编程,做的项目多了以后,可以成为这个行业内的数字化转型专家。你积累的主要是管理经验而不是编程经验。而管理模式虽然也在不断的试错,不断的优化,但是更新迭代的速度相对要慢很多,因此就好像很多管理学的教授一样,越老越值钱。

华炎魔方开源低代码开发平台

华炎魔方创新的使用配置文件描述业务模型和业务功能,开发人员只需要编写简单的配置文件就可以构建企业级应用程序,数百项系统功能都可以通过设置参数进行配置。

c3e77663e6f167e01f52cf6fd0123643.png
华炎魔方低代码开发平台案例https://www.zhihu.com/video/1238110700716511232

配置文件和与业务逻辑相关的触发脚本,就构成了一个项目的核心源代码,简单易懂,易于维护。对于大型项目,源码可以轻松保存到Github,可以随时追踪到开发人员的修改历史。

7121527cfa881cd2f5074a994d85a2f3.png
华炎魔方开源低代码平台开发环境https://www.zhihu.com/video/1238110359002529792 快速开发随需应变的企业管理软件 | 华炎魔方​www.steedos.com
53a7e4dc60cb37c0cc0a9dce70e0bbe8.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PowerBuilder是美国Powersoft公司于90年代初推的基于客户/服务器体系结构的面向对象的数据库开发工具。该产品一上市即深受广大应用开发人员的喜爱,因此迅速占领市场,目前几乎已发展成为前端工具的事实上的标准。著名数据库软件公司Sybase收购Powersoft公司以后,PowerBuilder通过Sybase较早地介绍给了中国用户。 1994年Powersoft公司又在北京建立办事处,PowerBuilder便广泛为中国的用户接受和使用。所开发的应用已广泛地应用于金融、证券、邮电、商业等各个部门和各个领域,并发挥着巨大的作用。据有关方面统计,PowerBuilder在中国的市场占有率目前已达40%左右。 Sybase公司及其代理商在从事PowerBuilder的销售、培训和技术支持等服务时,经常发现由于用户来自各个行业,专业背景不同,开发经验不同,再兼之国内的有关书籍和资料较少,因此造成用户对Power-Builder的很多特性不甚了解, 在进行深入开发时遇到了很多困难。鉴于此,开办PowerBuilder应用开发系列讲座,本讲座面向正在使用PowerBuilder进行开发的读者, 主要讨论使用PowerBuilder进行数据库应用开发的经验和开发技巧。<br><br> * 第一讲: 数据库的事务管理<br> * 第二讲: 调用Windows的动态链接库<br> * 第三讲: PowerBuilder面向对象的程序设计<br> * 第四讲: 并发控制<br> * 第五讲: DataWindow的打印输<br> * 第六讲: DataWindow的打印输(续)<br> * 第七讲: 利用SetActionCode函数控制DataWindow<br> * 第八讲: 分布式PowerBuilder设计<br> * 第九讲: DataWindow的数据缓冲区<br> * 第十讲: 用DataWindow实现对多表的修改<br> * 第十一讲:游标的使用<br> * 第十二讲:预装入对象<br> * 第十三讲:资源管理<br> * 第十四讲:PowerBuilder的事件<br> * 第十五讲:PowerBuilder的事件(续)<br> * 第十六讲:生成可重用的数据窗口<br> * 第十七讲:编写行选择函数<br> * 第十八讲:优化数据库查询<br> * 第十九讲:使用PowerBuilder另外500个函数(上)<br> * 第二十讲:使用PowerBuilder另外500个函数(中)<br> * 第二十一讲:使用PowerBuilder另外500个函数(下)<br> * 第二十二讲:树型视图控件<br> * 第二十三讲:函数与事件<br> * 第二十四讲:Install Builder 的使用方法<br> * 第二十五,二十六讲:一个代码维护的应用程序(上、下)<br> * 第二十七讲:在 PowerScript 脚本中访问数据窗口中的数据<br> * 第二十八讲:开发和运行环境中的动态连接库<br> * 第二十九讲:如何使用 BLOB 数据类型<br> * 第三十讲:在数据窗口中使用滚动条<br> * 第三十一讲:在数据窗口中使用滚动条(续)<br> * 第三十二讲:为下拉式数据窗口建立缓冲区<br> * 第三十三讲:为下拉式数据窗口建立缓冲区(续)<br> * 第三十四讲:布式事务处理<br> * 第三十五讲:布式应用开发<br> * 第三十六讲:FUNCky 的使用<br> * 第三十七讲:PFC介绍<br> * 第三十八讲:PowerBuilder 6.0 简介<br> * 第三十九讲:图形用户界面设计<br> * 第四十讲:图形用户界面设计(续)<br>
当将代码从STM32F103C8T6更改为STM32F4ZET6时,需要注意以下几点: 1. 更改头文件引用:包含正确的头文件。例如,将`#include "stm32f10x_gpio.h"`更改为`#include "stm32f4xx_gpio.h"`。 2. 更改外设时钟使能函数:在STM32F4系列中,外设时钟使能函数的名称可能会有所不同。例如,将`RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA, ENABLE);`更改为`RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOA, ENABLE);`。 3. 更改GPIO初始化结构:由于不同系列的STM32芯片具有不同的寄存器映射和功能,需要根据STM32F4系列的GPIO寄存器和功能进行相应更改。例如,将`GPIO_InitTypeDef GPIO_InitStructure;`更改为`GPIO_InitTypeDef GPIO_InitStruct;`。 4. 更改引脚宏定义:由于引脚定义可能会因芯片型号而有所不同,需要根据实际情况更改引脚宏定义。例如,将`GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_7;`更改为适用于STM32F4ZET6的引脚宏定义。 下面是修改后的代码: ```c void ADS1256_GPIOInit(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOA, ENABLE); //使能PB,PA端口时钟 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_7; //PA5 PA7 端口配置 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; //推挽输 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; //推挽输 GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; //不使用上下拉电阻 GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_7); // GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; // 端口配置 PB0 GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_SetBits(GPIOB,GPIO_Pin_0); // GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6; // 端口配置 PA6 DOUT GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; //上拉输入 GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1; // 端口配置 PB1 DRDY GPIO_Init(GPIOB, &GPIO_InitStruct); } ``` 请注意,以上代码只是对GPIO初始化的修改,其他与ADS1256相关的代码可能需要根据芯片型号进行相应的修改。确保在修改代码时参考STM32F4系列的技术手册和参考手册,以确保正确配置引脚和外设。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值