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

MVC 是否真的好

  •  
  •   felixzhu · 2014-12-25 10:40:12 +08:00 · 4209 次点击
    这是一个创建于 3626 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚发现v2ex可以在首页发主题了,发个帖大家讨论讨论

    首先MVC框架到后来都会出现有很大View文件或者Service文件之类,以及很长的url配置

    然后就是纯php式的开发,一个接口一个文件,啥都不管,新人接手不用看太多之前的代码,不用管代码结构,就一直加新的文件来对应到新的接口就可以了,也不用配置url。反而新加功能效率更高,但是后期维护会很头疼。

    不知道大家怎么看,或者说怎么避免MVC中文件过大的问题。(这应该是通用话题,因为做iOS开发的时候也是各种方法来避免Controller过冗余的问题)

    很大的View文件(只是举个例子,实际业务很容易到千行):
    https://github.com/getsentry/sentry/blob/d50386e7aa3c4deae63906e85da01a98364c3ef4/src/sentry/web/frontend/groups.py

    冗长的url配置:
    https://github.com/getsentry/sentry/blob/d50386e7aa3c4deae63906e85da01a98364c3ef4/src/sentry/web/urls.py

    15 条回复    2014-12-26 17:00:33 +08:00
    datou552211
        1
    datou552211  
       2014-12-25 11:05:12 +08:00
    为了实现底层数据的持久化和频繁变更的业务逻辑,mvc是必须的。如果业务变得很大,可以把功能模块化,多mvc集合。开发上尽可能实现单一职责原则。
    zhyu
        2
    zhyu  
       2014-12-25 11:06:14 +08:00
    很大的 view 文件,冗长的 url 配置,为啥要写到一个文件里。。
    kisshere
        3
    kisshere  
       2014-12-25 11:15:43 +08:00 via Android
    我觉得大项目MVC 小项目VC
    regmach
        4
    regmach  
       2014-12-25 11:30:10 +08:00
    我倒是觉得m和c之间少了点什么..
    jinzhe
        5
    jinzhe  
       2014-12-25 11:34:08 +08:00
    MVC不是必须的,只是一种设计思想而已。没必要一定要这种方式。
    williamx
        6
    williamx  
       2014-12-25 12:20:59 +08:00
    这么说吧,就看你想把项目做到什么程度。

    一个人的项目,只要你能把控,有一个统一的设计思想,不会过几天自己都看不懂,那么就无所谓了。多个人合作,周期又长,那么尽量用大家都能理解的东西来做。
    darmody
        7
    darmody  
       2014-12-25 12:22:38 +08:00
    你们的业务不分模块的吗?
    felixzhu
        8
    felixzhu  
    OP
       2014-12-25 12:34:09 +08:00
    @darmody 肯定是分了,但是来新人的时候就需要重新学习模块划分,看之前的接口设计,还有各层的接口。就算分了不断的人来维护,最后也会变得很大

    我们领导就说PHP那样一个文件一个接口,更适合快速地开发,所有有点晕
    darmody
        9
    darmody  
       2014-12-25 12:43:08 +08:00
    @felixzhu 怎么想一个文件都不对啊。。每个模块业务相对独立,新人只要针对他负责的模块学习不是挺好的。。
    jianghu52
        10
    jianghu52  
       2014-12-25 12:45:56 +08:00
    mvc在我看来最大的好处在于,分离了前端与后端。
    设计师眼里的1像素在后端的我看来,完全看不出。你要让我去调前端页面,那真是逼死我了
    yakczh
        11
    yakczh  
       2014-12-25 12:48:11 +08:00
    业务方法的类还是分模块比较好, 不过分模块以后,必须要带上命名空间,不然autoload不好写
    felixzhu
        12
    felixzhu  
    OP
       2014-12-25 13:52:49 +08:00
    @jianghu52 有点这种感觉,但是我们这边php都是前端工程师。。
    xiaogui
        13
    xiaogui  
       2014-12-25 17:36:11 +08:00
    mvc 与 分模块、分层并不冲突。
    jc4myself
        14
    jc4myself  
       2014-12-25 17:49:32 +08:00
    就这么垂直地分功能,不会有问题么?
    sampeng
        15
    sampeng  
       2014-12-26 17:00:33 +08:00
    维护困难就一条,c层不要写成一个god。。。
    一般情况都是这样导致的维护困难。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3134 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:55 · PVG 21:55 · LAX 05:55 · JFK 08:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.