低代碼由來已久、怎么樣理解低代碼最合適?(低代碼是什么)
低代碼最近幾年真是站在了風(fēng)口處,只要是能減少代碼編寫的,都冠上了低代碼平臺(tái)、或者產(chǎn)品,搞的烏煙瘴氣,好像只有低代碼才能代表軟件開發(fā),其它開發(fā)方式都太Low,不值得一提,這是誤區(qū),得治。
低代碼由來已久
- 低代碼不是新物種,應(yīng)該說是一個(gè)新名稱而已,很大程度上是資本的叫法,好聽,能上檔次,其實(shí)本質(zhì)就是讓客戶或者使用者能利用或者使用平臺(tái)實(shí)現(xiàn)自己的業(yè)務(wù),而不是通過聯(lián)系軟件開發(fā)商或者二次開發(fā)來實(shí)現(xiàn),以前就叫"客戶自定義功能",如果是老碼農(nóng),尤其是7~8年以上的老碼農(nóng),差不多更熟悉這個(gè)名字。低代碼也沒什么,無非就是在最近幾年出現(xiàn)的前、后端及基礎(chǔ)平臺(tái)的新技術(shù)上更方便、規(guī)模更大、部署實(shí)施更方便落地。
- 從滿足需求上來說,一直沒有變化,不管是以前叫客戶自定義的時(shí)代,還是目前叫低代碼,都是為了滿足客戶更靈活多變的需求,在需求變動(dòng)的情況下,系統(tǒng)或者平臺(tái)能在極短的時(shí)間內(nèi)快速響應(yīng),盡可能的做到無開發(fā)人員參與,客戶自己在提供的平臺(tái)上經(jīng)過調(diào)整或者設(shè)計(jì)滿足自己的業(yè)務(wù)變化。
如何實(shí)現(xiàn)低代碼功能
低代碼實(shí)現(xiàn)方式從十幾年前到目前一直沒有改變過,改變的是具體的技術(shù),從javascript、vml、svg到目前的vue、react、canvas,但原理及實(shí)現(xiàn)架構(gòu)設(shè)計(jì)沒有多少改變,主要還是分為頁面驅(qū)動(dòng)、模型驅(qū)動(dòng)。
頁面驅(qū)動(dòng)
- 功能說明:頁面驅(qū)動(dòng)就是指使用者直接設(shè)計(jì)頁面、表單、規(guī)則,不考慮數(shù)據(jù)模型,用戶根據(jù)提供的UI控件實(shí)現(xiàn)布局、表單、頁面、單據(jù)設(shè)計(jì),頁面顯示就是把設(shè)計(jì)的時(shí)候還原呈現(xiàn),最后直接供最終使用者使用。
- 使用場景:目前市場上常見的表單設(shè)計(jì)器、流程設(shè)計(jì)器、規(guī)則設(shè)計(jì)器基本都屬于頁面驅(qū)動(dòng),這類設(shè)計(jì)基本不用考慮數(shù)據(jù)模型,用戶設(shè)計(jì)成什么樣就是什么樣,用戶上手非常快,也容易上手,所以目前展示類、快速原型、示意圖、To C類多以這類方式實(shí)現(xiàn),
- 功能實(shí)現(xiàn):頁面驅(qū)動(dòng)由于只考慮呈現(xiàn)效果,所以實(shí)現(xiàn)上也簡單,且主要對(duì)前端有要求,實(shí)現(xiàn)過程可以使用如下示意圖表示
{ "formConfig": { "label-width": "80px" }, "fields": [{ "isRender": true, "isShow": true, "isAnalysis": true, "children": [], "__layoutConfig__": { "style": "", "props": { "span": 24 }, "attrs": {}, "on": {}, "userDefineProps": {} }, "__formItemConfig__": { "props": { "label": "活動(dòng)名稱", "rules": [], "required": true }, "prop": "name" }, "__controlConfig__": { "props": {}, "attrs": {}, "userDefineProps": {} }, "tagName": "el-input", "__layout__": "colFormItem", "id": 1593757474090, "model": "name", "name": "單行文框", "tagIcon": "input", "controlPanel": "el-input", "uuid": "el-input-0", "sortNum": 0 }], "formApiValid": []}
模型驅(qū)動(dòng)
- 功能說明:模型驅(qū)動(dòng)是指先把要表示的對(duì)象模型及模型關(guān)系規(guī)劃并設(shè)計(jì)好,然后根據(jù)模型去設(shè)計(jì)頁面、表單、單據(jù)等等,頁面上能呈現(xiàn)的數(shù)據(jù)來源于提前設(shè)計(jì)好的數(shù)據(jù)模型,頁面顯示的時(shí)候跟頁面驅(qū)動(dòng)是一樣的,都是根據(jù)表單設(shè)計(jì)器設(shè)計(jì)去還原頁面,供使用者使用。
- 使用場景:目前這類開發(fā)方式主要用在系統(tǒng)性的平臺(tái)或者業(yè)務(wù)系統(tǒng)中,尤其是to B的系統(tǒng)、或者是在已有的系統(tǒng)上做擴(kuò)展功能需求,像OA、EHR、理賠、物流系統(tǒng)等等。
- 功能實(shí)現(xiàn):功能實(shí)現(xiàn)其實(shí)跟頁面驅(qū)動(dòng)類似,可以先設(shè)計(jì)頁面再跟模型映射,也可以根據(jù)模型映射頁面上的控件,這兩種方式都可以,最終形成的頁面的頁面設(shè)計(jì)結(jié)構(gòu)類似
{ "formConfig": { "label-width": "80px" }, "fields": [{ "isRender": true, "isShow": true, "isAnalysis": true, "children": [], "__layoutConfig__": { "props": { "span": 24 }, "attrs": {}, "on": {}, "userDefineProps": {} }, "__formItemConfig__": { "props": { "label": "學(xué)歷", "rules": [] }, "prop": "random50" }, "__controlConfig__": { "props": {}, "attrs": {}, "userDefineProps": { "optionType": "static", "optionCollection": [{ "label": "高中", "value": "1" }, { "label": "專科", "value": "2" }] } }, "tagName": "LElSelect", "__layout__": "colFormItem", "id": 1594263810269, "model": "random50", "name": "選擇框", "tagIcon": "select", "serviceName": "LElSelect", "controlPanel": "LElSelect", "uuid": "LElSelect-3", "document": "https://element.eleme.cn/#/zh-CN/component/select", "sortNum": 0 }], "formApiValid": []}
總結(jié)
低代碼實(shí)現(xiàn)方式主流程就是設(shè)計(jì)頁面、流程、業(yè)務(wù)需求規(guī)則等等,然后再還原,供最終使用者使用,真正落地使用到的技術(shù)都相差不大,基本的開發(fā)方式也就是文章中提到的頁面驅(qū)動(dòng)或者是模型驅(qū)動(dòng),但在具體開發(fā)過程中還是需要考慮很多問題的,比如:數(shù)據(jù)怎么保存、權(quán)限怎么設(shè)計(jì)、如何多業(yè)務(wù)系統(tǒng)相互融合、數(shù)據(jù)如何再利用、公有云&私有化如何部署等等問題,都是需要根據(jù)具體問題具體設(shè)計(jì)的解決方案的。
如果有低代碼這方面的問題,可以留言或者私信溝通。
喜歡的朋友記得給個(gè)關(guān)注~