網店系統功能模塊是什么?有什么作用呢?

導讀:電商業務與我們的生活息息相關,大家可能對電商多少也有一些了解,事實上,即使是一個最小化的電商系統,也依然是非常復雜的。

所以,我們先花一點時間,一起以一個創業公司的CTO的視角,設計一個最小化的電商系統,并以此理清電商系統的架構。讓大家對電商系統的業務邏輯、系統架構、核心業務流程有一個基本的認知。

網店系統功能模塊是什么?有什么作用呢?

新公司很快就成立了,你成了新公司的CTO。關于改變世界,目前唯一能確定的是,首先要做一個電商系統。具體要做成什么樣,目前還不清楚。你需要與老板討論業務需求。

  • 你:“咱們要做的業務模式是C2C、B2C還是B2B呢?”
  • 老板:“什么B?什么C?我不懂你說的那些技術名詞。”
  • 你:“這么說吧,你要做一個某寶網,還是某東網,還是某848網呢?”
  • 老板:“不都是一樣的嗎?它們之間有什么區別?你趕緊做一個出來我看看不就知道了?!”

故事發展到這里,作為程序員的你是不是有一種似曾相識的感覺?現實就是,需求永遠不明確,永遠在變化,唯一不變的只有變化。優秀的程序員適應變化,并且擁抱變化。在需求還不太明確的情況下,比較可行的方案就是,首先搭建不太會發生變化的核心系統,然后盡量簡單地實現一個最小化的系統,后續再逐步迭代和完善。

01 設計電商系統的核心流程

接下來,我們一起設計這個電商的核心系統。

遵照軟件工程的一般規律,我們先從需求階段開始。那么,需求分析應該如何做呢?理想情況下,系統分析師或產品經理應該負責完成需求分析的任務。但是,現實中絕大多數情況下,你得到的所謂的“需求”,很有可能就是一兩句話。需求分析的工作最終往往是由開發者完成的。

很多項目交付以后,仍需要不斷地進行修改和變更,用戶不滿意,開發者也很痛苦,造成這個問題的根本原因其實就是缺失了需求分析的步驟。所以,為了后續工作能夠順利開展,每位開發者都應該掌握一些用于需求分析的方法。

那么,開發者進行需求分析時應該做些什么呢?這里先不介紹那些做需求分析的方法和理論,只告訴你最重要、最關鍵的一個點:不要一上來就設計功能,而是先明確下面這兩個問題的答案。

  1. 這個系統(或者功能)是給哪些人用的?
  2. 這些人使用這個系統是為了解決什么問題?

這兩個問題的答案,我們稱之為業務需求。那么,對于我們將要設計的電商系統,其業務需求又是什么呢?如果大家很熟悉電商的業務,那么回答這兩個問題應該很容易。

第一個問題,電商系統是給哪些人用的?首先是買東西的人,即“用戶”;其次是賣東西的人,即“運營”;還有一個非常重要的角色就是出錢的人,即“管理者”(請記住,在設計任何一個系統的時候,管理者的意見都是非常重要的)。綜上所述,電商系統是面向用戶、運營和管理者開發的。

第二個問題,用戶、運營和管理者使用電商系統分別想要解決什么問題?這個也很容易回答,用戶為了買東西,運營為了賣東西,管理者需要通過系統了解自己所得的收益。

這兩個問題的答案,或者說業務需求,稍加細化后,可以用圖1-1進行清晰的表述。網店系統功能模塊是什么?有什么作用呢?

▲圖1-1 電商系統用例圖

圖1-1在UML(統一建模語言)中稱為用例圖(Use Case),是我們進行需求分析的時候所要畫的第一張圖。用例圖可用于回答業務需求中的兩個關鍵問題,即這個系統給誰用?他們用這個系統是為了解決什么問題?

一般來說,業務需求與我們要設計的系統關系不大。為什么這么說呢?因為我們將圖1-1中的用例,放在傳統的商業企業(比如,一個小雜貨鋪、一個線下實體商場或商店,或者一個做電視購物的公司)中也是適用的,所以,做業務需求的主要目的是理清楚業務場景是怎樣的。

下面就來分析電商系統的業務流程。很顯然,電商系統最主要的業務流程,一定是購物流程。購物流程很簡單,具體流程如圖1-2所示。

所有電商的購物流程幾乎都是如此,下面就來分析一下這個流程。網店系統功能模塊是什么?有什么作用呢?

▲圖1-2 電商系統購物流程圖

流程從用戶選購商品開始,用戶首先在App中瀏覽商品,找到心儀的商品之后,把商品添加到購物車,選完商品之后,打開購物車,提交訂單。下單結算之后,用戶就可以支付了。支付成功后,運營人員會為已經支付的訂單發貨,為用戶郵寄相應的商品。最后,用戶收到商品并確認收貨。至此,一個完整的購物流程就結束了。

02 根據流程劃分功能模塊

接下來,我們再進一步細化電商購物的業務流程,看一下電商系統是如何實現該流程的。圖1-3所示的是細化之后的電商系統購物流程時序圖(Sequence Diagram)。網店系統功能模塊是什么?有什么作用呢?

▲圖1-3 電商系統購物流程時序圖

下面就來詳細講解圖1-3所示的時序圖中的各個步驟。

  1. 用戶瀏覽商品,這個步驟需要通過一個商品模塊來展示商品詳情頁,用戶可以從中獲取所瀏覽商品的詳細介紹和價格等信息。
  2. 然后,用戶把選好的商品加入購物車,這個步驟需要使用一個購物車模塊來維護用戶購物車中的商品。
  3. 接下來是用戶下單,這個步驟需要基于一個訂單模塊來創建新訂單。訂單創建好了之后,系統需要把訂單中的商品從購物車中刪減掉。
  4. 訂單創建完成后,系統需要引導用戶付款,即發起支付流程,可通過一個支付模塊來實現支付功能,用戶成功完成支付之后,系統需要把訂單的狀態變更為“已支付”。
  5. 成功支付之后,運營人員就可以發貨了,發貨之后,系統需要扣減對應商品的庫存數量,這個步驟需要基于一個庫存模塊來實現庫存數量的變更,同時系統還需要把訂單狀態變更為“已發貨”。
  6. 最后,用戶收到商品,在系統中確認收貨,系統需要把訂單狀態變更為“已收貨”,流程結束。

這個流程涉及5大功能模塊,即商品、購物車、訂單、支付和庫存,這5大模塊就是一個電商系統中的核心功能模塊。

當然,僅有這5個模塊是不夠的,因為我們只分析了“購物”這個最主要的流程,并沒有完全涵蓋業務需求中的全部用例,比如,運營人員進貨、管理者查看報表等還沒有覆蓋到。

相比購物流程,剩下的幾個用例和流程都相對簡單一些,我們可以采用同樣的方法來分析其他的功能模塊。這里將省略分析過程,直接給出我們所要實現的電商系統的功能模塊劃分(如圖1-4所示)。網店系統功能模塊是什么?有什么作用呢?

▲圖1-4 電商系統功能模塊劃分

圖1-4使用了UML中的包圖(Package Diagram)來表示電商系統的功能模塊。

整個系統按照功能,可以劃分為10個模塊,除了購物流程中涉及的商品、訂單、購物車、支付和庫存這5個模塊之外,還補充了促銷、用戶、賬戶、搜索推薦和報表這5個模塊,這些都是構建一個電商系統必不可少的功能模塊。下面就來逐一說明每個模塊需要實現的功能。

  1. 商品:維護和展示商品的相關信息。
  2. 訂單:維護訂單信息和訂單狀態,計算訂單金額。
  3. 購物車:維護用戶購物車中商品的信息。
  4. 支付:負責與系統內外部的支付渠道對接,實現支付功能。
  5. 庫存:維護商品的庫存信息。
  6. 促銷:制定促銷規則,計算促銷優惠信息。
  7. 用戶:維護系統的用戶信息,注意,用戶模塊是一個業務模塊,一般不負責用戶的登錄和認證,這是兩個完全不同的功能。
  8. 賬戶:賬戶模塊負責維護用戶的賬戶信息。
  9. 搜索推薦:提供商品搜索功能,并負責各種商品列表頁和促銷頁的組織和展示,簡單地說就是,搜索推薦決定用戶優先看到哪些商品。
  10. 報表:實現數據統計和分析功能,生成報表,為管理者進行經營分析和決策提供數據信息。

這里需要特別說明的是,促銷模塊是電商系統中最復雜的一個模塊。各種優惠券、滿減、返現等促銷規則,每一條都非常復雜,再加上這些規則往往還要疊加計算,有時甚至會復雜到連制定促銷規則的人都算不清楚。

所有電商公司無一例外都曾因為促銷規則制定失誤,導致商品實際售價遠低于成本價,使公司受到一定程度的損失。盡管如此,五花八門的促銷活動依然是提升銷量最有效的手段,因此需要充分利用。

作為電商系統的設計者,我們需要把促銷規則的變化和復雜性控制在促銷模塊內部,不能因為一個促銷模塊而導致整個電商系統都變得非常復雜,否則設計和實現將會很難。

一種可行的做法是,把促銷模塊與其他模塊的接口設計得相對簡單和固定,這樣系統的其他模塊就不會因為新的促銷規則改變而隨之進行改變。

在創建訂單時,訂單模塊需要把商品和價格信息傳給促銷模塊,促銷模塊返回一個可以使用的促銷列表,用戶選擇對應的促銷和優惠,訂單模塊把商品、價格、促銷優惠等信息,再次傳給促銷模塊,促銷模塊再返回促銷之后的價格。在最終生成的訂單中,系統只需要記錄訂單使用了哪幾種促銷規則,以及最終的促銷價格就可以了。

這樣,無論促銷模塊如何變化,訂單和其他模塊的業務邏輯都不需要隨之改變。

至此,我們就完成了一個電商系統的概要設計,大家對電商系統應該也有了一個初步的了解。

03 小結

下面就來回顧一下一個電商系統的設計中所包含的核心要點。

首先,電商系統面向的角色是:用戶、運營人員和管理者。這三個角色對電商系統的需求是:用戶通過系統來購物,運營人員負責商品的銷售,管理者關注系統中的經營數據。

電商系統最核心的流程是用戶購物的流程,購物流程從用戶瀏覽選購商品開始,加購、下單、支付、運營人員發貨、用戶確認收貨,至此電商系統的購物流程結束。

細化這個流程之后,我們可以分析出支撐這個流程的核心功能模塊:商品、訂單、購物車、支付和庫存。除此之外,一個完整的電商系統還包括促銷、用戶、賬戶、搜索推薦和報表這些必備的功能模塊。

作為一名開發者,在做需求分析的時候,需要把握的一個要點是:不要一上來就設計功能,而是要先理清業務需求。這也是本文反復強調的兩個問題:這個系統是給哪些人用的?他們分別用這個系統來解決什么問題?這樣就可以確保做出來的系統大體上不會偏離用戶的預期。

最后,在講解系統功能模塊劃分的時候,介紹了一個能夠有效降低系統復雜度的設計經驗。那就是,如果系統業務是復雜而多變的,那么請盡量識別出這部分復雜業務的邊界,將復雜業務控制在一個模塊內部,從而避免將這種復雜度擴散到整個系統中去。

聲明:本文由網站用戶liubaili發表,超夢電商平臺僅提供信息存儲服務,版權歸原作者所有。若發現本站文章存在版權問題,如發現文章、圖片等侵權行為,請聯系我們刪除。

(0)
上一篇 2022年8月10日 10:11:49
下一篇 2022年8月10日 10:15:42

相關推薦

發表回復

您的電子郵箱地址不會被公開。 必填項已用*標注

主站蜘蛛池模板: 啊灬啊别停灬用力啊老师免费视频 | 女人张开腿让男人插| 久久夜色精品国产尤物| 麻豆91在线视频| 国产精品无码专区在线观看 | 精品国产三上悠亚在线观看| 国产精品欧美亚洲| 中文字幕一二三区乱码老| 欧美激情一区二区三区| 国产一区二区三区乱码在线观看| 91资源在线观看| 无码人妻丰满熟妇区bbbbxxxx| 亚洲第一永久在线观看| 野狼第一精品社区| 国产麻豆精品精东影业av网站| 久久久久亚洲av无码专区| 欧美激情一区二区三区视频| 人妻少妇精品中文字幕av蜜桃| 精品国产三级在线观看| 国产一区二区三区手机在线观看 | 久久精品国产亚洲精品| 果冻传媒mv在线观看入口免费| 免费看美女隐私全部| 黑人巨鞭大战中国妇女| 国产精品入口麻豆电影网| 一区二区三区国产精品| 日韩精品亚洲专区在线影视| 亚洲精品人成无码中文毛片| 男人操女人视频网站| 免费在线观看一级毛片| 隔壁老王国产在线精品| 国产成人精品a视频| 99精品在线免费| 探花国产精品三级在线播放| 亚洲人成网站色7799| 白嫩极品小受挨cgv| 国产亚洲婷婷香蕉久久精品| 羞羞视频免费网站在线看| 国产精品自产拍2021在线观看| 与子的性关系在线播放中文版| 最新亚洲人成无码网站|