编程语言应用

注册

 

发新话题 回复该主题

从NASL说开低代码编程语言能饭否 [复制链接]

1#
北京白癜风医院 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/

风口之上,国内的低代码、无代码方案数不胜数。如下图所示,对于网易数帆推出的轻舟低代码平台,NASL是其中的关键,也是最大的差异化。NASL全称是NetEase(Normal)ApplicationSpecificLanguage,是轻舟低代码平台提供给用户的应用建模语言。对于NASL,网易数帆内部有过争论,有人强调NASL是一种DSL,有人则强调是一门编程语言,深入探讨后团队发现这两种说法都有道理,认知差异主要来自于看待问题的不同视角。

从模型驱动说起

正确理解模型驱动

模型驱动思想(MDSD/MDA)通常被认为是低代码核心思想。简单理解模型驱动,就是开发者参照一个抽象模型,将应用需求通过建模方式来实现的过程。但国内由于“表单驱动”和“模型驱动”概念流行,以至于很多同学把模型驱动中“模型”简单理解成“数据模型”,这其实是不准确的。要准确理解模型驱动,需要了解MDSD(模型驱动软件开发)和对象管理组织(OMG)在年提出MDA(模型驱动架构)。MDA使得开发人员可以使用UML(UnifiedModelingLanguage)可视化设计PIM(PlatformIndependentModel),然后由工具自动执行针对特定平台和实现语言的映射规则,将PIM转换为对应的PSM(PlatformSpecificModel),并最终生成可执行的应用程序代码。MDA可以认为是MDSD思想的一种实现标准,它规范了很多术语、对工具集有清晰的定义。MDSD则更偏向思想或方法论,旨在通过抽象来提高复杂任务的易处理性,进而提升开发效率和质量(跟低代码目标是不是很像)。MDA由于其整个标准体系复杂性和仅有部分平台实现、同时没有提供面向互联网应用特定问题域的好的解决方案(比如高并发、UI编程等问题),因此在互联网技术浪潮中存在感并不强。但是MDSD思想却对广大开发者有着深刻的影响,互联网领域众多流行的编程框架本质上都体现了MDSD思想,低代码可以被认为是其中的一种实践。

模型与框架的关系

简单来说,模型是一种抽象,框架是它的一种具体实现。也可以说框架为应用开发者提供了一种可落地的模型(如下图)。说到框架,大家首先想到肯定是是react,springboot这种被广泛使用的前后端框架,低代码框架本质上跟他们类似,差别在于,低代码框架通常支持从前后端到数据库的全栈模型实现,而且封装程度更高。

–说"抽象"是站在应用场景的视角,说"封装"站在通用编程语言的视角。

模型抽象时,我们通常需要通过分层、分解、切面等思维拆解复杂度;框架实现时,通常要用扩展(extends)、实现(implements)、hook、表达式填充等技术体现开放性。

低代码框架核心就是要抽象一种编程模型:它既要能简单及高效的支撑用户编程意图的表达,又要能具备足够的通用性灵活性(但又不用做到MDA的程度)。要达到这样的目标,需要具备以下一些条件:

首先,需要在应用软件开发领域具备非常丰富的知识和经验。具体点来说要对各种通用编程语言、框架和各种编程模式优缺点有清晰的认知,对传统研发模式影响效率和质量的因素有清晰的认识,只有如此才能给出有价值的设计。这也是很多低代码平台宣传“bydeveloperfordeveloper”的原因。

–如果考虑的是如何打造完整平台,还需要对现代软件工程需要的配套设施,包括是云原生技术体系有清晰完整的认知。

其次,要对低代码框架的使用者有清晰界定和认知,框架设计要尽可能贴近这个人群的认知模型,同时要把复杂度控制在这个人群普遍能接受的程度。

–模型可以针对不同人群体现不同的可变性,比如mendix通过MendixStudio和MendixStudioPro为专业开发者和非专业开发者提供低、无代码两种开发模式。可变性差量的设计在这篇文章

分享 转发
TOP
发新话题 回复该主题