日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

作者 | 偏左
來(lái)源 | 阿里技術(shù)公眾號(hào)

一 中后臺(tái)前端研發(fā)復(fù)雜度背景

做中后臺(tái)前端開(kāi)發(fā),會(huì)經(jīng)常碰到復(fù)雜交互和復(fù)雜邏輯問(wèn)題:

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

你負(fù)責(zé)的業(yè)務(wù)中,規(guī)則是不是很多?是不是會(huì)不自覺(jué)的試圖用if…else解決一切問(wèn)題,邏輯是不是在迭代過(guò)程中變得越來(lái)越亂?最后徹底變成一個(gè)看不懂改不動(dòng)的黑盒子,沒(méi)有人能搞清楚黑盒子里面到底發(fā)生了什么。

現(xiàn)實(shí)中,業(yè)務(wù)場(chǎng)景多,迭代頻繁,變化快到跟不上,規(guī)則可能由多人掌握,無(wú)法通過(guò)一個(gè)人了解全貌;

還有業(yè)務(wù)所在行業(yè)固有的復(fù)雜度和歷史包袱,這些問(wèn)題都會(huì)讓我們感到痛苦。

除了邏輯問(wèn)題,我們還關(guān)注易用性交互開(kāi)發(fā)的問(wèn)題。

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

試想,在中后臺(tái)系統(tǒng)中,沒(méi)有說(shuō)明、沒(méi)有指引,那該有多難用?所以通過(guò)內(nèi)容運(yùn)營(yíng),增加指引提升易用性是十分必要的,但對(duì)于前端開(kāi)發(fā)來(lái)說(shuō),又像是下了一道魔咒。為什么這么說(shuō)呢?

易用性交互的形式很多,不但會(huì)放大整體功能開(kāi)發(fā)難度,而且很容易干擾到業(yè)務(wù)功能,讓本來(lái)已經(jīng)很復(fù)雜的開(kāi)發(fā)工作更加復(fù)雜,加速了整體腐化。

本身排期就已經(jīng)低于功能需求了,再加上這些問(wèn)題,導(dǎo)致大家都不愛(ài)去做,長(zhǎng)此下去,平臺(tái)越來(lái)越難用。

那么問(wèn)題逐漸顯現(xiàn),如何面對(duì)中后臺(tái)復(fù)雜場(chǎng)景中最深刻的兩個(gè)問(wèn)題:即復(fù)雜交互、復(fù)雜邏輯。

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

二 復(fù)雜交互解法

1 思路

首先是使用動(dòng)態(tài)標(biāo)注生成交互界面,來(lái)解決復(fù)雜交互問(wèn)題:

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

這是一個(gè)典型的后臺(tái)功能配置頁(yè):這里面有列表有詳情,加入了很多指引。這里相當(dāng)一部分交互的繁瑣編碼工作,其實(shí)是以一種簡(jiǎn)潔高效的低代碼方式去解決的。

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

首先我們需要把頁(yè)面劃分為業(yè)務(wù)功能交互以及輔助內(nèi)容交互,所謂業(yè)務(wù)功能交互,即脫離了這部分交互業(yè)務(wù)就不再完整了,而輔助內(nèi)容交互則是沒(méi)有這部分交互系統(tǒng)也能用,但是可能會(huì)很難用。

那么我們方案的核心目標(biāo)就是:將業(yè)務(wù)功能交互,還是由前端通過(guò)procode開(kāi)發(fā)完成,而這些輔助內(nèi)容交互,就可以由低代碼配置去完成了。

想法比較直接,那么真實(shí)的效果如何呢?

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

這是一個(gè)比較復(fù)雜的配置頁(yè),使用了大量引導(dǎo)類交互,有點(diǎn)擊出現(xiàn)彈窗、查看文檔、還有各種加下劃線氣泡、stepbystep引導(dǎo)、還有更過(guò)分的要加復(fù)雜流程圖、這是SVG做的,圖里面還要帶有氣泡按鈕解釋的,等等,像這種交互在系統(tǒng)中有近400個(gè),如果把這些寫(xiě)在代碼里面,是一個(gè)非常大的負(fù)擔(dān),而這些,我們都是通過(guò)低代碼配置化去解決的。

2 實(shí)踐

接下來(lái)是實(shí)戰(zhàn)部分:

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

第一步,我們要找到輔助類的交互,哪些是必須要procode的業(yè)務(wù)關(guān)鍵能力,哪些是非必須的。在我們的實(shí)踐經(jīng)驗(yàn)中,像這些輔助類交互都是可以抽象成組件復(fù)用的。

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

第二步,我們將這些組件,通過(guò)動(dòng)態(tài)標(biāo)注的方式,渲染到界面上。

關(guān)鍵流程可以描述為,首先捕捉用戶的行為,如元素點(diǎn)擊、移入移出,或是節(jié)點(diǎn)生成、銷毀、或是URL改變了等等。

當(dāng)匹配這些行為時(shí),找到組件插入或更新的位置,然后渲染出來(lái),這個(gè)時(shí)候組件會(huì)按預(yù)設(shè)的規(guī)則動(dòng)態(tài)的標(biāo)注到頁(yè)面指定位置上。

比如,當(dāng)用戶進(jìn)入某個(gè)頁(yè)面時(shí)(行為是URL改變),我們給指定區(qū)域(可能是一個(gè)選擇器指定的),插入一張流程圖。

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

第三步,這些組件可能互相之間是有交互的,比如點(diǎn)擊問(wèn)號(hào)按鈕的時(shí)候出現(xiàn)彈窗,點(diǎn)擊好用不好用的時(shí)候要感謝反饋等等,這個(gè)我們是通過(guò)一種自定義協(xié)議的url來(lái)完成的,這里給出了一些例子來(lái)展示下我們正在使用的動(dòng)作,如:

向機(jī)器人提問(wèn)、提交工單、顯示消息、打開(kāi)彈窗、復(fù)制內(nèi)容等等

通過(guò)給組件配置url來(lái)完成不同的動(dòng)作

這樣就完成整個(gè)易用性交互的標(biāo)注和動(dòng)作過(guò)程。

3 相關(guān)問(wèn)題

那么問(wèn)題來(lái)了,現(xiàn)在都是一些動(dòng)態(tài)渲染技術(shù),狀態(tài)變了那么頁(yè)面結(jié)構(gòu)可能也變了呀,那組件也丟失了。沒(méi)有關(guān)系,當(dāng)DOM變化的時(shí)候,我們?nèi)匀皇窃诒O(jiān)聽(tīng)的,只要檢測(cè)到DOM樹(shù)變化或關(guān)鍵屬性變化,我們就重新執(zhí)行一次渲染。

第二個(gè)問(wèn)題是,這些規(guī)則都太專業(yè)了,CSS選擇器、XPath,這些對(duì)于非技術(shù)同學(xué)來(lái)說(shuō)使用成本非常高,而且可能因?yàn)橐粋€(gè)很小的頁(yè)面改動(dòng)就會(huì)導(dǎo)致配置失效。

這類問(wèn)題我們的實(shí)踐方案是,可以通過(guò)視覺(jué)特征的相似度去做模糊匹配,使用者只要去勾選出相應(yīng)的特征和偏差范圍,就可以自動(dòng)生成腳本去做匹配,這里我們是通過(guò)擴(kuò)展了XQuery形成了自己的模糊查詢方式。

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

4 復(fù)雜交互動(dòng)作

標(biāo)注的問(wèn)題解決了,但是復(fù)雜的交互動(dòng)作怎么做呢?這里有個(gè)例子說(shuō)明一下:

試想一個(gè)場(chǎng)景,一個(gè)系統(tǒng),對(duì)于新用戶、老用戶,需要有不同的引導(dǎo)方式

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

新用戶場(chǎng)景下,首先提示用戶,歡迎使用新手引導(dǎo),2秒后,展示新手引導(dǎo)彈窗;

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

而老用戶場(chǎng)景下,僅提示用戶,歡迎查看常見(jiàn)問(wèn)題,當(dāng)點(diǎn)擊常見(jiàn)問(wèn)題時(shí),向機(jī)器人發(fā)問(wèn)獲取知識(shí);

在每個(gè)環(huán)節(jié)中,我們都是通過(guò)url來(lái)產(chǎn)生動(dòng)作,但是怎么串起來(lái)呢?

在我們的定義中,url可以被串聯(lián)順序執(zhí)行,也可以加上@if,條件執(zhí)行,還可以加上@delay延時(shí)執(zhí)行,這樣就可以將所有一系列的url組織成一個(gè)url,并在兩種場(chǎng)景去分別觸發(fā)。

面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路(低代碼應(yīng)用場(chǎng)景)

三 復(fù)雜邏輯解法

接下來(lái)要面對(duì)更難的一個(gè)問(wèn)題,復(fù)雜邏輯,通過(guò)策略編排生成邏輯代碼。

方案的核心目標(biāo),是將所有的交互邏輯從ProCode開(kāi)發(fā),轉(zhuǎn)為低/無(wú)代碼配置,但這個(gè)核心目標(biāo)的前提并不是要用低代碼來(lái)替代procode,而是因?yàn)閜rocode寫(xiě)復(fù)雜邏輯很難,所以要使用簡(jiǎn)單的低代碼實(shí)現(xiàn)。

點(diǎn)擊鏈接查看原文面向中后臺(tái)復(fù)雜場(chǎng)景的低代碼實(shí)踐思路,關(guān)注公眾號(hào)【阿里技術(shù)】獲取更多福利!

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁(yè)
返回頂部
旺苍县| 普安县| 通山县| 通河县| 乳源| 福泉市| 托克逊县| 天津市| 城步| 黔江区| 广德县| 遵义县| 崇明县| 伊川县| 万山特区| 四平市| 泰安市| 安龙县| 安仁县| 土默特右旗| 铁力市| 湘潭县| 康定县| 敦煌市| 昭苏县| 宁安市| 麦盖提县| 定南县| 沂源县| 南漳县| 涪陵区| 楚雄市| 祥云县| 双柏县| 漳州市| 常熟市| 清徐县| 屏边| 富平县| 乐陵市| 永吉县|