背景
在 B 端領(lǐng)域深耕多年,接觸了成百上千的 B 端頁面,發(fā)現(xiàn)對于 B 端產(chǎn)品需求和 C 端有著明顯的差異,B端產(chǎn)品一般是基于現(xiàn)有的“業(yè)務(wù)”形態(tài),將傳統(tǒng)線下工作,通過程序化、系統(tǒng)化、信息化轉(zhuǎn)換為線上產(chǎn)品,從而提升企業(yè)協(xié)同效率,降低辦公成本。需求一般來源于產(chǎn)品戰(zhàn)略定位、使用者個(gè)性需求等。
其中 B 端各種各樣的功能,其實(shí)就是很多 CURD 頁面的堆砌,對于 B 端這些頁面其實(shí)調(diào)性是差不多的,使用低頻,頁面重復(fù)度高,表格表單為主,功能性多且雜。
每個(gè)公司都會(huì)結(jié)合自己實(shí)際的業(yè)務(wù)抽象出一套搭建系統(tǒng)來解決 B 端場景的 CRUD 重復(fù)頁面的方案,核心就在于標(biāo)準(zhǔn)和規(guī)則的制定,對于 B 端搭建早就不是什么新鮮玩意,B 端搭建平臺(tái)的難點(diǎn)本身不在于有多少技術(shù)壁壘,更多的是在于從產(chǎn)品到研發(fā)再到測試整個(gè)流程的標(biāo)準(zhǔn)化,以及和業(yè)務(wù)的緊緊貼合,只有這樣才能發(fā)揮搭建平臺(tái)的價(jià)值。
二
標(biāo)準(zhǔn)
為什么說核心是標(biāo)準(zhǔn),引用一個(gè)之前看到的通俗易懂的例子,我們小時(shí)候逢年過節(jié)穿的衣服,都是去裁縫店選一下材料、量一下尺寸,等個(gè)半個(gè)來月,討回來就可以穿了,衣服合身又喜歡。鏡頭切回今天,我們只需要在天貓、淘寶上看看圖片、選擇合適的尺寸就可以下單了,第二天就可以穿上,偶爾一絲不合身,偶爾大街上撞衫,但我們并不在意,因?yàn)槲覀兿硎艿搅烁嗟谋憷c高效,受益于這個(gè)產(chǎn)業(yè)制定了很多的標(biāo)準(zhǔn)化模型,比如身材模型:S、M、L、XL、XXL,我們不再需要每次都去量身高尺寸,現(xiàn)在標(biāo)準(zhǔn)化生產(chǎn)出來的衣服可以滿足超過 90% 的需求,除明星或特殊場景之外也不會(huì)費(fèi)心思去量身定制。
服裝、飲食、汽車乃至各行各業(yè)發(fā)展至今都已經(jīng)形成非常成熟、高效的產(chǎn)業(yè)鏈,軟件研發(fā)行業(yè)同樣如此,業(yè)務(wù)需求在增長且變化快,越是技術(shù)密集型的工種越容易帶來人力不足的瓶頸,這就越需要更多的標(biāo)準(zhǔn)和模型的制定,標(biāo)準(zhǔn)越趨于統(tǒng)一,就越高效,有時(shí)候 “放棄創(chuàng)造力才是最大的創(chuàng)造力”,可以預(yù)見,未來絕大多數(shù)場景將使用標(biāo)準(zhǔn)化模板通過無定制或低定制來完成業(yè)務(wù)需求。
三
定位
B 端搭建平臺(tái),設(shè)計(jì)方案上主要首先要想明白這幾個(gè)問題:
pro-code,low-code,還是 no-code?
用戶群體是誰?產(chǎn)品?運(yùn)營?開發(fā)?
什么樣的頁面適合用B端搭建平臺(tái)?需要制定什么樣的標(biāo)準(zhǔn)?
我們的業(yè)務(wù)特點(diǎn)是什么?怎么樣的搭建方案最貼切我們的業(yè)務(wù)?
針對目前B 端的業(yè)務(wù),更加傾向于少量代碼編寫的 low-code,主要綜合以下幾點(diǎn)考慮:
成本和效率因素:使用 low-code 可以實(shí)現(xiàn)快速搭建應(yīng)用程序的目標(biāo),而無需具備高深的編程技能。low-code 搭建平臺(tái)提供了豐富的預(yù)定義組件和集成工具,可以減少開發(fā)時(shí)間和成本,提高開發(fā)效率。
簡化開發(fā)過程:采用 low-code 搭建平臺(tái),用戶只需要通過簡單的拖放操作和配置即可實(shí)現(xiàn)應(yīng)用程序的設(shè)計(jì)和開發(fā)。low-code 搭建平臺(tái)提供了一個(gè)可視化的開發(fā)環(huán)境,使得開發(fā)者可以更加專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。
提供更高的可定制性:使用 low-code 搭建平臺(tái),用戶可以根據(jù)自己的需求,快速構(gòu)建自定義的組件和應(yīng)用程序,而無需編寫大量的代碼。用戶可以選擇在模板中制作自己喜歡的界面和布局,并自定義相關(guān)的數(shù)據(jù)驅(qū)動(dòng)器和互動(dòng)部件。
降低維護(hù)負(fù)擔(dān):使用 low-code 搭建平臺(tái)開發(fā)的應(yīng)用程序通常會(huì)降低維護(hù)和更新的負(fù)擔(dān)。平臺(tái)通常支持升級和維護(hù)的自動(dòng)化機(jī)制,同時(shí)在應(yīng)用程序中,許多功能也由后臺(tái)機(jī)制自動(dòng)化完成,簡化了開發(fā)者的工作。
因?yàn)橛幸欢ǖ木帉懘a成本,所以使用用戶群體就是開發(fā),對于比較偏配置的頁面,適合用B端搭建平臺(tái)。
四
詳細(xì)設(shè)計(jì)
弄清楚了定位,結(jié)合目前后臺(tái)當(dāng)前業(yè)務(wù)域的業(yè)務(wù)特點(diǎn),主打配置+規(guī)則的搭建平臺(tái)樂高應(yīng)運(yùn)而生,下面是樂高平臺(tái)的主要設(shè)計(jì)和結(jié)構(gòu),主要為了解決規(guī)則配置類的 CURD 頁面。
業(yè)務(wù)流程
完整流程
整體架構(gòu)
分層設(shè)計(jì)
整體采用前后端分離的架構(gòu)設(shè)計(jì),分為視圖層、模板層、引擎層。
視圖層?
視圖層具備完善的開發(fā)和生產(chǎn)流程:基于國際JSON Schema標(biāo)準(zhǔn),開發(fā)出獨(dú)立的組件 -> 組件經(jīng)過不同形式的排列組合,形成最終的產(chǎn)品界面。
頁面抽象定義如下:
視圖層如下圖所示,主要分為三個(gè)部分:
組件池:組件池是頁面的骨架部分,由內(nèi)置和自定義的各個(gè)組件組裝而成。可以通過拖動(dòng)組件進(jìn)行排列組合,即時(shí)的在預(yù)覽區(qū)域展示出效果。
畫布:畫布占據(jù)了頁面的中間部分。畫布由各個(gè)組件拼接而成。可以通過預(yù)覽能看到完整的頁面,也可以通過查看按鈕預(yù)覽生成的JSON Schema腳本。
屬性模塊:每個(gè)組件,都有可配置的屬性,選中組件可以對其屬性進(jìn)行配置。如,配置按鈕組件的名稱、字段名、是否必填等,都取決于組件開發(fā)者對該組件的預(yù)留項(xiàng)。
模板層
統(tǒng)一收斂所有功能入口,對底層數(shù)據(jù)存儲(chǔ)和接口協(xié)議進(jìn)行升級,提供統(tǒng)一的接口協(xié)議、鑒權(quán)、審批、灰度、回滾等功能。
模板層主要包含三個(gè)部分:
Json Schema管理:提供通用的schema接口協(xié)議,包含schema數(shù)據(jù)管理,各組件數(shù)據(jù)源統(tǒng)一查詢接口,一鍵還原schema數(shù)據(jù)等功能。
模板數(shù)據(jù)管理:包含模板數(shù)據(jù)落地,模板數(shù)據(jù)校驗(yàn)、解析、搜索,以及模板數(shù)據(jù)與schema腳本的映射關(guān)系。
規(guī)則引擎適配:對模板數(shù)據(jù)進(jìn)行分組,解析schema腳本和模板數(shù)據(jù)得到規(guī)則因子,根據(jù)配置的規(guī)則 + 因子項(xiàng)組裝規(guī)則表達(dá)式,將實(shí)際業(yè)務(wù)邏輯翻譯成規(guī)則引擎能夠識(shí)別的表達(dá)式。
引擎層
規(guī)則引擎實(shí)現(xiàn)了將業(yè)務(wù)決策從應(yīng)用程序代碼中分離出來,并使用預(yù)定義的語義模塊編寫業(yè)務(wù)決策。通過入?yún)⒑鸵?guī)則表達(dá)式計(jì)算結(jié)果。
規(guī)則引擎主要包含四個(gè)部分:
規(guī)則組:對同類規(guī)則進(jìn)行分組,規(guī)則組內(nèi)的規(guī)則可以互斥,也可以存在優(yōu)先級。
規(guī)則因子:對應(yīng)規(guī)則表達(dá)式中的已知條件。
規(guī)則:因子 + 表達(dá)式組成,代表一條判定邏輯。
結(jié)果:規(guī)則引擎輸出的場景處理方案。
規(guī)則引擎執(zhí)行流程:
邏輯編排
以某個(gè)案例作為一個(gè)通用的業(yè)務(wù)場景,看看如何落地到業(yè)務(wù)當(dāng)中,業(yè)務(wù)流程大致如下:
關(guān)鍵用例:
然后 B 端頁面進(jìn)行邏輯編排,最后通過規(guī)則引擎計(jì)算出結(jié)果,規(guī)則因子和結(jié)果會(huì)根據(jù)業(yè)務(wù)提前定義好。
C 端進(jìn)行消費(fèi)
存儲(chǔ)設(shè)計(jì)
五
思考
低代碼平臺(tái)一直被業(yè)界調(diào)侃為“行業(yè)毒瘤”,相反,它是一種非常有前途的技術(shù)趨勢。低代碼搭建平臺(tái)可以幫助企業(yè)降低開發(fā)成本、縮短開發(fā)周期、增加靈活性,降本增效。
但是,有人認(rèn)為低代碼平臺(tái)有著一些潛在的問題,這也是“低代碼平臺(tái)是行業(yè)毒瘤”這一說法背后的原因:
可定制性差:低代碼平臺(tái)提供的模塊化組件和界面模板可定制性有限,有可能不能滿足某些用戶的特殊需求,這使得它在某些場景下的協(xié)作和管理有一定的限制。
依賴平臺(tái)技術(shù)構(gòu)架:許多低代碼平臺(tái)采用特有的技術(shù)架構(gòu)和編程方式,容易給開發(fā)者學(xué)習(xí)和成長帶來困難,也會(huì)導(dǎo)致平臺(tái)的依賴性增加。
風(fēng)險(xiǎn)管理不完善:低代碼平臺(tái)對于數(shù)據(jù)安全等問題的風(fēng)險(xiǎn)管理還存在一些缺陷。在使用低代碼平臺(tái)開發(fā)的應(yīng)用程序可能無法滿足某些重要的數(shù)據(jù)管理要求,例如安全性、隱私保護(hù)等因素。
存在即合理,低代碼平臺(tái)本身并非行業(yè)毒瘤,只是一個(gè)優(yōu)勢和劣勢都非常明顯的技術(shù),切不可因噎廢食,一棍子打死所有,但如果沒有充分考量和處理相關(guān)的問題,使用低代碼平臺(tái)開發(fā)的應(yīng)用程序可能會(huì)帶來一些風(fēng)險(xiǎn)和限制。因此,在選擇平臺(tái)時(shí)應(yīng)根據(jù)實(shí)際需求,權(quán)衡各種因素,謹(jǐn)慎抉擇。
低代碼要利用,但是一定要“謹(jǐn)慎”,適合自己業(yè)務(wù)才是最好的。
編輯:黃飛
-
代碼
+關(guān)注
關(guān)注
30文章
4886瀏覽量
70241
原文標(biāo)題:再玩玩B端搭建
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
求助,在IR615中可以選用哪種vpn協(xié)議?如何進(jìn)行配置?
兩片TPS65261進(jìn)行電源設(shè)計(jì)如何進(jìn)行輸出端電感
如何進(jìn)行Ubuntu下Qt嵌入式交叉編譯開發(fā)環(huán)境搭建?
上位機(jī)與SimpleFOC是如何進(jìn)行連接的
請問socket客戶端與虛擬機(jī)服務(wù)器是如何進(jìn)行通信的
如果不安裝虛擬機(jī),該如何進(jìn)行環(huán)境搭建?
程序是如何進(jìn)行編譯和下載的
Linux Ubuntu教程之Linux Ubuntu14.04如何進(jìn)行開發(fā)環(huán)境的搭建
DS18B20溫度傳感器如何進(jìn)行雙向通訊
如何進(jìn)行程序的擴(kuò)展

STM32單片機(jī)如何進(jìn)行開發(fā)環(huán)境的搭建

如何進(jìn)行OPCDCOM配置

HarmonyOS中如何進(jìn)行跨端遷移
如何進(jìn)行電源供應(yīng)設(shè)計(jì)

評論