V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yafoo
V2EX  ›  程序员

现在 MVC 架构过时了吗?

  •  1
     
  •   yafoo ·
    yafoo · 2020-01-19 22:01:59 +08:00 via Android · 10467 次点击
    这是一个创建于 1799 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人技术不行,但是喜欢模仿,最近在开发一个 mvc 框架,但是周边人都说 mvc 过时,mvc 架构,你们怎么看?对一般的中小型网站,有比 mvc 更好的架构吗?
    第 1 条附言  ·  2020-01-20 09:40:28 +08:00
    好像漏了最重要的信息,我想讨论的的这个 MVC 指的是后端的 MVC。

    在前端领域现在发展出领先的 MVVM 架构,我想问的是,在后端领域,对于中小型网站来说,现在有没有比 MVC 更先进的架构模式?前后端分离,后端输出 api,我觉得本质上 api 数据也是个 view,只不过是个简化的 view,没有样式而已。
    40 条回复    2020-01-20 16:26:00 +08:00
    tanranran
        1
    tanranran  
       2020-01-19 22:09:04 +08:00
    架构这种东西 更萝卜青菜一样
    没有谁比谁更好
    haishiwuyuehao
        2
    haishiwuyuehao  
       2020-01-19 22:10:12 +08:00
    有比 mvc 更好的架构吗?看业务看场景
    mvc 过时了吗?如果说不适应市场就是“过时”。那么 mvc 绝不过时
    加油,!
    hitsmaxft
        3
    hitsmaxft  
       2020-01-19 22:16:49 +08:00
    MVC 适合静态页面的时代, 如果输出只有 JSON, 要 view 干嘛?
    lhx2008
        4
    lhx2008  
       2020-01-19 22:19:03 +08:00
    前后端分离就没 view 了,mvc 说的就是视图和控制器分离
    yafoo
        5
    yafoo  
    OP
       2020-01-19 22:25:01 +08:00 via Android
    @hitsmaxft
    @lhx2008 那就是 mc 架构,mvc 同样能胜任,应该还能流行很久吧
    charlie21
        6
    charlie21  
       2020-01-19 22:26:03 +08:00   ❤️ 2
    西红柿炒鸡蛋过时了么?
    yafoo
        7
    yafoo  
    OP
       2020-01-19 22:26:48 +08:00 via Android
    另外,前后端分离是主流,可现在又开始流行 ssr,服务器端渲染,感觉把前后端又糅合到一块了,这样真的好吗?
    fox0001
        8
    fox0001  
       2020-01-19 23:14:41 +08:00
    主要看谁去维护吧。中小项目没必要学人家前后端分离吧。
    LittleYangYang
        9
    LittleYangYang  
       2020-01-19 23:54:43 +08:00
    @yafoo #7 好像不做 ssr 的话,AJAX 获取的数据搜索引擎爬虫爬不到
    zhuangzhuang1988
        10
    zhuangzhuang1988  
       2020-01-20 00:41:38 +08:00
    没.
    ericgui
        11
    ericgui  
       2020-01-20 05:48:37 +08:00
    前后端分离的话,后端就剩下 MC 了,
    V 就交给 vuejs,reactjs 等

    前端的话,没有一个公认的模式,反正各种奇葩模式都存在
    caowentao
        12
    caowentao  
       2020-01-20 07:07:51 +08:00 via iPhone
    嵌入式裸机开发,做一些仪表,也在用 mvcs 程序框架。很好的解耦了操作逻辑和视图渲染。
    xuanbg
        13
    xuanbg  
       2020-01-20 07:34:51 +08:00
    MVC 是一种前端的架构模式,不过现在前端流行 MVVM 模式而非 MVC。前后端分离以后,View 肯定是没有了,Model 也没了,Controller 倒是还在,但也仅仅是叫 Controller 而已。后端事实上已经没有什么 MVC 可言了。
    Mutoo
        14
    Mutoo  
       2020-01-20 07:47:16 +08:00
    mvc 过时了,现在流行的是 facebook 提出的 flux 以及类 flux 的单向数据流模型。
    areless
        15
    areless  
       2020-01-20 09:19:33 +08:00 via Android
    这种存在 40 多年的东西,跟流不流行~过不过时没关系了。早已是软件工程里最强健的方案之一了。
    CodeXx
        16
    CodeXx  
       2020-01-20 09:21:37 +08:00
    @xuanbg Model 咋没了呢
    Kilerd
        17
    Kilerd  
       2020-01-20 09:22:49 +08:00
    view 没有了,然后就变成了 viewObject
    krystal9527
        18
    krystal9527  
       2020-01-20 09:24:47 +08:00
    C 语言过时了吗?
    yafoo
        19
    yafoo  
    OP
       2020-01-20 09:28:57 +08:00
    @Mutoo 我去看看 flux
    BluesQu
        20
    BluesQu  
       2020-01-20 09:29:19 +08:00
    抛开需求谈架构 都是耍流氓
    GrapeCityChina
        21
    GrapeCityChina  
       2020-01-20 09:30:06 +08:00
    没有任何一个技术是过时的,就好像现在还有很多人在使用 VB 一样
    keepeye
        22
    keepeye  
       2020-01-20 09:31:14 +08:00
    没有过时,并不是所有项目都必须得用前后端分离的开发方式
    yafoo
        23
    yafoo  
    OP
       2020-01-20 09:42:02 +08:00
    @BluesQu 需求就是中小型常规网站
    Huizhen
        24
    Huizhen  
       2020-01-20 09:43:17 +08:00
    EveryBody “MVP”(最小可行性产品)关注下
    yafoo
        25
    yafoo  
    OP
       2020-01-20 09:52:29 +08:00
    @Huizhen 谢谢,我去看看
    slwchs
        26
    slwchs  
       2020-01-20 09:57:18 +08:00
    抛开场景谈架构(框架)都是耍流氓
    MaxTan
        27
    MaxTan  
       2020-01-20 10:23:01 +08:00
    MVVM 也不是现在前端领域发展出来的什么领先架构,十几年前的 WPF 就已经在用了。 现在的 web 前端都是在 nodejs 的加持下重新造轮子。

    拿现在的大环境相比,mvc 那套确实有点显得过时,不过合适就好
    Smilencer
        28
    Smilencer  
       2020-01-20 10:38:24 +08:00   ❤️ 1
    mvc 只是一种思想,前后端分离了,view 不还在吗,mvc 思想不还在吗
    hotsprings
        29
    hotsprings  
       2020-01-20 10:44:47 +08:00 via iPhone
    @caowentao 能否介绍下,嵌入式逻辑下如何作用 mvc 架构呀,比较感兴趣
    wangyzj
        30
    wangyzj  
       2020-01-20 10:56:40 +08:00
    一个名词而已
    再说没有所谓过时只说,只有哪种业务场景更适合什么架构
    caowentao
        31
    caowentao  
       2020-01-20 12:19:49 +08:00 via iPhone
    @xuanbg 确实前后端分离架构,后端没有 mvc 可言,后端应该剩下服务集合和数据库管理等
    caowentao
        32
    caowentao  
       2020-01-20 12:20:57 +08:00 via iPhone
    @CodeXx model 可以理解为数据库,应该还是在的
    caowentao
        33
    caowentao  
       2020-01-20 12:22:20 +08:00 via iPhone
    @BluesQu 确实,没有最好的架构,只有最适合需求的架构。架构也是活的,需要根据需求的变化做演进
    caowentao
        34
    caowentao  
       2020-01-20 12:31:06 +08:00 via iPhone
    @hotsprings 核心的思想就是把 view 视图中可变的内容,抽象成变量(model),业务逻辑 controller 操控变量,视图对变量做可视化渲染。
    https://i.loli.net/2020/01/20/S1bR6yogcNBiKTZ.jpg
    closedevice
        35
    closedevice  
       2020-01-20 12:47:35 +08:00
    如果将 MVC 返回为分层的思想,那它将永不过时
    caowentao
        36
    caowentao  
       2020-01-20 13:52:29 +08:00 via iPhone
    @caowentao 变量即数据模型 /数据库
    youngxhui
        37
    youngxhui  
       2020-01-20 14:13:41 +08:00
    为什么非要把 view 狭义的理解为页面呢? json 也是视图啊
    wangxiaoaer
        38
    wangxiaoaer  
       2020-01-20 14:14:47 +08:00 via Android   ❤️ 1
    @lhx2008 json xml 不是 view 吗
    huntcool001
        39
    huntcool001  
       2020-01-20 16:14:28 +08:00
    为啥国内现在基本都前后端分离了,但是国外的好像很多还是全栈?
    GPLer
        40
    GPLer  
       2020-01-20 16:26:00 +08:00
    @huntcool001 我感觉是因为国内公司以手机移动端 APP 为主,而且不欢迎搜索引擎抓取。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   945 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:50 · PVG 06:50 · LAX 14:50 · JFK 17:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.