V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ccw55
V2EX  ›  分享发现

刚刚在 github 上看到一个项目,罗列了一些 mvc 框架的缺点,针对这些缺点给出了自己的解决方案。既然 mvc 缺点明显,为啥当下大多项目技术选型还是离不开 mvc?请各位大鸟轻喷。

  •  1
     
  •   ccw55 · 2017-06-26 09:12:11 +08:00 · 3037 次点击
    这是一个创建于 2709 天前的主题,其中的信息可能已经有所发展或是发生改变。
    9 条回复    2017-06-26 14:45:32 +08:00
    tony1016
        1
    tony1016  
       2017-06-26 09:16:30 +08:00
    如果一件事情 30 分钟内内解决,就不要用什么 mvc 框架,这谁说得来着??
    Jameson1559
        2
    Jameson1559  
       2017-06-26 10:31:50 +08:00
    说一点个人的想法- -
    大型项目通常多人维护,如果其中大部分开发者擅长的都是 MVC (或者只知道 MVC )那么不出意外,这个项目最终就会定位 MVC 模式,因为
    - “我们都用 MVC,就你不用,你是不是搞特殊?”
    - “现在让所有人放弃 MVC 学其他的模式,你考虑过时间成本吗?”
    不过 MVC 这东西啊……不得不说,用来快速的搭建项目还是蛮合适的,不过还是挑项目的,比如你要是做个视频剪辑 App 还用 MVC 也是挺有趣了
    whileFalse
        3
    whileFalse  
       2017-06-26 13:09:00 +08:00
    Java 之所以是企业级编程语言的一个重要原因就是,程序员好找,并且即使是水平一般的程序员,只要用上合适的框架,也不会出大问题。

    任何框架都有缺点,也一定会有能解决这些缺点的新框架。这是因为,任何框架都是为了一个特定的场景,在一个特定的技术环境下设计出来的。当外界技术环境进步了的时候,框架可能老去被新的框架代替;如果说因为 [使用者的场景] 和 [框架设计来解决的场景] 不一致导致使用者认为框架不好用,那是另外的问题。

    比如楼主说的这个例子。楼主的解决方案中用到了 Groovy,这在以前是没有的。这就属于技术环境进步。而这同时也导致了场景变更:目前的大环境下,掌握 Groovy 的人毕竟还是少。而 mvc 本就是为更好的多人协作设计的。我自己写小程序基本不用 mvc。

    另外就是,楼主提到的解决方案没有大规模使用过,谁知道还有什么坑啊。

    新技术总是美好的,但把它放到一个稍大规模的场景下,推行新技术就真的有难度。
    wangdu2012
        4
    wangdu2012  
       2017-06-26 13:50:23 +08:00 via iPhone
    @whileFalse 装逼不到位啊。
    kslr
        5
    kslr  
       2017-06-26 13:59:30 +08:00 via Android
    优点确定都是相对于环境
    kslr
        6
    kslr  
       2017-06-26 13:59:42 +08:00 via Android
    确定 = 缺点
    esmdxx1
        7
    esmdxx1  
       2017-06-26 14:08:27 +08:00 via iPhone
    mvc 只是 web 项目,windows 桌面程序和 app 都不会用 mvc
    kokdemo
        8
    kokdemo  
       2017-06-26 14:41:58 +08:00
    @esmdxx1 你这说的就不对了,mvc 本来就是传统软件领域的设计模式之一啊,怎么叫桌面程序和 app 都不用呢
    mahui
        9
    mahui  
       2017-06-26 14:45:32 +08:00
    读了那个项目的 readme,
    首先数落了 MVC 缺点,然而那些似乎是某些项目结构的缺点,而非 MVC 架构模式的缺点。
    介绍了本身项目的优势及特征,然而还是没离开 MVC。感觉该项目似乎只能说是一堆工具包而已,并非其所谓的 MVC
    反模式,更非一种新模式。
    质疑之前先了解,建议好好读读 MVC 的 wiki: https://zh.wikipedia.org/wiki/MVC。
    MVC 不是银弹,但也没那么不堪。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3295 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:48 · PVG 20:48 · LAX 04:48 · JFK 07:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.