后臺系統(tǒng)架構(gòu)設(shè)計(jì)-商務(wù)咨詢系統(tǒng)

6 評論 11085 瀏覽 148 收藏 12 分鐘

本文為以業(yè)務(wù)邏輯層、數(shù)據(jù)底層、表現(xiàn)層這三個(gè)方面作為思維模型,進(jìn)行思考并打造了一款從0到1的后臺系統(tǒng)。

作為后端產(chǎn)品經(jīng)理,刻意練習(xí)系統(tǒng)架構(gòu)設(shè)計(jì)的能力和對業(yè)務(wù)充分了解的能力,個(gè)人覺得,顯得尤為重要。此文我只關(guān)注這兩點(diǎn),至于原型那些表現(xiàn)層的內(nèi)容,不在此文范圍。

文中我將通過M V C技術(shù)架構(gòu)(我的思維模型)去思考如何打造一款從0到1的后臺系統(tǒng)。商務(wù)咨詢系統(tǒng),是我負(fù)責(zé)的一個(gè)業(yè)務(wù)不算特別復(fù)雜的系統(tǒng),以此為例,咱們層層剝離,探尋萬事萬物的本質(zhì)。

目錄

(1)需求背景

(2)系統(tǒng)價(jià)值

(3)系統(tǒng)設(shè)計(jì)

  • 第一步:用例圖
  • 第二步:系統(tǒng)流程圖
  • 第三步:系統(tǒng)功能清單
  • 第四步:系統(tǒng)架構(gòu)設(shè)計(jì)
  • 第五步:數(shù)據(jù)庫表結(jié)構(gòu)(對象)
  • 第六步:表之間的關(guān)聯(lián)關(guān)系(ER圖)

C:業(yè)務(wù)邏輯層

(1)需求背景

全國各分公司的商務(wù)的同事剛來公司沒多久,對很多業(yè)務(wù)以及同事都不是很熟悉,出去談業(yè)務(wù)的時(shí)候,經(jīng)常會遇到很多比較棘手的問題,也會提出很多無規(guī)則你根本想不到的問題。

打開釘釘,龐大的組織架構(gòu),一堆又一堆的釘釘群,根本不知道找哪些專業(yè)人士解答疑惑。

將自己的問題,丟到幾百人的后臺服務(wù)支持群,結(jié)果很快被其他人的問題給淹沒,不知道找誰提問,不知道在哪里提問,好不容易找到個(gè)熱心的同事,結(jié)果答非所問,浪費(fèi)時(shí)間。

不知道該在哪里提問?不知道找誰問?沒有人回復(fù)?找不到之前的問題解答記錄?公司系統(tǒng)的各種問題,沒地方提出改進(jìn)建議?

(2)系統(tǒng)價(jià)值

  • 快速解決商務(wù)同事日常業(yè)務(wù)問題
  • 提升后臺支持人員處理問題效率
  • 統(tǒng)一提問入口
  • 隨時(shí)查看問題進(jìn)度

(3)系統(tǒng)設(shè)計(jì)

PS:考慮到文中涉及到很多公司內(nèi)部數(shù)據(jù),不得已才打上馬賽克,但不影響此文我想表達(dá)的架構(gòu)設(shè)計(jì)方法,各位看官見諒。

第一步:用例圖

說明:設(shè)計(jì)任何一個(gè)系統(tǒng),首先必須搞清楚有哪些參與者,這些參與者都能在系統(tǒng)里做什么,都有什么功能。

第二步:系統(tǒng)流程圖

說明:其次,必須搞清楚這些參與者在系統(tǒng)中是如何操作的,先后順序是怎樣的,有什么判斷情況,有哪些逆向流程等等。而且畫流程圖,建議千萬別一口吃成一個(gè)胖子,要循序漸進(jìn)。

建議按照以下步驟,一點(diǎn)一點(diǎn)從簡入手:

業(yè)務(wù)流程圖-頁面流程圖-功能流程圖-數(shù)據(jù)流程圖

2.1 業(yè)務(wù)流程圖

說明:凡事,先從簡入手,先把當(dāng)前系統(tǒng)的流程枝干搭建起來,主要流程確定下來,清晰明了地告知所有人:你這個(gè)系統(tǒng)在干嘛、要干嘛。其他的枝枝葉葉,先全部去掉,不要影響你的思維,不要打擾你的思路。

2.2 頁面流程圖

說明:主干就像房子的地基,搭好地基之后,就要開始建房子了。具體有哪些頁面、頁面之間如何調(diào)整,就要開始想清楚啦。此時(shí),先過濾掉所有判斷條件,所有逆向流程,先跑通所有頁面,先跑通正向流程。

2.3 功能流程圖

說明:地基建好了,毛坯房也建好了,具體房子怎么設(shè)計(jì),得開始啦。此時(shí),每往下走一步,盡量多問自己幾個(gè)為什么。為什么要這樣做?不這樣做可不可以?

附件1:問題狀態(tài)流轉(zhuǎn)圖

說明:此系統(tǒng),問題的狀態(tài)流轉(zhuǎn),比較關(guān)鍵,所以用流程圖清晰的表明出來是很有必要的,當(dāng)前最小MVP做的好不好,關(guān)鍵在于問題狀態(tài)的流轉(zhuǎn),以及問題狀態(tài)改變后所有影響情況的考慮。

附件2:問題時(shí)效規(guī)則設(shè)置

說明:問題被人提出來了,什么時(shí)候通知給處理人,處理人多久沒處理問題會超時(shí)再次提醒,處理人回答完問題,發(fā)問人多久不給出評價(jià)后,問題自動結(jié)束狀態(tài)改為已處理等等。問題的時(shí)效控制,也是增強(qiáng)系統(tǒng)體驗(yàn)的一個(gè)重要信息,主要用于消息提醒的觸發(fā)和問題狀態(tài)的改變。

第三步:系統(tǒng)功能清單

說明:當(dāng)前系統(tǒng)當(dāng)前版本,總共要做哪些功能,要列出來,告知項(xiàng)目組所有成員,并排好優(yōu)先級。

第四步:系統(tǒng)架構(gòu)設(shè)計(jì)

說明:首先,要想清楚,系統(tǒng)是否要?jiǎng)澐智昂笈_。一般后臺系統(tǒng)是不需要前臺頁面,直接PC端訪問即可。

但是,此系統(tǒng)是針對商務(wù)設(shè)計(jì)的,那么必須考慮其在外辦公的便利性,部分重要解決其問題的功能,做成wap網(wǎng)頁嵌套在釘釘中或者單獨(dú)開發(fā)小程序、APP原生頁面就很有必要。載體不重要,重要的是商務(wù)使用順暢,簡單方便易操作。

4.1 前臺架構(gòu)

說明:當(dāng)前系統(tǒng),牽涉的外部系統(tǒng)不多,所以架構(gòu)不復(fù)雜。

4.2 后臺架構(gòu)

說明:從角色權(quán)限分配可以看出,當(dāng)前系統(tǒng)會調(diào)用人員組織系統(tǒng)的外部接口,來獲取公司的所有人員以及所屬部門。

M:數(shù)據(jù)結(jié)構(gòu)層

第五步:數(shù)據(jù)庫表結(jié)構(gòu)概念設(shè)計(jì)

說明:依稀記得《java編程思想》中有段話,萬物皆對象。世間萬事萬物,皆為對象,很強(qiáng)大,也很有道理。數(shù)據(jù)庫表結(jié)構(gòu),就是對象在程序語言的體現(xiàn)。咱們做系統(tǒng)設(shè)計(jì),追蹤到數(shù)據(jù)底層,就是一個(gè)又一個(gè)對象,以及對象之間的關(guān)系(ER圖)。

其實(shí),將功能拆解為對象并將之表象為數(shù)據(jù)庫,并不復(fù)雜,沒那么玄乎,是有根可循的。舉個(gè)例子,咱們通篇都在講發(fā)起問題,處理問題。

那問題很明顯就是一個(gè)對象,發(fā)起和處理,只是他的動作(技術(shù)語言叫方法,這里我說的大白話一點(diǎn)),并不能稱之為一個(gè)對象。以此類推,數(shù)據(jù)表結(jié)構(gòu)也就揭開迷霧啦。

PS:數(shù)據(jù)庫表,對于產(chǎn)品經(jīng)理,不是必備技能,個(gè)人認(rèn)為會畫的產(chǎn)品,并且時(shí)間充裕那就畫一下(畫出來,可以讓你思路更加清晰明了,OMG,原來我的系統(tǒng)就是這幾張表在發(fā)揮作用,太牛逼了,技術(shù)大哥們),不會并不影響你系統(tǒng)架構(gòu)的設(shè)計(jì)。這些是編程小哥哥小姐姐們的看家本領(lǐng),咱們做產(chǎn)品的了解就好,不強(qiáng)求。我畫出來,是因?yàn)椋蝗恍难獊沓?,就隨便畫了一下。

第六步:表之間的關(guān)聯(lián)關(guān)系(ER圖)

說明:表之間的關(guān)聯(lián)關(guān)系有什么用?可以有一個(gè)連帶關(guān)系,舉個(gè)例子,一個(gè)用戶表,一個(gè)信息表,一個(gè)用戶對應(yīng)多條信息,當(dāng)你刪除用戶的時(shí)候是不是這個(gè)用戶的信息也要被刪除,如果沒有關(guān)聯(lián)關(guān)系的話,你就要在刪除用戶前手工寫條SQL語句去刪除信息表里的對應(yīng)信息,如果有關(guān)聯(lián)的話,就不用了,級聯(lián)刪除就可以了,只要?jiǎng)h除用戶,這個(gè)用戶下面的信息也就沒了。

表之間的關(guān)系有四種【一對一、一對多、多對一、多對多】,那么是如何判斷的呢?這里,我只講方法,不講細(xì)節(jié)。6張表,兩兩相關(guān)聯(lián)作比較。比如:一個(gè)問題對應(yīng)一個(gè)問題分類,一個(gè)問題分類對應(yīng)多個(gè)問題,表明問題表與問題分類表是1對多的關(guān)聯(lián)關(guān)系;一個(gè)問題對應(yīng)多個(gè)問題狀態(tài),一個(gè)問題狀態(tài)對應(yīng)多個(gè)問題,表明問題表與問題狀態(tài)表是多對多的關(guān)聯(lián)關(guān)系。

再復(fù)雜再龐大的業(yè)務(wù)系統(tǒng),只要功夫深,經(jīng)過咱們層層剝離,無非就是一個(gè)又一個(gè)光禿禿的數(shù)據(jù)表結(jié)構(gòu),是不是很好玩,是不是很有趣,不妨使用我本文提到的方法順序,去剝離一個(gè)系統(tǒng)試試,你會有驚喜的喲!

V:表現(xiàn)層

表現(xiàn)層,也就是咱們做產(chǎn)品的基本功,將構(gòu)思好的系統(tǒng)用圖形化的界面表象出來,給項(xiàng)目組所有成員評審,這點(diǎn)不是此文的重點(diǎn),我不過多闡述。

總結(jié):當(dāng)前系統(tǒng),只實(shí)現(xiàn)了最小可行性MVP,解決當(dāng)下核心問題。未來的規(guī)劃,是想將本系統(tǒng)打造成商務(wù)智能咨詢系統(tǒng)。實(shí)現(xiàn)系統(tǒng)能通過問題庫,自動解決80%商務(wù)日常提出的問題,20%人工介入。

 

作者:會飛的豬能上樹,微信公眾號:刻意練習(xí)產(chǎn)品經(jīng)理(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. 思路可以借鑒一下,不錯(cuò)

    來自廣東 回復(fù)
    1. 謝謝認(rèn)可

      來自廣東 回復(fù)
  2. 為什么前臺還要處理問題?不是只是提問嘛?

    回復(fù)
    1. 業(yè)務(wù)方想在手機(jī)端直接處理問題,有時(shí)候在外面開會

      來自廣東 回復(fù)
  3. 差點(diǎn)就把全篇都馬賽克了

    來自上海 回復(fù)
    1. 沒辦法,被人舉報(bào)了我,理解思路就好,案例就別細(xì)看了

      來自廣東 回復(fù)