gpt4 book ai didi

model-view-controller - 在 Model-View-Controller 原则中,什么是 Frontend,什么是 Backend?

转载 作者:行者123 更新时间:2023-12-03 14:30:38 26 4
gpt4 key购买 nike

维基百科说:

MVC provides front and back ends for the database, the user, and the data processing components. The separation of software systems into front and back ends simplifies development and separates maintenance.



我仍然看不到模型- View - Controller 原理与前端和后端概念之间的联系。可以将访问数据库的模型视为后端,将 View 视为前端吗?

最佳答案

好的..首先是条款:

  • 前端 - 是对用户可见的部分:HTML、CSS、客户端 Javascript。这一切基本上都是“前端”。在桌面应用程序前端将是 GUI。
  • 后台 - 是看不见的部分。在您的 java、ruby、php 或任何其他服务器端代码的 Web 应用程序中。它可以被解释或编译,因为它的“如何”工作对它的“什么”没有影响。

  • 如果您阅读 GUI Architectures并研究一般的 MVC 模式,你会明白 MVC 不是后端和前端的分离 .尤其是谈到 MVC-inspired patterns ,我们用于 Web 应用程序。

    MVC 和相关模式的目标是将表示与领域业务逻辑分开。

    以下是 MVC 部分的基本职责:
  • 型号 - 业务逻辑
  • 查看 - 表示逻辑
  • Controller - 改变模型和 View 的状态(基于用户输入)

  • 举个例子:
  • twitter 的替代客户端应用程序
  • 使用 OAuth 进行身份验证
  • 用户可以输入不同的搜索词组
  • 通过 Twitter 的 REST API
  • 获取信息
  • 验证数据
  • 解析 JSON 响应
  • 操纵 DOM 来呈现信息

  • 这一切都可以通过客户端 JavaScript 完成。 您可以让 MVC 三元组运行“前端”! 同时,提供 REST API 的“后端”是一个类似 MVC 的结构。只有这一次 View 生成 JSON 响应,而不是 HTML。

    *Conclusion: You can use MVC pattern both on backend and frontend.**



    后经

    由于您一直在使用 Rails 构建一些应用程序,因此您对 MVC 的理解可能有些曲解。我之所以这么说是因为,由于 RoR 最初是作为原型(prototype)框架制作的(注意所有用于生成一次性代码的脚手架和其他功能),并且由于它的起源,Rails 实际上正在实现一个非常贫乏的 MVP 版本。

    我称之为“贫血”,因为他们削弱了 View(它应该是 MVP 中的被动对象,而不是简单的模板)和模型层(是的,它应该是一个复杂的层,而不是 ORM 实例的集合)。

    我建议您阅读两篇出版物以更好地掌握该主题:
  • Patterns of Enterprise Application Architecture .. 认真的开发者必读
  • A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System

  • 第二个是尽可能接近模式的初始定义。这与“GUI 架构”文章一起,应该为您提供一个坚实的基础。 PoEAA 书(硬读,顺便说一句)将为您提供扩展它的上下文。

    关于model-view-controller - 在 Model-View-Controller 原则中,什么是 Frontend,什么是 Backend?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066958/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com