Maven實戰05_背景案例學Maven模塊化

1:簡單的賬戶註冊服務

註冊互聯網賬戶是日常生活中再熟悉不過的一件事,作爲一個用戶,註冊賬戶的時候需要進行以下操作,提供以下信息。

  • 提供一個未被使用的帳號ID
  • 提供一個未被使用的email地址、
  • 提供一個任意的顯示名稱
  • 設置安全密碼,並重復輸入以確認
  • 輸入驗證碼
  • 前往郵箱查收激活鏈接並單擊激活帳號
  • 登錄確認激活狀態

帳號的ID和密碼唯一的標識某個賬戶,顯示名稱用來在頁面上顯示,方便瀏覽。註冊時需要用戶輸入兩次密碼,以確保沒有輸錯。系統則負責檢查ID和email的唯一性,驗證兩次輸入的密碼是否一致。驗證碼由系統隨機生成,只能由肉眼識別,可以有效防止機器的惡意批量註冊,若輸入正確的驗證碼信息,系統會進行檢查,如果驗證碼錯誤,會提示錯誤並返回新的驗證碼。一旦所有檢查通過,系統會生成一個激活鏈接,併發送到用戶的郵箱中,單擊激活鏈接後,賬戶就被激活了,這時註冊完成,用戶可以直接登錄。

除此之外,還應該考慮一些安全因素。例如:需要在服務器端密文地保存密碼,檢查密碼的強弱程度,更進一步則需要考慮驗證碼的失效時間,激活鏈接的失效時間。

本文不會涉及太多Maven的知識,但是後續的文章都會在這篇文章的基礎上對Maven做進一步的闡述和實踐。

2:賬戶註冊服務需求用例

註冊賬戶

主要場景

  1. 用戶訪問註冊頁面
  2. 系統生成驗證碼
  3. 用戶輸入註冊信息:ID,Email地址,名稱,密碼,確認密碼
  4. 用戶輸入驗證碼
  5. 系統檢查驗證碼
  6. 用戶提交註冊請求
  7. 系統檢查ID,Email的唯一性,密碼,確認密碼是否一致
  8. 系統保存未激活的賬戶信息
  9. 系統生成註冊激活鏈接,發送至用戶郵箱
  10. 用戶打開郵箱,點擊激活鏈接
  11. 系統解析激活鏈接,激活賬戶
  12. 用戶使用ID和密碼登錄

擴展場景

  • 驗證碼模糊,用戶無法看清,請求重新生成
  1. 跳轉到步驟2
  • 系統檢測到驗證碼輸入錯誤
  1. 系統提示驗證碼錯誤
  2. 跳轉到步驟2
  • 系統檢測到註冊信息有誤:ID已被佔用,Email已被註冊,密碼和確認密碼不一致
  1. 系統提示相關信息
  2. 跳轉到步驟2

用例場景分析

該註冊賬戶用例包含了一個主要場景和幾個擴展場景。用例角色只有兩個:用戶 、系統。主要場景描述了用戶如何與系統一步一步地交互,並且成功完成註冊,是一個正常的註冊流程。而擴展場景則描述了正常流程中的異常。

該用例沒有涉及非功能性需求(如安全性),也沒有詳細定義的用戶界面,用例也不會告訴我們使用什麼技術,關於安全性,你將會看法哦一些實際措施,不過於深入,關於用戶界面,將會給出原型圖,技術上就使用Spring。

3:界面原型(圖片來自於Maven實戰)

image

4:簡要設計

系統對外的接口包括生成驗證碼圖片,處理註冊請求,激活賬戶以及處理登錄等。

image

解釋說明:

generateCaptchaKey():生成驗證碼所需的Key

generateCaptchaImage(captchaKet: String):依據生成的Key生成驗證碼圖片,驗證碼以及驗證碼的圖片被傳送到客戶端,用戶通過肉眼識別再輸入驗證碼的值,隨着Key在傳送到服務端驗證。服務端做對比。

signUpRequst包含了註冊用戶所需要的信息,包括ID、email、顯示名稱、密碼、確認密碼等伴隨captchaKey的captchaValue構成一個註冊請求。

signUp():方法接收SignUpRequest對象,進行驗證。

activate():方法接收一個激活碼,查找對應的賬戶進行激活。

login():方法用來進行登錄

5:模塊結構

定義了系統核心的接口之後,基於功能分割和方便複用的原則,再對系統進一步進行劃分。這裏基於包名來劃分模塊。

很多有經驗的程序員不需要多少設計就能快速完成這樣的一個功能,不過我們是爲了學習Maven,微小的項目中見證大道理。大道至簡嘛。所以我們需要一個像模像樣的。有很多模塊的系統來演示Maven很多非常酷的特性。

賬戶註冊服務模塊劃分圖:

image

6:小結

至目前爲止,我們已經瞭解了用戶註冊服務的需求,大概的界面,簡單的接口設計以及模塊的職責劃分。這將會直接應用到後面Maven的實戰中,這個簡單的賬戶註冊服務也會一步步地實現和完善,從而體現Maven的實際功效。

 

 

 

 

 

發佈了51 篇原創文章 · 獲贊 26 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章