如何模塊化設(shè)計B端系統(tǒng)?先思考這3個問題

5 評論 9381 瀏覽 85 收藏 12 分鐘

產(chǎn)品經(jīng)理都希望能做出一個可復(fù)用性強、靈活性好的B端系統(tǒng)出來。那么,模塊化設(shè)計就是其中一個很好的方法。

一、為什么要模塊化設(shè)計?

希望減少重復(fù)性造輪子的可能,抽離出共通性、形成標準化,最終達到減少人力物力的大量浪費,提高業(yè)績的同時還減少了成本開支,何樂而不為?

最近鼓吹得如日中天的中臺概念、流行了許久的敏捷開發(fā),無不都是為了此目的。

當前較為普遍的兩種方法:接口式開發(fā)、模塊化設(shè)計。

1. 接口式開發(fā):開發(fā)角度

寫代碼的同學(xué)都知道,代碼要講究可復(fù)用性、靈活性。前端開發(fā)與后端開發(fā),采用接口式方法來進行信息之間的交互。

案例:我要登錄淘寶網(wǎng)站。

上下游系統(tǒng)之間,跨系統(tǒng)之間,也大多采用接口式方法進行信息傳遞。

此文,咱們簡單聊聊B端系統(tǒng)模塊化設(shè)計的好處。

2. 模塊化設(shè)計:產(chǎn)品設(shè)計角度

模塊化設(shè)計,專業(yè)術(shù)語講是為了我們做的產(chǎn)品,將來靈活性強、擴展性好。不需要開發(fā)修改代碼,就可以實現(xiàn)部分新的業(yè)務(wù)邏輯。

通俗點講,就是堆積木。我們可以將任意小方塊,任意拼湊成我們想要的形狀,從而達到目的。

不同的系統(tǒng),不同的業(yè)務(wù),要根據(jù)實際情況分析,這里我以電商系統(tǒng)為例,總結(jié)了些許模塊化設(shè)計經(jīng)驗,分享一二。不到之處,還請大佬們批評指正。

二、適不適合模塊化設(shè)計?

1. 搞清楚事務(wù)本質(zhì)

首先,一定要搞清楚為什么要去模塊化設(shè)計,千萬不要為了模塊化而模塊化,這個是很大的忌諱。模塊化設(shè)計,很多時候短期是看不到任何效果的,而且讓系統(tǒng)變得更麻煩。

以添加商品為例:要新建一個商品,必不可少的有商品基本信息、商品類目、商品屬性信息等等。

如果想簡單點設(shè)計:

  1. 點擊添加商品按鈕,進入添加商品頁面;
  2. 在固定表單中,填寫商品所有信息;
  3. 點擊保存按鈕。

添加商品,本就不是很復(fù)雜的事,此簡單的方案不是不可行。只是不利于系統(tǒng)的可擴展性和靈活性。

為什么?在固定的表單中填寫商品所有信息,你就能保證所有的商品都是一樣的業(yè)務(wù)邏輯,一樣的商品信息嗎?根本保證不了,那么一旦做成固定模板,系統(tǒng)后期就要不斷的根據(jù)新的業(yè)務(wù)邏輯和商品去不斷的改代碼來實現(xiàn)業(yè)務(wù)方的需求。

那么,有沒有更好的方案?模塊化設(shè)計。

回到問題本質(zhì):想成功添加一個商品到商品庫。

方案:將商品信息打散,將其拆分為三大類信息組合:商品共性信息(所有的商品都有的屬性)、商品類目、動態(tài)屬性(區(qū)分商品唯一性的屬性)。

2. 理清父子關(guān)聯(lián)關(guān)系

既然要模塊化,那么肯定就會出現(xiàn)一層又一層的父子關(guān)聯(lián)關(guān)系。

說明:要想成功添加A商品,必須關(guān)聯(lián)某個A商品類目。A商品類目必須關(guān)聯(lián)某個A模板,A模板必須關(guān)聯(lián)對應(yīng)屬性。

屬性管理:管理了商品的所有類別的屬性信息,一定要做好分類。比如:關(guān)鍵屬性、規(guī)格屬性、非關(guān)鍵屬性等等。

模板管理:不同的商品,可能由不同的屬性構(gòu)成。那么我將屬性形成一個又一個模板,就可以靈活的去滿足各種類別的商品。

商品類目:商品的分類管理。所有的商品,肯定有自己的分類,也就是商品類目。同一類商品歸為一類,便于商品的維護和管理。

商品管理:所有商品的管理?,F(xiàn)在要添加一個商品,通過模板化設(shè)計,就變得非常靈活。要想添加商品:

  1. 點擊添加按鈕;
  2. 選擇A商品類目;
  3. 填寫A類目關(guān)聯(lián)的模板A中對應(yīng)的屬性信息;
  4. 保存。

模板設(shè)計的好處就是,我可以隨時更換關(guān)聯(lián)關(guān)系,也可以隨時在下一層關(guān)聯(lián)關(guān)系中做任何CRUD操作卻不影響當前層級新的數(shù)據(jù)。

三、如何模塊化設(shè)計B端系統(tǒng)?

記住我一句萬變不離其宗的話:

所有的系統(tǒng)設(shè)計無非就是對數(shù)據(jù)庫中各種表格的CRUD(增刪改查)。

別把后臺系統(tǒng)設(shè)計想的那么玄乎,沒有那么復(fù)雜。咱之所以覺得復(fù)雜,是因為咱還不夠熟悉業(yè)務(wù),不清楚正向逆向各種流程,并不是系統(tǒng)設(shè)計難。

1. 功能結(jié)構(gòu)圖:有哪些功能、頁面、按鈕

說明:

  1. 下圖是我認真畫的真實數(shù)據(jù),認真觀察后發(fā)現(xiàn)沒有?哪個版塊的管理離開的了CRUD?先講頁面的根(CRUD)想好,什么批量克隆、啟用、停用無非添磚加瓦而已;
  2. 功能結(jié)構(gòu)圖也就是功能列表,只是功能列表會描述的更細,而結(jié)構(gòu)圖只是列出大的框架,方便參閱,沒你想象的那么復(fù)雜;
  3. 雖不復(fù)雜,但每一層的關(guān)聯(lián)關(guān)系可別忘記加上,這可是咱這篇模塊化設(shè)計的核心。

2. 信息結(jié)構(gòu)圖:有哪些對象和字段

信息結(jié)構(gòu)圖:將你看到的頁面信息,抽象處理到一個對象的維度,然后把同一個對象的信息放在一起。

咱們產(chǎn)品人畫的信息結(jié)構(gòu)圖,不需要與開發(fā)同學(xué)設(shè)計的數(shù)據(jù)庫表結(jié)構(gòu)一模一樣,按你的理解將其以單個對象維度抽離出來即可。

有沒有覺得設(shè)計信息結(jié)構(gòu)圖很難,根本無從下手,不知所措?根本原因在哪?在于咱們腦海中沒有面向?qū)ο蟮母拍詈蛯?shù)據(jù)庫表結(jié)構(gòu)的理解。

什么叫對象?萬事萬物,皆為對象。你,我,鼠標,鍵盤,電腦都是對象。

對象:指具體的某一個事物,即在現(xiàn)實生活中能夠看得見摸得著的事物。在面向?qū)ο蟪绦蛟O(shè)計中,對象所指的是計算機系統(tǒng)中的某一個成分。

在面向?qū)ο蟪绦蛟O(shè)計中,對象包含兩個含義,其中一個是數(shù)據(jù),另外一個是動作。對象則是數(shù)據(jù)和動作的結(jié)合體。對象不僅能夠進行操作,同時還能夠及時記錄下操作結(jié)果。方法是指對象能夠進行的操作,方法同時還有另外一個名稱,叫做函數(shù)。方法是類中的定義函數(shù),其具體的作用就是對對象進行描述操作。

對象解析:對象由屬性和方法構(gòu)成。private開頭的全是對象應(yīng)有的屬性,也就是咱們看到的信息架構(gòu)圖中,員工對應(yīng)的信息。至于方法,咱們產(chǎn)品經(jīng)理不需要關(guān)注,知道有就好。

表結(jié)構(gòu):表名+字段。詳情可以看我另一篇文章的文末,這里不再說了哈!《后臺系統(tǒng)架構(gòu)設(shè)計-商務(wù)咨詢系統(tǒng)

表解析:員工信息表用來儲存員工的基本信息。一般由表明+字段構(gòu)成,我們產(chǎn)品人不需要去關(guān)注數(shù)據(jù)類型,是否主鍵這些信息。

3. 原型圖:系統(tǒng)長什么樣,有哪些規(guī)則和交互效果

PS:原型只是案例展示,并不是真實功能,有很多按鈕和規(guī)則,都沒有寫入,僅供參考。

如果你真的涉及想用模塊化設(shè)計,需要找人交流的時候,記得找我喲!

屬性管理:

說明:屬性分類與屬性分組是不同概念。屬性分組是將一類屬性進行分組,是站在業(yè)務(wù)維度劃分。屬性分類,是站在產(chǎn)品設(shè)計維度分析。

模板管理:

  1. 模板有點類似屬性分組,將一組又一組屬性構(gòu)建成一個又一個模板。
  2. 模板一定要關(guān)聯(lián)屬性,否則毫無意義。

商品類目:

  1. 商品類目,一定要去關(guān)聯(lián)設(shè)置好的不同業(yè)務(wù)的模板;
  2. 一個商品類目可以關(guān)聯(lián)多個模板。

商品管理:

  1. 添加商品,也就變得簡單方便。直接選擇商品類目后,填寫當前業(yè)務(wù)的商品模板中的屬性信息即可;
  2. 如果業(yè)務(wù)有變動,商品屬性的增刪改查變得游刃有余,不會影響舊的在售商品。隨時更換隨時增加新的判斷,都可以,想怎么玩就怎么玩兒。

總結(jié)

所有的系統(tǒng)設(shè)計無非就是對數(shù)據(jù)庫中各種表格的CRUD(增刪改查)。

 

作者:會飛的豬,微信公眾號:刻意練習(xí)產(chǎn)品思維(ID:kylxpm520)

本文由 @會飛的豬 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash, 基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 嗯,有點開發(fā)中的模塊,領(lǐng)域的意思,看的很爽!點贊了!

    回復(fù)
    1. 謝謝

      來自廣東 回復(fù)
  2. 這種屬性的意思是在數(shù)據(jù)庫中是一串字符串嗎

    來自浙江 回復(fù)
    1. 屬性的格式,請看數(shù)據(jù)類型

      來自廣東 回復(fù)
  3. 關(guān)注本公眾號: kylxpm520,輸入【模塊】即可獲得本文中所有文件內(nèi)容。

    來自廣東 回復(fù)