2015-11-04 105 views
0

將這些術語鏈接在一起時,我有點困惑。首先,讓我解釋一下我的這些術語的理解,其次是我的查詢:鏈接MVC術語,前端,後端和數據處理

  • 前端:什麼用戶看到(HTML,CSS,Javascript代碼等)。也可以稱爲Presentation圖層(對應於模板,css文件等)
  • 後端:其餘的代碼庫。

所以,按照我的理解,整個MVC(模型 - 視圖 - 控制器)架構將下降Back End下有:

  • 型號充當Data Access
  • 查看充當Applicationlogic
  • 控制器 - 不知道這對應於(我知道這是指在Django的背景下URL映射)

查詢:

  1. 我的理解是正確的,還是我試圖混淆3-多層架構(數據,應用程序(邏輯),演示文稿)與MVC?
  2. 對於數據層,我通過MVC Web體系結構代碼庫外部的腳本填充我的數據庫。這些腳本在加載到數據庫之前獲取並處理數據。我應該怎麼稱呼這些數據提取&處理腳本(根據軟件架構術語)?

回答

0

您正在試圖採取了很多術語,從軟件開發的悠久歷史,並進行了簡單的連貫統一。大概行不通的真正的好...

前端VS後端通常指的是用戶與之對接的事物與後端所指的「其他事物」。但是這裏沒有強硬的線條。有些人會考慮後臺模板,有些人只會考慮數據庫的後端......這只是一個術語太過於粗糙,以至於沒有多少價值。

你的MVC理解是有點過......

型號絕對是其中的數據訪問,通常會出現,但它也有,通常你的應用程序邏輯。這裏的想法是,您的應用程序獨立於圍繞它的Web應用程序而存在。

該視圖應該只有演示文稿和數據輸入。它不應該包含重要的應用程序或業務邏輯。您希望儘可能多地將其轉換爲模型。一些邏輯不可避免地會流血,但它應該被最小化。

控制器是模型和視圖之間的接口。它是從視圖中接受輸入的粘合劑,將其傳遞給模型,業務邏輯作用於該模型。根據模型控制人員的責任,將數據提供給視圖。

最後,加載數據庫的腳本與您的Web應用程序體系結構正交。他們聽起來像ETL腳本,但我必須知道更多關於他們將它們放在您的架構。

+0

感謝羅布的答案。我有幾個後續步驟根據如何在django中分發文件:1)models.py僅包含數據庫結構和數據修改功能2)views.py包含主應用程序和表示邏輯 - 也許我可以將其解耦兩個:logic.py(用於邏輯)和views.py(用於演示)。 –

+0

我想到了ETL,但我不確定我會將這些腳本歸類爲ETL。讓我給你更多關於這些腳本的信息:假設我正在構建一個金融分析網站。這些數據腳本提取數據,在數據上運行幾個模型以分配不同類型的概率/分類等(基本上更多的是數據處理而不是轉換),然後將這些高度「豐富」的數據加載到數據庫中。 –

+0

我仍然稱之爲ETL。 「轉型」是一個廣泛的範疇。 –