社區平臺系統開發總結(2017.6.8)

本文所實現的社區平臺系統,是基於模板框架的。首先由rapid-generator生成操做代碼,而後在此基礎上面添加業務邏輯代碼,固然了,前端頁面設計是必然要寫的,先後端通訊的ajax代碼也是必需要手動寫的。生成器會生成一個數據庫單表的增刪改爲的html頁面,通常狀況,咱們須要稍做修改,纔可應用到咱們的系統中。社區平臺是一個通用的答疑係統,主要針對某一個軟件,或者某一個項目,又後者某一個長期的活動,用來進行的成員與管理員之間消息的通知,或者成員對某項內容的疑惑的說明,由管理員或其餘成員進行解釋(也就是回答該成員所提出的問題)。html

1.1 功能需求分析

本文決定開發一個社區平臺系統,功能相似於一個論壇,社區有一個主題,用戶之間能夠圍繞這個主題,進行討論,用戶若是對某個事情,存在一些疑問,能夠在平臺中提出來,懸賞必定的金幣,其餘用戶的回答若是被你採納,那麼該懸賞金幣將會從你的帳號劃給被採納答案的用戶。用戶角色分爲管理員和普通註冊用戶,以及遊客,三種類型。前端

功能需求將分爲如下幾點:ajax

一、遊客對內容的瀏覽,但不能評論,不能關注其餘用戶數據庫

二、遊客能夠註冊、登錄,而後成爲普通用戶後端

三、普通用戶能夠發表問題,能夠對已有的問題,提出回答,也能夠關注其餘用戶api

四、普通用戶若是有滿意的回答,能夠進行採納,懸賞積分自動轉移到被採納答案的用戶帳戶中。安全

五、管理員能夠整理髮布一些,經常使用的解決方案,對一些比較常見的問題,進行整理概括,寫一篇文章單獨描述。服務器

六、普通用戶,可對管理員發佈文章提出問題,管理員看到,可進行想應修改多線程

用例圖如圖1.1所示:框架

圖片

圖1.1 用例圖

其中管理員能夠進行右邊的全部操做,線條畫上去比較混亂,就省略了。關於其餘的非功能性需求,你們能夠參考第二章節,裏面有比較詳細的介紹。本系統做爲一個例子,沒有考慮的很周全,一些使用比較多的功能,若是系統裏面沒有,還請見諒。本文對該系統的一些細節進行了處理,有興趣的話,能夠去個人項目中尋找一下。 

1.2 業務邏輯設計

   廣泛來說,業務邏輯無非就是數據的增刪改查,實際上,增刪改查確實是業務的重要部分,可是當涉及到表與表之間的聯繫,涉及到事務,涉及到多線程安全的時候,涉及到權限認證受權的時候,業務邏輯將會變得至關的複雜,所須要投入的時間也會增長。除了程序自己的業務邏輯,咱們的客戶提出的需求業務的實現,也多是複雜的,甚至是不合理的,這時候就要求咱們可以識別出不合理的業務,那些是程序能夠幫助完成的,而那些事程序不能代替人手工完成的。爲了咱們的客戶方便,咱們又該怎樣設計咱們的產品,產品的質量,決定於客戶的滿意度,如何給客戶一個滿意的,符合要求的,容易上手使用的項目產品,是尤其重要的事情。

1.2.1 系統通用處理流程

由前端Html頁面發起Ajax動做請求,到達服務器,有servlet處理程式調用業務處理模塊,進行處理,並輸出Json格式的處理結果。

流程圖如圖1.2所示:

圖片

圖 1.2 系統通用流程圖

其中的servlet處理程式,將會調用業務邏輯模塊,進行業務處理。通常業務處理的流程是:先進行用戶登錄認證,在進行受權認證,最後,接受客戶端請求參數,進行參數驗證,驗證經過後,才能進行業務處理,業務處理包含數據庫操做,經過調用數據庫底層服務模塊,進行增刪改查。

1.2.2 頁面設計特點展現

本文實現的社區平臺,色調主淡藍色,灰色輔助,採用浮動Div產生塊狀的效果,摒棄了傳統項目中,使用表格或者列表風格的設計方式。使得看起來更符合當下流行的設計方式。下面給出幾張截圖,來講明這次開發的前端設計的主要內容,相關代碼參見具體項目。

一、淡藍色風格首頁,如圖.所示

圖片

圖1.3首頁圖展現

二、彈出窗風格,如圖1.4所示

圖片

圖1.4頭像上傳展現

三、列表風格,如圖1.5

圖片

 

圖1.5文章管理展現 

 

1.3 先後端通訊設計

 

  先後端通訊,做爲數據通訊的重要部分,傳輸速度的快慢,對用戶體驗有很是重要的影響。在500k每秒網速的前提下,網頁可以在4秒內相應,算是完成了需求。因爲採用了Json格式的數據,因此減小了傳輸的壓力。谷歌研發了一個新的數據傳輸格式,protobuf,能大大減小數據的大小,當傳輸速度成爲瓶頸的時候,能夠考慮使用此種技術,該技術是二進制傳輸,只傳輸數據,不包含格式。本文采用的仍是傳統的Json格式進行傳輸的。
    客戶端服務端的通訊模型如圖1.6所示:

 

圖片

圖1.6 客戶端與服務器的通訊模型

    簡單的來說,前端請求url的html頁面,通過認證之後服務器返回頁面,並於ajax產生數據操做請求,由服務器獲取請求,通過層層認證,並處理業務邏輯,產生執行結果,返回給客戶端,客戶端拿到結果,進行處理並進行相應的頁面渲染。  ===================>End 
相關文章
相關標籤/搜索