V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
fakesnow
V2EX  ›  iDev

有多少人在实际项目中采用 MVVM 模式

  •  
  •   fakesnow · 2015-12-25 13:36:48 +08:00 · 4468 次点击
    这是一个创建于 3264 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ViewController 越写越重

    -> MVVM

    22 条回复    2015-12-26 20:56:55 +08:00
    littleshy
        1
    littleshy  
       2015-12-25 15:12:11 +08:00   ❤️ 2
    哈哈。 WPF 项目表示一直是 MVVM 项目,嘿嘿嘿……
    ouyangzetao
        2
    ouyangzetao  
       2015-12-25 15:13:25 +08:00
    至少,我是坚持不下来,这种模式。
    Wangxf
        3
    Wangxf  
       2015-12-25 15:17:24 +08:00
    只要涉及到有大量数据计算, dom 操作的,偏业务的就可以 mv *,我现在就展示型的 jq 或者只需要少量 js 的直接原生,业务类型的应用久 mv *
    chaoxn
        4
    chaoxn  
       2015-12-25 16:07:36 +08:00
    现在在自己的练手项目中用了 RAC+MVVM, 挺爽的. 但是公司项目没敢用.
    yuuko
        5
    yuuko  
       2015-12-25 16:25:00 +08:00
    公司的项目一直用 avalon ,比 jq 爽很多
    fakesnow
        6
    fakesnow  
    OP
       2015-12-25 16:27:22 +08:00 via iPhone
    @yuuko 去哪儿网的那个大神写的?
    fakesnow
        7
    fakesnow  
    OP
       2015-12-25 16:27:51 +08:00 via iPhone
    @ouyangzetao 让你觉得不舒服的地方是什么呢
    fakesnow
        8
    fakesnow  
    OP
       2015-12-25 16:28:28 +08:00 via iPhone
    @chaoxn 有没有开源 看看
    PrideChung
        9
    PrideChung  
       2015-12-25 16:32:21 +08:00
    曾经实践过一段时间,后来放弃。因为我发现这样做跟 MVC 没有本质区别,无非就是把乱糟糟的代码挪了个地方而已

    最近看了这篇文章,深有同感 http://khanlou.com/2015/12/mvvm-is-not-very-good/
    longaiwp
        10
    longaiwp  
       2015-12-25 16:52:36 +08:00
    话说写 WPF 和 UWP 的人有别的选择么(笑
    LittleMK
        11
    LittleMK  
       2015-12-25 16:54:51 +08:00
    WPF 啊,天生就是 MVVM
    1023400273
        12
    1023400273  
       2015-12-25 16:55:48 +08:00
    表示 Android Data Binding 的 MVVM 也不习惯,感觉并没有减轻我的工作量
    beneo
        13
    beneo  
       2015-12-25 17:03:30 +08:00
    WPF 是啥?
    fakesnow
        14
    fakesnow  
    OP
       2015-12-25 17:30:03 +08:00 via iPhone
    @littleshy 23333
    fakesnow
        15
    fakesnow  
    OP
       2015-12-25 17:31:31 +08:00 via iPhone
    @longaiwp 23333
    fakesnow
        16
    fakesnow  
    OP
       2015-12-25 18:29:35 +08:00
    @PrideChung 我去看看这篇文章
    fakesnow
        17
    fakesnow  
    OP
       2015-12-25 18:30:01 +08:00
    @1023400273 在结构上有没有帮助呢
    jackisnotspirate
        18
    jackisnotspirate  
       2015-12-25 23:19:07 +08:00
    VIPER 各个模块功能分的更细。
    zhc
        19
    zhc  
       2015-12-26 00:48:53 +08:00 via iPhone
    这东西纯属扯淡,典型的 middleman 。那么难用还在坚持只能说还没看透。有些逻辑应该放到 model 层而不是所谓的 viewmodel 。
    IndexXuan
        20
    IndexXuan  
       2015-12-26 07:25:20 +08:00 via iPhone   ❤️ 1
    @zhc 说的真是醉了。。。不说别的,中小型应用特别是表单型,后台管理型项目,用 mvvm 双向数据绑定不要太爽。它改变了开发应用的思维模式,数据和状态为核心,一种大局观而不是局部的大量的手工思考和维护。就算你说做大了或者开发者水平不行,会和 mvc 或者其他一样把 state 搞混乱了,也有很多数据流约束构架可用,写起来不要太清晰,很约束。

    不是说 mvvm 多神,代码还是靠个人,但是对可维护性,思考的难度的简化,上手有帮助就很好了,至少前端 gui 这种模式得到了事实的考验。上来就乱喷却没看见什么理由也是醉了。。。
    zhc
        21
    zhc  
       2015-12-26 10:35:20 +08:00
    @IndexXuan 我说的是 ios 开发, 不过从你讲的所谓的双向数据绑定估计是没把 controller 是干嘛的理解清楚。
    IndexXuan
        22
    IndexXuan  
       2015-12-26 20:56:55 +08:00 via iPhone
    @zhc 那写久了剪不断理还乱的 controllerssssss... 您继续,你使用得当,理解入木三分,拆分合理,慧眼识真,永不需要重构,我等佩服。希望广大开发者都如大神般思路清晰,控制精细,构架稳如狗!怪不得 ios 不卡。。。
    发自 controller 阳顶天 逃
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2555 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:23 · PVG 18:23 · LAX 02:23 · JFK 05:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.