【问题标题】:Linking MVC terms, front-end, back-end and data processing链接 MVC 术语、前端、后端和数据处理
【发布时间】:2016-02-05 12:39:36
【问题描述】:

在将这些术语联系在一起时,我有点困惑。首先,让我解释一下我对这些术语的理解,然后是我的查询:

  • 前端:用户看到的内容(HTML、css、javascript 等)。也可以称为PresentationLayer(对应模板、css文件等)
  • 后端:代码库的其余部分。

所以,根据我的理解,整个MVC(模型-视图-控制器)架构将属于Back End

  • 模型充当Data Access
  • 视图充当Applicationlogic
  • Controller -- 不确定这对应什么(我知道这是指 Django 上下文中的 url 映射)

查询:

  1. 我的理解是否正确,还是我试图将 3 层架构(数据、应用程序(逻辑)、表示)与 MVC 混淆?
  2. 对于数据层,我通过 MVC Web 架构代码库外部的脚本填充我的数据库。这些脚本在加载到数据库之前获取和处理数据。我应该如何称呼这些数据获取和处理脚本集(就软件架构而言)?

【问题讨论】:

    标签: django model-view-controller architecture


    【解决方案1】:

    您正试图从软件开发的悠久历史中汲取大量术语,并进行简单的连贯统一......可能不会很好地工作......

    前端与后端通常是指用户与之交互的事物与后端所指的“其他一切”。但这里没有强硬的路线。有些人会考虑模板后端,有些人只会考虑数据库后端......这个术语太糊涂了,没有太多价值。

    你对MVC的理解有点不对……

    模型绝对是数据访问通常发生的地方,但它通常也有您的应用程序逻辑。这里的想法是,您的应用程序独立于围绕它的 Web 应用程序而存在。

    视图应该只有演示和数据输入。它不应该包含重要的应用程序或业务逻辑。您希望将尽可能多的内容转移到模型中。某些逻辑确实不可避免地会渗透出来,但应该尽量减少。

    Controller 是模型和视图之间的接口。它是从视图中获取输入的粘合剂,将其传递给模型,业务逻辑在模型上作用。根据模型控制器的响应,控制器的职责是向视图提供数据。

    最后,加载数据库的脚本与您的 Web 应用程序架构是正交的。它们听起来像 ETL 脚本,但我必须更多地了解它们才能将它们放入您的架构中。

    【讨论】:

    • 感谢 Rob 的回答。我有一些跟进基于文件在 django 中的分布方式:1)models.py 只包含 db 结构和数据修改功能 2)views.py 包含主要的应用程序和表示逻辑——也许我可以将它解耦成二:logic.py(用于逻辑)和views.py(用于展示)。
    • 我想到了 ETL,但我不确定我是否会将这些脚本归类为 ETL。让我为您提供有关这些脚本的更多信息:假设我正在构建一个财务分析网站。这些数据脚本提取数据,在数据上运行多个模型以分配不同类型的概率/分类等(基本上更多的数据处理而不是转换),然后将这些高度“丰富”的数据加载到数据库中。
    • 我仍然称它为 ETL。 “改造”是一个宽泛的范畴。
    猜你喜欢
    • 2012-07-30
    • 2013-08-04
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    相关资源
    最近更新 更多