架構設計:css
先後端徹底分離(RESTful Web API接口)、分層架構(邏輯層、數據層、工具層)、模塊化html
技術選型:前端
Html、css、js、JQuery(Dom操做,Ajax請求)java
輔助工具:node
Webpack、Node.Js、NPM、shellwebpack
效率工具:git
Sublime text三、Chrome、Git、Fiddlergithub
注:web
一、先後端徹底分離的方式能夠減小先後端的耦合,提升先後端的開發效率shell
二、分層架構的層級劃分能夠進行系統的解耦,提升系統的可擴展性可可維護性
三、模塊化能夠進一步的解耦,讓系統經過組件拼裝來完成業務的實現,優勢還有支持團隊並行開發,提升團隊開發的效率
需求分析
1、大型電商平臺有什麼:
(1)購買需求:商品展現、用戶下單、購物車、用戶支付、訂單中心
(2)用戶需求:會員系統、等級體系、用戶行爲和信息、地址、帳號體系
(3)運營需求:廣告推廣、用戶管理、訂單管理、商品管理、廣告及推薦、客服
(4)市場需求:SEO、優惠折扣、SEM、代理
(5)數據統計需求:成交量、成單率、訪問信息、推廣效果、用戶量增減
2、進行需求拆分:
遵循需求拆分的原則:
(1)單個迭代不宜過大
(2)需求合理可交付,可以造成一個完整的功能閉環
(3)有成本意識和價值體現
3、找到核心需求
拆分爲用戶端和後臺管理
用戶端:
(1)商品展現:首頁、商品列表、商品詳情
(2)購物車:購物車數量、增刪購物車、提交
(3)訂單:訂單確認(包括地址管理)、訂單提交、訂單列表、訂單詳情
(4)用戶:登錄、註冊、我的信息、密碼找回和修改
(5)支付:調用接口
後臺管理:
(1)商品管理:對商品的增刪改查
(2)品類管理:對品類的增改查
(3)訂單管理:訂單列表、訂單詳情、發貨(只讀的)
(4)權限控制:管理員登錄
架構設計與技術
架構設計
1、分層架構
定義:把功能類似,抽象級別相近的實現進行分層隔離
優點:鬆散耦合(易維護,易複用,易擴展)當改變其中一個層級時,只要保證該層級的接口不變便可。
常見的分層方式:MVC,MVVM
2、模塊化
定義:解決一個複雜問題時,自頂向下逐層把系統劃分爲若干模塊的過程
做用:解耦,支持並行開發
模塊化方案:
模塊化方案選擇:CommonJs
分層架構和模塊化區別:分層架構更偏重整個系統上的縱向層級劃分;而模塊化更偏重橫向功能的拆分。
最終採用了分層架構和模塊化結合的方式。這裏我繪製了一張圖片用來講明
說明:
技術選型
先挑幾個比較主流的方案,而後從穩定性,擴展性,運行速度,開發效率,兼容性等方面綜合考慮。
主要針對如下幾個方面選擇:
(1)軟件過程模型:選擇敏捷開發,這是一種以用戶需求進化爲核心,採用迭代,按部就班的方法進行軟件開發的流程。即需求一邊想着,流程一邊走着
優勢:能應付不斷變化的用戶需求
缺點:對團隊成員要求較高
(2)先後端分離方式:選擇純靜態的先後端分離
(3)框架選型:(用戶端:JQuery+CSS 後臺管理系統:React+Sass)
(4)構建工具:(webpack)
(5)版本控制:(git)(不解釋)
(6)發佈方式:
先後端職責及數據接口定義
職責劃分
後端:數據存儲、文件服務、數據接口
前端:數據請求和處理、頁面展現
即,以接口爲界限,後端負責製做接口,前端負責調用接口
接口的文檔規範
項目源碼:https://github.com/zmx-xiao-xiao/XXMall-fe