MVVM 难以调试体现在哪儿?

2022-01-03 16:37:23 +08:00
 sillydaddy

似乎 MVVM 难以调试,至少相对于 MVP ,是网上的普遍看法。具体体现在哪儿呢?我之前用过 MVP 模式,最近在看 MVVM 。

bug 变得难以调试,当遇到了异常,可能是 view 的问题,也有可能是 model 的问题。数据绑定使得 bug 快速传递到其他地方,要定位原始出问题的地方就变得不那么容易了。
Debugging is not easy in MVVM due to the complex layering patterns and the architectural style.

感觉 MVVM 模式很好啊:view 和 viewmodel 在很大程度上是解耦合的,也就方便了 view 的单元测试,为什么还会难以调试呢?

是数据双向绑定导致的难以调试?但数据也可以 log 啊,可以把 view 依赖的 viewmodel 的数据条目打印出来,时机就是这些数据变化时。也就几行代码的事。

3519 次点击
所在节点    程序员
22 条回复
forgottencoast
2022-01-04 19:36:26 +08:00
没用过其他的,就我有限的 WPF 经验来说,WPF 的 MVVM 挺好用的。
但是这东西确实增加复杂度啊。
hlayk
2022-01-05 10:23:51 +08:00
从个人的实际使用经历来看( Android ) MVVM 并没有什么不好调试 双向绑定的数据该加断点该加 log 加 log 遇到难以排查的 bug 多关注下 viewmodel 对象的 id 和相关的生命周期 这一套下来也没什么难以调试的 但是有一点 databinding 这玩意绝对会增加调试的难度 目前项目已经完全弃用 dataBinding 这一架构我们只关心数据的传递 但当数据流入到 dataBinding 中 debug 和 log 都加不了 何谈调试 当数据流向变得明确 当数据可被观测 当数据可被 debug MVVM 也就不存在难以调试的说法(以上只是个人的使用体验)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825916

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX