Vue3.0《小兔鮮兒》企業級電商專案開發實戰,市場主流熱門技術和業務解決方案

年华lcb發表於2024-09-03

請描述一下這個系統?

【回答技巧】
從3個方面來回答這個問題:
|–系統背景及系統概述
|–系統包括的業務模組及主業務流程
|–責任模組

【回答示例】
第一個方面:系統背景及系統概述

優購時尚商城是香港上市公司百麗國際公司為拓寬旗下運動品牌服飾市場而開發的一個專業銷售購物網站戶外運動裝備的網站。

第二個方面:系統包括的業務模組及主業務流程

改專案分為前臺和後天2大模組:
前臺又包含:全部商品分類、運動館、戶外館、鞋靴館、女裝館、男裝館、母嬰館、生活館、會員中心、秒殺、閃團、INNET運動鞋、潮流館。每一個分類都是對該範圍類商品的一些具體分類以及明星商品的展示、新品展示、品牌連線等等。前臺還包含使用者的登入註冊、我的優購、我的訂單、公告等模組,主要用於客戶下單。結算、收貨等一系列購物操作。以及個人中心的個人資訊、訂單資訊的檢視和維護。

後臺後臺包含:商品管理、訂單管理、代客下單、支付管理、廣告管理、合作伙伴管理、會員管理、許可權管理、系統配置、報表管理等模組。

第三方面:責任模組

這個系統我主要負責的是商品管理模組的CRUD以及商品的屬性管理、商品的上下架、品牌管理、訂單管理

前臺主要負責商品的主頁面展示、商品的篩選、商品詳情展示。在商品詳情頁面採用freemarker頁面靜態化技術。降低伺服器壓力減少對伺服器的I/O。商品詳情頁實現了新增購物車和結算功能。購物車根據與專案經理協商採用cookie技術實現。【此處可以加入幾種儲存方案:1.儲存資料庫{問題是造成資料庫壓力倍增} 2.使用cookie{使用者更換電腦或瀏覽器新增購物車商品丟失,但是此網站不考慮} 3.最好解決方案儲存到redis資料庫。前兩個問題全部解決】。提交訂單功能可能出現併發問題。原因在於大量使用者都可能購買。庫存出現不足問題。這裡可以插入自己對資料庫的理解:鎖機制【悲觀所:執行緒等待。效率太低。樂觀鎖:解決了悲觀所的效率問題。可選。但是update語句本身就帶鎖。所以不用加鎖就能解決這個併發修改庫存問題】,前臺我還負責了個人中心的模組。包括:我的訂單、退換貨訂單、我的收藏、個人資料、收貨地址等功能模組。

說說系統的架構?
本系統使用maven進行構建,
將系統分成了技術基礎架構模組、前臺工程模組、後臺工程模組、主工程模組、檔案系統工程模組。

擴充套件問題:

Spring在系統中如何使用?

Spring對控制層、業務層、持久層的bean進行統一管理。

對控制層的action,透過@controller註解,自動元件掃描方式將action在spring容器註冊。

對業務層的service,在spring配置檔案進行配置,好處是方便系統開發與維護。Spring對業務層進行事務控制。

對持久層的mapper,透過spring與mybatis整合包的mapper掃描器自動掃描編寫的mapper。

本系統如何用maven開發?
本系統採用maven進行模組劃分,將系統分成了核心基礎架構模組、前臺工程模組、後臺工程模組、主工程模組、檔案系統工程模組

核心基礎架構模組:

此模組包括了對spring、mybatis的配置資訊
pom.xml中配置jar包的依賴,方便統一管理本專案的jar包依賴。
前臺和後臺所有業務和資料訪問層的編碼實現。方便子模組重複呼叫。

前臺工程模組:

此模組包括系統前臺所用到所有controller。負責呼叫核心基礎模組中的業務方法進行前臺資料展示

後臺工程模組:

此模組包括系統後臺所用到所有controller。負責呼叫核心基礎模組中的業務方法進行商家的後臺管理

主工程模組:

此模組是將各各子模組進行聚合,最終生成一個war包。

檔案系統工程模組:

次模組用於儲存系統的所有檔案。包括商品圖片、報表模板、企業公告等檔案。用於分散伺服器I/O提高專案訪問效率。

擴充套件問題:

maven倉庫是怎麼構建?

實際開發在區域網中公司建立了一個maven私服,私服上存放系統所用到的jar包。

本系統實現國際化了嗎?是怎麼做?
本系統沒有實現國際化,本系統是具有中國特色的電商專案,不需要實現國際化

這個系統mybatis是怎麼用的?或這個系統持久層如何實現的?
1、mybatis框架

使用mybatis官方出的mybatis與spring整合包將mybatis和spring整合。
針對單表的增、刪、改、查使用mybatis官方提供的逆向工程,根據資料庫表的結構生成mybatis當中的mapper.xml、mapper.java、po及相關的類。在service中直接使用自動生成的mapper介面。

針對自動生成的mapper無法滿足業務需求時,自定義mapper,一般情況下多表查詢需要自定義mapper。

Mapper開發完成透過mybatis與spring整合包中的mapper掃描器將mapper在spring容器中進行註冊。

擴充套件問題:(回答問題切莫問什麼答什麼。自己要發散思維。擴充套件的回答面試問題)

1、 mapper的掃描器是如何使用的

在spring配置檔案配置mapper掃描器,配置項指定掃描的包的路徑。

使用掃描器需要遵循一些mapper編寫規則:

Mapper.xml和mapper.java在同一個目錄,且檔名相同。

Mapper.xml中的statement 的id和mapper.java中的方法名一致。

Mapper.xml中的statement的parameterType和mapper.java中的方法輸入引數一致。

Mapper.xml中的statement的resulttype和mapper.java中的方法輸出結果型別一致。

這個系統springmvc是怎麼用的?
使用springmvc註解開發。

1、 對於頁面展示類的方法,控制器方法返回string ,string就是邏輯檢視名。

2、 對於提交類的方法,控制器方法返回json資料,使用@Responsebody註解將action方法的返回值轉為json輸出。

Responsebody註解內部使用jackson將java物件轉為json

本系統ajax+json具體是怎麼做的?action的方法返回的json是如何實現的?

ajax+json:頁面採用ajax提交,服務端返回是json,

頁面提交統一採用ajax Form提交方式,使用了jquery提供form元件,在開發時和原始form的post 提交方法配合使用,使用jquery Form元件更能簡化開發提高使用者體驗和開發效率。

擴充套件問題:
系統哪些地方使用到了json?

1、 圖片上傳返回的相對和絕對路徑。方便圖片回顯和URL儲存。

2、 購物車中的最小銷售單元的資料儲存

3、 許可權列表使用json資料表示。

4、 個人中心的省市縣聯動資料使用json返回

使用json目的:使用json方便客戶端頁面解析資料。

這個系統的使用者認證是怎麼實現的?
使用使用者名稱密碼認證方式。

1、 使用者認證

2、 使用者身份校驗

使用者身份校驗使用springmvc提供攔截器完成。

流程:

公開許可權:使用者不需要登入就訪問地址。在單獨的配置檔案進行配置。比如系統登入頁面。

電商專案介紹
電商行業的發展

從截圖我們可以發現,市場需求推動了電商的飛速發展,而且我們應該堅信電商會一直火下去,為了“錢途”我們必須學好這個專案!

電商行業技術特點

①技術新:(NoSql推廣首在社群網站和電商專案),發展快,需求推動技術的革新。

②技術範圍廣:除了java,像淘寶前端還使用了PHP,資料庫MySQL或者oracle,nosql,伺服器端使用Linux,伺服器安全、系統安全

③分散式:以前是在一臺機器上做運算,現在是分散到很多機器上,最後彙總起來。(集中式向分散式進行考慮)由需求來推動

④高併發、叢集、負載均衡、高可用:由併發問題採用叢集進行處理,其中,叢集會涉及伺服器的主從以及分佈問題,使用負載均衡。(權重高低)高可用是對使用者而言,使用者的服務不中斷(系統升級,服務不中斷,淘寶每週更新2次)。

⑤海量資料:雙11,570億的背後,訂單有多少?瀏覽次數有多少?商品會有多少?活動相關資料?

⑥業務複雜:不要簡單的認為是:商品展示出來後,加入購物車後購買就完成了。後臺特別複雜,比如優惠(包郵、滿減)

⑦系統安全:系統上線必須透過系統安全部門稽核透過。前年CSDN資料洩露。快捷酒店資料洩露(透過身份證就可以檢視你的開房記錄)。近幾年,安全意識逐步在提高。

電商行業的一些概念

B2C:商家對客戶,京東、噹噹、發展為B2C平臺,天貓(B2C平臺淘寶商城由馬雲提出,率先發展為平臺),1號店也是(在上海)

B2B:商家對商家,阿里巴巴(不零售,只批發,淘寶很多商家都會去阿里巴巴進貨);

C2C:個人對個人,淘寶市場,淘寶,QQ商城;

系統功能

本商城系統是一個綜合性的B2C平臺,類似京東商城、天貓商城。

會員可以在商城瀏覽商品、下訂單,以及參加各種活動。

商家可以在入住淘淘商城,在該平臺上開店出售自己的商品,並且得到淘淘商城提供的可靠的服務。

管理員、運營可以在平臺後臺管理系統中管理商品、訂單、會員等。

客服可以在後臺管理系統中處理使用者的詢問以及投訴。

思維導圖

說明:
上圖中,數字標號為功能模組開發優先順序,鑑於本系統搜尋模組使用的技術點Lucene,由2級別提升為1級別。期初的電商專案是沒有購物車功能的(不同商家發貨,付款方式也多樣化,這樣過於複雜)

上述功能不要強行記憶,以商品為中心進行發散理解記憶!如下圖

首先我們要有商品,管理員可以在系統中管理商品,使用者可以檢視商品。

商品多了之後要有類目模組,管理員可以管理類目資訊,使用者可以根據類目檢索商品。

有了商品之後,要有人(會員)去買東西,普通使用者註冊為會員,會員可以登入到系統管理自己的資訊(密碼等)

買了之後會生成訂單,會員可以購買商品並且可以下單,管理員可以管理訂單。

有了訂單之後需要支付(線上支付/貨到付款)

這樣,我們就可以把整個電商專案的功能記清楚了!

分散式系統架構

傳統架構

各個系統說明:

後臺管理系統:管理商品、訂單、類目、商品規格屬性、使用者管理以及內容釋出等功能。

前臺系統:使用者可以在前臺系統中進行註冊、登入、瀏覽商品、首頁、下單等操作。

會員系統:使用者可以在該系統中查詢已下的訂單、收藏的商品、我的優惠券、團購等資訊。

訂單系統:提供下單、查詢訂單、修改訂單狀態、定時處理訂單。

搜尋系統:提供商品的搜尋功能。

單點登入系統:為多個系統之間提供使用者登入憑證以及查詢登入使用者的資訊。

談到分散式架構,我們必須對比傳統架構才能彰顯其優勢。

最為明顯的一點,在傳統的架構中,如果某個功能需要進行維護,那麼我們必須停掉整個服務,這對於公司的運營會造成損失。分散式系統在核心功能模組使用單獨伺服器,維護部分模組不影響使用者的其他操作。

在海量資料處理方面,傳統架構顯得比較乏力;分散式系統架構採用伺服器叢集,使用負載均衡,海量資料處理遊刃有餘!

在效能(檢索)以及維護方面,分散式系統架構也有較為明顯的優勢。

本系統人員配置情況
產品經理:3人,確定需求以及給出產品原型圖。

專案經理:1人,專案管理。

前端團隊:3人,根據產品經理給出的原型製作靜態頁面。

後端團隊:20人,實現產品功能。

測試團隊:3人,測試所有的功能。

運維團隊:2人,專案的釋出以及維護。

開發流程

後臺開發環境

需要注意,在幾個環境中,預釋出環境和生產環境幾乎一樣,開發環境和測試環境是獨立存在的,每一個階段的活是由對應的工作人員來負責的。

此外,我們還需要熟悉 SVN主幹、分支、標籤開發過程流程:

整個開發沿著主線進行,在一個版本定型後,前一個版本出現bug,那麼此時會對bug進行修復,投入使用的依舊是之前定型的那個版本,待前一個版本的bug修復好了之後,會定義一個新的版本,主線不會改變,如果改動不大,那麼只需修訂問題,繼續沿用此版本(1.0.x),只有出現較大改動時,才會升級一個新的版本號(1.1.x)。所有動作,交替進行,沿主線向前推進!

涉及技術
Spring、SpringMVC、Mybatis

JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文字編輯器)、CSS+DIV

Redis(快取伺服器)

Lucene、Solr(搜尋)

httpclient(呼叫系統服務)

Mysql

Nginx(web伺服器)

Quartz(定時任務)

RabbitMQ(訊息佇列)

開發工具和環境
Eclipse 4.4.1

Maven 3.2.3

Tomcat 7.0.47(Maven Tomcat Plugin)

JDK 1.7

Mysql 5.6

Nginx 1.5.1

Redis 2.8.9

Win7 作業系統

SVN(版本管理)

需要注意所有開發工具的版本號要對應(一致),否則會出現衝突問題,面試大忌!(常識:電商專案火起來的時間不是很久,在開發的時候,很多開發工具和環境不像之前那些傳統系統那麼老舊,這點一定要引起注意!)

電商面試題
2.1 說說你最近做的這個專案的背景,簡單的介紹一下你這個專案?
背景

電商專案的背景一般是由市場推動的,比如行業競爭或者經營方式的改變(營銷理念)。競爭的形態也發生了巨大的變化,從以產品、價格為主的競爭轉向以服務為主的競爭,服務成為主導競爭格局的重要因素。渠道作為企業完成客戶溝通、產品/服務交換過程以及實現價值、產生效益的重要載體,發揮了採集、傳達客戶和競爭對手等市場資訊,為買賣雙方提供便利,協調供需矛盾,為客戶提供合適的產品與服務,向客戶傳遞產品/服務資訊,實現營銷/服務目標等重要的功能。

XXX商城之前主要以實體店為主,進行批發與零售。業務也相對比較傳統,為了提升業務績效,增強客戶滿意度和粘性,另一方面,也為基於網際網路的商務模式創新奠定基礎。針對上述行業環境變化和業務戰略目標,xxx商城網上終端預約銷售基礎上,即將啟動網上商城建設專案,用於建立網上終端、營銷案線上銷售及相關輔助功能,包含商品管理、訂單管理、類目管理、客戶管理、合作商管理、客服管理、購物平臺、內容管理等,很大程度上分擔了人工的壓力,對提高客戶服務效率和客戶滿意度能夠起到較好的作用。基於此,XXX公司提出建設網上商城建設專案工程。

專案介紹

相關文章