分享好友 最新动态首页 最新动态分类 切换频道
AI低代码开发宣言之核心:编程的粒度
2024-12-27 02:11

引言:由于编程语言的灵活性,同一个功能可以有无数种实现的方式,虽然AI大模型给出了一种实现方式,但是实现的正确性还需要我们自己进一步验证,许多个性化的需求还需重新处理。由于生成的都是片段代码,因此需要首先设计系统架构体系,让AI大模型在具体的架构框架下进行代码生成。所以说目前直接使用AI大模型是否能真正的减少工作量还有待确定。   

      相比编程的粒度,建筑的粒度也许更能让人直观地理解,一个建筑最细的粒度可能是沙子,水泥和砖块,当然还有更细的,但不在我们讨论范围之内。这些基本要素组成墙体,墙体组成了房间,房间组成了楼层,楼层组成了大楼。下层粒度都是组成上层粒度的基础,在每层粒度上只要考虑本层及底层粒度的组合,而无须考虑更细粒度的问题。这在编程上同样适用。编程的过程也是不断分层抽象的过程,没有什么问题是不能通过增加一个抽象层解决的,如果有的话就再增加一层。一般情况下,越小的粒度越灵活,功能也越强大,同时使用起来也越复杂;越大的粒度虽然使用相对简单,但功能和灵活性也会受到限制。这里我们介绍一下从编程语言到软件系统之间的几个粒度。

      第一层粒度是编程语言。几乎所有的语言都包含基础数据类型、关键字和一些基本类库,如C、C++、Java、C#、JavaScript,Python等。这些语言都是图灵完备的,也就是说可以实现计算机能够实现的任何功能。但是不同的语言也有不同的针对性,使用的难度也不相同。如C语言则偏向于底层与硬件交互的驱动程序开发,或者对性能要求很高的模块;C++是C语言的升级,具有面向对象的特性,也更加适合应用程序的开发;Java是一门跨平台的面向对象语言,更加简单易学,目前更多的用于Web服务端开发;C#是微软开发的在Windows平台上的面向对象语言,与Java语言类似,也是很简单易用;JavaScript是基于浏览器运行的动态语言,与HTML,CSS一起共同支撑Web前端页面的展现和交互;Python是一个面向对象的动态语言,在目前人工智能的开发中应用广泛,由于运行环境轻量,语言规则简单,非常适合编程入门。在实际系统开发中,首先会选择开发语言,每个语言都有其不同的生态,生态越成熟,则提供的类库、框架、功能模块就越多,开发过程中遇到问题也就更加容易解决。

      第二层粒度是类库。类库是在语言的基础上对数据模型和常用算法的封装,优秀的语言总是拥有一个更为强大的类库体系,如Java的JDK,C#的.NET Framework,Python的WxPython等,这些类库多种多样,包罗万象,涵盖了编程的方方面面,包括图像处理,文本处理,网络通信,Web开发,数据库操作,音视频处理,科学计算,游戏开发,GUI,人工智能,搜索引擎,硬件相关等等。大多数的程序员都是在类库和框架之上进行开发的,每种类库都有一定的专业性,通过对类库的灵活使用,就可以完成各种各样的业务要求。

      第三层粒度是框架。框架不仅仅是类库的集合,而且通过类库实现了一个更为强大的架构体系。框架往往更具领域特性和设计思想,可以更好地完成某一方面的工作。比如著名的Java Spring框架已经成为大部分Java Web应用的标准实践,包含了大量企业应用的基础设施,网络请求处理模型,数据库交互模型等。不仅简化了系统的开发,还提供了一整套稳定可靠的架构策略。类似的互联网应用的开发框架还有C#的ASP.NET MVC,Python的Django ,PHP的ThinkPHP等;适合信息管理系统的框架有C++的Qt,C#的WinForm等;适合前端交互页面开发的有JavaScript的React、Angular、Vue等框架;适合自动化测试框架的有:Java的JMeter 等;还有适合专业软件的算法框架,如Python的人工智能开发框架TensorFlow,Keras等。值得注意的是,这些框架并不涉及到具体的应用业务逻辑,保证了易用性和灵活性的平衡。

      第四层粒度是组件。组件是指具体的功能模块,可以利用框架或者直接使用类库实现的一组功能组件,如搜索模块,Elastic Search;数据存储组件Redis,MongoDB,MySQL等;可视化展现组件,Echart,D3等;音视频处理组件WebRTC,Jitsi;即时通信组件OpenIM;消息中间件组件:RocketMQ,RabbitMQ;工作流组件:Activity Flow;地图处理组件:MapServer,GeoServer,Leaflet,Cesium等;数据库操作的ORM组件:Hibernate,Mybatis等;众多的界面交互组件:Antd,ElementUI,Swing等;这些组件可以单独部署,也可以与系统集成,但是在功能上并不能独立使用,需要与具体的业务相结合。

      在上述粒度分层中,我们有意少介绍了第五层这是因为这一层在目前的很多软件开发中都被忽略了,直接从组件到系统。事实上,组件作为很多信息管理软件系统的下层粒度还是过于细小,以及组件的业务无关也是导致目前软件编程实现复杂度增加的一个重要原因。一方面我们可以通过提高组件的封装度来减少复杂性;另一个更为有效的办法就是在组件和系统之间增加一个业务相关的通用模型层,通过模型层来屏蔽组件的复杂度,同时对其进行通用化设计以增加灵活性。

      值得注意的是,这里的模型更类似于模板,是预先存在的,是通用化的业务逻辑设计传统的软件需求分析设计的最小粒度是组件,设计的结果是类图、ER图、流程图、界面原型图等,而低代码开发中,设计的最小粒度为模板模型,设计的结果为设计元模型。设计元模型是一个更加易懂、更加强大也更容易交流的设计形式。在传统的开发过程中设计思想很少能够完整的记录下来,分析设计的结果都是分散在了会议的讨论中或者程序员的思考中,设计也很难在代码中得到直观体现。利用设计元模型,不仅可以充分记录设计思想,将设计清晰直观的呈现,而且还可以生成设计文档、测试代码甚至整个原型系统。设计元模型也可以看作是通用模型的一个实例,通用模型可以分为通用领域模型,通用界面模型,通用流程模型三种。

      (1)通用领域模型领域模型是对系统中的数据和服务进行建模,分为数据模型和服务模型。数据模型是用户需求描述中的公共概念模型,能够完整地表达系统的整个逻辑体系,是系统设计的核心。通用领域模型是对领域模型的泛化,如基础模型、层次模型、查询模型、基础服务模型等

     (2)通用界面模型界面模型是对系统中的功能菜单和界面要素进行建模。功能菜单代表了系统的层次结构,大部分的子菜单都会对应一个界面,界面中包含各种组件要素。界面可以通过布局和应用方式进行分类抽象得到通用界面模型,如单表操作界面、左右结构一对多操作界面、可视化统计界面等等

      (3)通用流程模型流程模型是对不同角色在系统中的操作过程进行建模。通过对用户需求的分析,将需求分解为多个流程,每个流程中有多个步骤,每个步骤由一个参与角色进行一系列的功能操作。通用流程模型有增删改查、流程审核、报表展示、统计查询、导入导出等。

     通过AI大模型可以从一段用户的需求描述中提取出软件系统的设计元模型吗

      在目前ChatGPT的应用中,已经有很多案例已经表明,经过一定的引导提示可以得到一个系统的功能模块,数据模型和流程操作。

 以下是使用ChatGPT对学生成绩管理系统的需求分析

 学生成绩管理系统的数据模型 

 学生成绩管理系统的界面模型 

 学生成绩管理系统的流程模型 

      得到学生成绩管理系统的设计模型之后,进一步通过领域模型和界面模型的提示词,可以生成具体的代码实现。虽然其中的代码并不确定或者需要进一步调整和完善,但是这已经代表了更多的可能性。

 从领域模型生成实体类 

 从界面模型生成代码 

      从上述AI大模型的应用中可以看到,根据合理的表达提示,AI大模型确实可以直接生成大部分我们需要的内容。在设计模型抽取中,其提取的数据模型,功能菜单和业务流程能达到70%的实际要求。在代码生成中,由于篇幅没有全部写出,其代码的实现也非常规范,虽然在实际的开发中还需要更多边界和权限的处理,也许还需要更多的提示才能生成。

      正如前面所述,由于编程语言的灵活性,同一个功能可以有无数种实现的方式,虽然AI大模型给出了一种实现方式,但是实现的正确性还需要我们自己进一步验证,许多个性化的需求还需重新处理。由于生成的都是片段代码,因此需要首先设计系统架构体系,让AI大模型在具体的架构框架下进行代码生成。所以说目前直接使用AI大模型是否能真正的减少工作量还有待确定。

      编程的粒度并不是严格定义的,而是一个代表。在这些粒度之间还可以存在更多的粒度模型,很多技术的创新就是在这些粒度上不断地进行完善的结果。面对AI大模型,我们也许需要重新设计组件和模型,寻找一个更合适的粒度。

关联文章

AI低代码开发宣言:一场新的软件工程革命

AI低代码开发宣言之核心:编程的粒度​

AI低代码开发宣言之过程:软件工程化

代码、无代码、低代码、AI提示代码、AI低代码

再厉害的程序员都有这三个痛点,然而它没有

最新文章
诗词已解“怀素身长五尺四祢生词赋抛江夏”代表什么动物最新热门
生肖字谜诗怀素才情深似海身长五尺四传扬。祢生词赋如蛇舞智慧灵性显光芒。抛却凡尘如江夏生肖之谜隐其中。五尺身躯藏玄机蛇影藏于热门词。诗解:此诗以怀素的才情开始暗指生肖中的蛇象征智慧与灵性。五尺身躯暗示龙的雄伟但结合整体语境更
揭秘花茶前十大品种排名!了解花茶的世界,让你不再茶饮白痴!
花茶,作为一种别具特色的茶类,蕴含着丰富的文化底蕴和独特的品味体验。它不同于传统的茶叶,将茶叶与花朵巧妙融合,赋予茶饮以花香的独特韵味,给人带来耳目一新的感受。这种独特的制作工艺和口感特点,引发了人们对其品种排名的好奇心理
seo伪原创违法吗(seo伪原创 有用吗)
大家好,今天小编关注到一个比较有意思的话题,就是关于seo伪原创违法吗的问题,于是小编就整理了3个相关介绍seo伪原创违法吗的解答,让我们一起看看吧。SEO靠采集站赚钱现在还行不行?百中搜优化靠谱吗?伪原创文章要怎么写?现在的话靠采
用Linux云服务器搭建网站,看这一篇就够了!
搭建网站,很多人会选择手动搭建,或者直接选购镜像,一键部署网站。如果需要将网站发布到网络并对用户提供访问服务,则还需进行注册域名、网站备案、域名解析。 如果有小伙伴对这类内容有兴趣,留言区举手&
高清屏幕设计_今日电脑高清屏幕设计教程
摘要:高清屏幕设计,今日电脑高清屏幕设计教程,新片场素材小编罗雯菲高清屏幕设计,今日电脑高清屏幕设计教程相关内容整理,如果您对高清屏幕设计,今日电脑高清屏幕设计教程感兴趣欢迎访问免费阅读。高清屏幕设计,今日电脑高清屏幕设计教程
蛙漫网页漫画在线登录页面免费漫画入口
姑姑:我是医生!我告诉你,这不是病,是报应的时辰到了,那些讨债鬼们,到了他们跟我算总账的时候了。每当夜深人静时,那只猫头鹰在树上哇哇叫的时候,他们就来了。他们浑身是血,哇哇号哭着,跟那些缺腿少爪的青蛙混在一起。他们的哭声与
统计学习导论 基于R应用 pdf epub mobi txt 电子书 下载 2024
  统计学习是一套以复杂数据建模和数据理解为目的的工具集,是近期才发展起来的统计学的一个新领域。本书出自统计学习领域声名显赫的几位专家,结合R语言介绍了分析大数据必不可少的工具,提供一些重要的建模和预测技术,并借助丰富的实
配置typora图片上传服务器
EasyTyporaEasyTypora是一个为Typora添加私用化图床的实用小工具,要使用本项目,你需要有自己的一台云服务器~本项目永久地址:通过这个项目你能得到什么?在2021年,配合Typora使用,即使不买图床,也能获得极致的Markdown写作体验。学会
相关文章
推荐文章
发表评论
0评