從“圖形可視化”到“圖生代碼”,低代碼平臺的新挑戰

前言:

低代碼平臺最大的一個特點就是可視化,將代碼采用可視化的方式展示管理。一時間擁有圖形化界面的各類系統都掛上了低代碼的標簽。但更多的代碼從業者在使用中卻發現,在眾多的低代碼平臺中都是“別人家的代碼”其可視化主要是別人家的代碼圖形化做的好。而自身如果想實現圖形化還是得從圖形化入手再重新學習別人家的代碼。 這其實對于當前的低代碼提出了一個新的挑戰,圖形化究竟是灌輸給大家一種適合圖形化展示的代碼組合和撰寫方法,讓大家去學習以便于做出更好的支持圖形化展示的代碼軟件,還是從根本上構建一種圖形化的工具體系成為事實代碼標準,徹底分離設計與代碼從業者。Onion 圖生代碼系列博文,將從這個問題入手,從圖形表現以及代碼設計方面去探討,圖形(可視化)與代碼涉及的一些基礎關系,并視圖從“圖生代碼”這個角度去考慮怎么去規范“圖形可視化設計”以及如何邏輯成為嚴謹的設計代碼。

本文作為系列博文的開始,首先從現狀做一個簡要的分析。

一,常用視圖

(1)表單

在可視化系統最初的應用中,都是以表單來作為載體的。其早期的形式也形成了一些智能表單、電子表單等應用直到現在很多主流的低代碼系統仍然會保留這一基礎的表單載體作為,工作流程的載體。

常用視圖中,主要包括:

(1)輸入組件,組件配置屬性這期間會將展示、數據類型、校驗進行分類整理

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

(2)布局組件,表單的布局通常成為表格。以行列方式根據數據順序、重要性可操作性進行行列合并操作。

添加圖片注釋,不超過 140 字(可選)

(2)列表

列表是由“行”以及“格”來組成的,行是一個數據集合,格式是具體的一個數據表現。表單是一維數據的展現行則是集合數據的展現。而操作和展現上也更多的表現出了集合處理的特征。

添加圖片注釋,不超過 140 字(可選)

列表視圖其集成度也更高,在領域以及實體應用上包含了更多的屬性。

添加圖片注釋,不超過 140 字(可選)

集合屬性操作示意

添加圖片注釋,不超過 140 字(可選)

集合功能應用

添加圖片注釋,不超過 140 字(可選)

(3)圖表

在常用視圖中,圖表是一種特殊的存在。其往往會應用在獨立系統的后期,作為數據更高維度的載體。使得數據的所有者能夠對于系統、數據、過程、結果有更直觀的概念。這些使用中,對于關鍵性數據的篩選、組織以及在關鍵點上能夠增加關聯事件,實現數據的“溯源”。其重在數據展現形式以及數據內在關聯性設計。

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

(4)繪圖

在常用視圖中,有一個另類繪圖類應用,自定義“繪圖”這類應用在常用系統中應用比較少,但隨著移動設備以及物聯網設備帶來的大量的觸控類操作將自定義繪圖提高了一個應用的登記。在后續的章節中也會但多作為一個部分來講解。

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

二,動作邏輯

動作邏輯是讓頁面數據動起來連起來的關鍵部分,web應用中建立了很好的事件冒泡和處理機制。但其發展速度遠遠超過了應用的推進。在很大程度上與應用產生了割裂。這就需要再應用層有更好的貼近理論層設計來彌補裂痕。

(1)事件

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

(2)動作

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

三,代碼設計

(1)元數據擴展定義:

在低代碼平臺中元數據的使用也是非常廣泛,從前端可視化的組件的prop 屬性定義,后端OR Maping數據庫表映射,以及支撐系統模塊關聯關系,權限分配支撐等等都是基礎性的元數據。而對于低代碼平臺及工具而言,其最主要的一個功能也是配置管理低代碼組件的元數據信息。在業務組件發生需求變更時盡量通過修改元數配置的方式來改變組件的業務特性。

在模型(Module)類中中添加 @DBTable實現數據庫表映射,或者在實體類中增加Aggregation聚合注解實現實體向聚合類的轉換。

在控制器中(Controller)中添加Web路由注解@RequestMapping來完成Controller向web 容器的注入實現。

視圖(View)中增加可被可視化設計器識別的視圖注解代碼。

添加圖片注釋,不超過 140 字(可選)

(1)視圖注解

元數據轉換匹配關系

添加圖片注釋,不超過 140 字(可選)

元數據編輯器

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

(2)web訪問數據路由

添加圖片注釋,不超過 140 字(可選)

@Controller @RequestMapping("/admin/org/deparment/") @MethodChinaName(cname = "部門管理", imageClass = "bpmfont bpmgongzuoliuzuhuzicaidan") @Aggregation(sourceClass = IDeparmentService.class, rootClass = Org.class) public interface IDeparmentAPI { @RequestMapping(method = RequestMethod.POST, value = "Persons") @GridViewAnnotation() @ModuleAnnotation(caption = "人員列表") @APIEventAnnotation(bindMenu = {CustomMenuItem.treeNodeEditor}) @ResponseBody public <K extends IPersonGrid> ListResultModel<List<K>> getPersons(String orgId); }

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

(3)動作事件注解

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

添加圖片注釋,不超過 140 字(可選)

(4)常用注解

注解名稱

用途

實例

@RequestMapping

直接使用的SpringMvc注解用于將當前方法標識為,web可訪問

@RequestMapping(value = {"AggAPITree"}, method = {RequestMethod.GET, RequestMethod.POST})

@ModuleAnnotation

視圖標識,在方法上標識改注解后會被模型編譯器識別為視圖模型將其內部對象渲染為視圖。

@ModuleAnnotation(dynLoad = true, imageClass = "spafont spa-icon-moveforward", caption = "模塊授權")

@ResponseBody

直接使用的SpringMvc注解,標識為JSON數據返回

@ResponseBody

@DialogAnnotation

添加該標識時,當前端路由到當前方法時,以獨立窗口的方式返回

@DialogAnnotation(width = "850", height = "750")

@Aggregation

領域標識,在類注解中添加該標識,會被DSM引擎自動索引并根據注解中指定類型加載到相關的實體列表中

@Aggregation(type = AggregationType.customDomain,sourceClass = PersonService.class,rootClass = Person.class)

@*Domain

通用域標識

@OrgDomain@BpmDomain@VfsDomain@MsgDomain@NavDomain

@*TreeView

樹形注解包括了,導航樹、彈出字典樹,折疊分組樹等注解集合

@TreeViewAnnotation@NavTreeViewAnnotation@NavFoldingTreeViewAnnotation@PopTreeViewAnnotation

@GridViewAnnotation

數據列表注解

@GalleryView*Annotation

詳情圖形混合注解

@GalleryViewAnnotation@NavGalleryViewAnnotation

@*TabsViewAnnotation

Tab切換頁

@TabsViewAnnotation@NavTabsViewAnnotation@NavFoldingTabsViewAnnotation

@PopMenuViewAnnotation

菜單導航

@PopMenuViewAnnotation

@NavGroupViewAnnotation

分組表單

@NavGroupViewAnnotation

@FormViewAnnotation

表單注解

@FormViewAnnotation

@*ButtonViewsViewAnnotation

按鈕欄視圖

@ButtonViewsAnnotation@NavButtonViewsAnnotation

常用視圖注解

注解名稱

視圖類型

示例

@FormAnnotation

表單視圖

@FormAnnotation(customMenu = {CustomFormMenu.Save, CustomFormMenu.Close}, customService = ColService.class)

@GridAnnotation

列表視圖

@GridAnnotation(rowHeight = "4em", customMenu = {GridMenu.Reload, GridMenu.Add, GridMenu.Delete}, customService = {LocalFormulaService.class}, event = CustomGridEvent.editor)

@TreeAnnotation

樹形視圖

@TreeAnnotation(heplBar = true, caption = "選擇人員", selMode =SelModeType.singlecheckbox)

@NavTreeAnnotation

樹形導航視圖

@NavTreeAnnotation(bottombarMenu = {CustomFormMenu.Save, CustomFormMenu.Close}, customService = AggWebSiteSelectService.class)

@GalleryAnnotation

圖文列表視圖

@GalleryAnnotation(customMenu = {GridMenu.Reload, GridMenu.Add, GridMenu.Delete})

@TabsAnnotation

Tab頁視圖

@TabsAnnotation(singleOpen = true)

@ButtonViewsAnnotation

按鈕組導航

@ButtonViewsAnnotation(barLocation = BarLocationType.left, barVAlign = VAlignType.top, autoReload = false)

@NavGroupAnnotation

分組容器視圖

@NavGroupAnnotation(bottombarMenu = {CustomFormMenu.Save, CustomFormMenu.Close})

@NavGalleryAnnotation

卡片導航

@NavGalleryAnnotation

@NavFoldingAnnotation

折疊頁導航

@NavFoldingAnnotation(bottombarMenu = CustomFormMenu.Close)

@NavMenuBarAnnotation

菜單頁導航

@NavMenuBarAnnotation

常用注解列表實例

注解名稱

用途

示例

GridAnnotation

列表視圖配置

@GridAnnotation(rowHeight = "4em", customService = {LocalFormulaService.class}, event = CustomGridEvent.editor)

PageBar

分頁欄

@PageBar(pageCount = 100)

ToolBarMenu

工具欄

@ToolBarMenu

MenuBarMenu

菜單欄

@MenuBarMenu

BottomBarMenu

底部工具欄

@BottomBarMenu

常用注解列表行子域示例

注解名稱

用途

實例

@GridRowCmd

表格行按鈕

@GridRowCmd(tagCmdsAlign = TagCmdsAlign.left, menuClass = {DBColAction.class})

@RowHead

行頭配置

@RowHead(selMode = SelModeType.none, gridHandlerCaption = "刪除|排序", rowHandlerWidth = "10em", rowNumbered = false)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14628.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何解決vcruntime140.dll丟失問題,詳細介紹5種靠譜的解決方法

vcruntime140.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;它為使用Visual C編譯器開發的應用程序提供必要的運行時環境。該DLL文件包含了大量應用程序運行時需要調用的庫函數&#xff0c;這些函數是實現C標準庫、異常處理機制、RTTI&#xff08;運行…

圖搜索算法教程(個人總結版)

圖搜索算法是一類用于遍歷或搜索圖結構的算法&#xff0c;廣泛應用于網絡分析、路徑規劃、人工智能等領域。常見的圖搜索算法包括深度優先搜索&#xff08;DFS&#xff09;、廣度優先搜索&#xff08;BFS&#xff09;、Dijkstra算法、A*算法等。本文將詳細介紹這些圖搜索算法的…

創建JSON數據包

在C語言中&#xff0c;JSON不是一種內置的數據類型&#xff0c;因此你需要使用第三方庫來創建和解析JSON數據。一個流行的庫是cJSON&#xff0c;它允許你以C語言的方式操作JSON數據。 以下是一個使用cJSON庫創建類似于你給出的JSON數據包的示例&#xff1a; 首先&#xff0c;…

go-zero 實戰(5)

引入Prometheus 用 Prometheus 監控應用 1. 用 docker 啟動 Prometheus 編輯配置位置&#xff0c;我將 prometheus.yaml 和 targets.json 文件放在了 /opt/prometheus/conf目錄下 prometheus.yaml global:scrape_interval: 15s # 抓取間隔evaluation_interval: 15s # 評估…

【代碼隨想錄 二叉樹】二叉樹前序、中序、后序遍歷的迭代遍歷

文章目錄 1. 二叉樹前序遍歷&#xff08;迭代法&#xff09;2. 二叉樹后序遍歷&#xff08;迭代法&#xff09;3. 二叉樹中序遍歷&#xff08;迭代法&#xff09; 1. 二叉樹前序遍歷&#xff08;迭代法&#xff09; 題目連接 &#x1f34e;因為處理順序和訪問順序是一致的。所…

前端工程化-babel、corejs、postcss

出處&#xff1a;前端工程化-babel、corejs、postcss | 劉維_個人博客_編程秘籍_開發技巧_入門到精通_生活感悟 (ldlw.site) 一. babel和corejs的作用到底是什么 腦子里面的想法 es6 -> es5 es6里面其實有兩種東西 語法 新特性 轉的語法 const a 1 const b &#xf…

Shader GLSL 3D旋轉函數

mat4 rotationMatrix(vec3 axis, float angle) {axis = normalize(axis);float s = sin(angle);float c = cos(angle)

類和對象的基本概念

類和對象的基本概念 C和C中struct區別類的封裝封裝訪問權限總結struct和class的區別 將成員變量設置為private C和C中struct區別 C語言struct只有變量C語言struct 既有變量&#xff0c;也有函數 類的封裝 封裝 把變量&#xff08;屬性&#xff09;和函數&#xff08;操作&a…

交換機部分綜合實驗

實驗要求 1.內網IP地址使用172.16.0.0/16 2.sw1和sW2之間互為備份; 3.VRRP/mstp/vlan/eth-trunk均使用; 4.所有pc均通過DHcP獲取Ip地址; 5.ISP只配置IP地址; 6.所有電腦可以正常訪問IsP路由器環回 實驗拓撲 實驗思路 1.給交換機創建vlan&#xff0c;并將接口劃入vlan 2.在SW1和…

Unity Render Streaming 云渲染 外網訪問

初版&#xff1a; 日期&#xff1a;2024.5.20 前言&#xff1a;臨時思路整理&#xff0c;后期會詳細補充 環境&#xff1a; 1. 阿里云服務器 需要安裝好nodejs 、npm 2. windows電腦&#xff0c;需安裝好 nodejs 、npm 3.Unity 2021.3.15f1 4.Unity Render Streaming …

31.GDB介紹及簡單使用

文章目錄 基本用法查看匯編代碼Text User Interface(TUI)refernece 歡迎訪問個人網絡日志&#x1f339;&#x1f339;知行空間&#x1f339;&#x1f339; GDB 是 GNU Debugger的縮寫&#xff0c;是GNU軟件系統中的標準調試器&#xff0c; 很多類UNIX系統都可以使用GDB&#xf…

【論文解讀】Overview of the Scalable Video Coding Extension of the H.264/AVC Standard

介紹 該篇論文是一篇關于H.264/AVC標準可擴展視頻編碼(SVC)擴展的綜述論文,由Heiko Schwarz、Detlev Marpe和Thomas Wiegand撰寫,發表在《IEEE Transactions on Circuits and Systems for Video Technology》2007年9月第17卷第9期上。 論文解讀 摘要: H.264/AVC視頻編…

鄉村振興的農業供給側結構性改革:優化農業產業結構,提升農產品質量,滿足市場需求,實現美麗鄉村產業振興

一、引言 鄉村振興戰略是我國當前及未來一段時間內的重大戰略部署&#xff0c;旨在推動農業農村現代化&#xff0c;實現城鄉融合發展。在鄉村振興戰略中&#xff0c;農業供給側結構性改革是核心任務之一。通過優化農業產業結構、提升農產品質量、滿足市場需求&#xff0c;不僅…

韓國云主機遠程故障怎么排查?

韓國云主機遠程故障可能是由于多種原因引起的&#xff0c;包括網絡問題、服務器故障、安全設置、客戶端問題等。下面是針對韓國云主機遠程故障的排查步驟和解決方法&#xff1a; 檢查網絡連接 1.使用 ping 命令 在本地計算機上使用 ping 命令檢查與云主機之間的網絡連接。如果無…

AI巨頭爭相與Reddit合作:為何一個古老的論壇成為AI訓練的“寶藏”?

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

debian nginx upsync consul 實現動態負載

1. consul 安裝 wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg echo "deb [signed-by/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_r…

MariaDB 給指定列值自動加密(持久數據加觸發器)

文章目錄 代碼插入時&#xff0c;自動加密更新時&#xff0c;自動加密查看觸發器數據操作示例update數據取出解密取 注意一次嘗試&#xff0c;看加密后數據長度 參考鏈接&#xff1a; 一篇非常好的講解觸發器的文章&#xff1a;示例、原理MySQL/MariaDB觸發器。 用觸發器自動加…

前端工程化07-常見的包管理工具npm、yarn、cnpm、npx、pnpm

8、包管理工具 8.1、包管理工具概述 npm包管理工具、在安裝node的時候這個東西就已經安裝過了&#xff0c;通過npm去管理包的時候這個時候回有一個配置文件叫做package.json,他是以json的方式來書寫對應的一個配置文件&#xff0c;這個配置文件是可以添加特別多的一些字段的&…

input輸入多行文本,保存為.dot文件和對應的.txt文件

需求 不管是上面的dot還是這個dot 變成 input輸入文本按“# ? ?”結束保存在dot文本文件夾下&#xff0c;用txt保存每個文件文件名&#xff1a; 編號. 第二行有字文字 時間戳 代碼 首先&#xff0c;我會創建一個Python腳本&#xff0c;它將接受用戶的輸入&#xff0c;直到…

案例題(第二版)

案例題目 信息系統架構設計 基本概念 信息系統架構&#xff08;ISA&#xff09;是對某一特定內容里的信息進行統籌、規劃、設計、安排等一系列的有機處理的活動。特點如下 架構是對系統的抽象&#xff0c;它通過描述元素、元素的外部可見屬性及元素之間的關系來反映這種抽象…