1. 程式人生 > 其它 >教育後臺管理系統:專案架構

教育後臺管理系統:專案架構

1 專案介紹

  拉鉤教育後臺管理系統,是提供給拉鉤教育的相關業務人員使用的一個後臺管理系統, 業務人員可以在這個後臺管理系統中,對課程資訊、講師資訊、 學員資訊等資料進行維護.

  

2 模組介紹

  開啟產品需求文件,我們一起去看一下課程管理模組中都包含哪些內容:

    <1>課程資訊頁面展示

    <2>課程營銷資訊配置

    <3>配置課時( 即課程內容管理)

3 前後端分離開發

<1>前後端分離架構介紹

  前後端分離,已成為網際網路專案開發的業界標準使用方式,將前端和後端的開發進行解耦。

  並且,前後端分離會為以後的大型分散式架構、微服務架構、多端化服務(各種客戶端,比如瀏覽器、車載終端、安卓、IOS等)打下堅實的基礎。

  前後端分離的核心思想就是:前端HTML頁面通過AJAX呼叫後端的API介面,並通過JSON資料進行互動。

<2>介面文件

什麼是介面文件?

  在我們的專案中,使用的是前後端分離開發方式,需要由前後端工程師共同定義介面,編寫介面文件,

  之後大家都根據這個介面文件進行開發,到專案結束前都要一直進行介面文件的維護。

為什麼要寫介面文件?

  專案開發過程中,前後端工程師有一個統一的檔案進行溝通交流,並行開發

介面規範是什麼?

  一個介面的描述至少包括下面幾項:

  • {
    "status": "0",
    "msg": "success"
    }

<3>前後端分離架構的優勢

1.前後端耦合的開發方式

這種方式中, Java程式設計師又當爹又當媽,又搞前端,又搞後端。 正所謂術業有專攻,一個人如果什麼都會,那麼他肯定也什麼都不精.

2.前後端耦合的缺陷 (以JSP為例)

  <1>UI出好設計圖之後,前端開發工程師只負責將設計圖切成HTML,需要由Java開發工程師來將HTML套成JSP頁面,修改問題的時候需要雙方協同開發,效率低下。

  <2>JSP頁面,必須要在支援Java的WEB伺服器上執行(如Tomcat、Jetty等),無法使用Nginx等(官方宣稱單例項HTTP併發高達5W),效能提升不上來。

  <3>第一次請求JSP,必須要在WEB伺服器中編譯成Servlet,第一次執行會較慢。 之後的每次請求,JSP都是先訪問Servlet,再用輸出流輸出的HTML頁面,效率沒有直接使用HTML高

3.前後端分離的開發方式

4.前後端分離的優勢

  <1>前後端分離的模式下,如果發現Bug,可以快速定位是誰的問題,不會出現互相踢皮球的現象

  <2>前後端分離,可以減少後端伺服器的併發 / 負載壓力。除了介面以外的其他所有HTTP請求,全部轉移到前端Nginx上,介面的請求,則轉發呼叫Tomcat.

  <3>前後端分離的模式下,即使後端伺服器暫時超時 / 宕機了,前端頁面也會正常訪問,只不過資料刷不出來而已。

  <4>前後端分離會更加合理的分配團隊的工作量,減輕後端團隊的工作量,提高了效能和可擴充套件性

4 技術選型

<1>前端技術選型

前端技術 說明
Vue.js 是一套用於構建使用者介面的漸進式JavaScript框架
Element UI庫 element-ui 是餓了麼前端出品的基於 Vue.js的 後臺元件庫, 方便程式設計師進行頁面快速佈局和構建
node.js 簡單的說 Node.js ,就是執行在服務端的 JavaScript 執行環境 .
axios 對ajax的封裝, 簡單來說就是ajax技術實現了局部資料的重新整理,axios實現了對ajax的封裝

<2>後端技術選型

後端技術 說明
Web層

a) Servlet:前端控制器

b) Filter:過濾器

c)BeanUtils:資料封裝

Service層 a) 業務處理
dao層

a)Mysql:資料庫

b) Druid:資料庫連線池

c) DBUtils: 操作資料庫

5 開發環境

開發工具

  後端: IDEA 2019

  前端: VS code

  資料庫: SQLYog

開發環境

  JDK 11

  Maven 3.6.3

  MySQL 5.7