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

现在 MVC 架构过时了吗?

  •  1
     
  •   yafoo
    yafoo 2020-01-19 22:01:59 +08:00 via Android 10991 次点击
    这是一个创建于 2142 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人技术不行,但是喜欢模仿,最近在开发一个 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     Solana     786 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:23 PVG 04:23 LAX 12:23 JFK 15:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86