MVVM-iOS开发的神化与浮躁

1,436 阅读3分钟

什么是MVVM?


1. MVVM是马丁·福勒的PM设计模式的变体
2. MVVM和PM都来自MVC模式
3. MVVM的组成部分是 模型 视图 视图模型 绑定器
4. MVVM没有MVC模式的控制器

长话说短,直奔主题


现在iOS开发招聘中经常会出现以下要求:

x.能够独立开发高性能App
x.熟悉MVVM等设计模式

面试官也很喜欢问对MVVM有了解吗?

如果他们真的了解MVVM就不会这样了,或者说问你MVVM的面试官也只是一知半解 新颖的东西就是好的适合的,这其实是一个错误的观念

其一,MVVM不是一个新东西,微软的WPF和Silverlight架构师之一John Gossman于2005年在他的博客上发表了MVVM

其二,MVVM组成部分中有一个绑定器iOS开发需要额外引入RxSwift之类的响应式框架来扮演响应器这个角色,响应式框架这是一个额外负担

其三,MVVM的创造者John Gossman本人认为实现MVVM的开销对于简单的UI操作是过度的,当更大的程序应用时,则会导致相当大的内存消耗

其四,2005就出现的MVVM,第一代iPhone于2007年1月9日出现,苹果官方和斯坦福iOS开发视频都在主推MVC架构,如果MVVM真的是一个更优秀的架构的话,肯定早已被广泛推广

总结,MVVM架构不是新的东西,会带来不必要的开销,不适合iOS平台开发,高性能App和应用MVVM是相悖的,所有要求MVVM和面试询问MVVM的都是不懂装懂的瞎扯淡

优化的代码方式有很多,为什么要选一个会加剧内存消耗和增加调试难度的小众框架来解决?换句话说,代码优化和架构有什么必然联系?同一个人在不同的架构下写代码,会在某一个架构下表现的更为优秀?

所以,也不知道哪里来的自信,让这些面试官和招聘者都相信MVVM是更先进更适合iOS开发的架构

结语,不要相信国内所谓的大神言论,国内没有神,国外也没有神,先行者描述了自己的体验,并不代表他们就是对的,就像冥王星不再是行星

提醒,不要和面试官说这些,因为这样说,你很大几率会被打上水平低的烙印

可能你会认为我都是胡说八道,毫无依据,我只能告诉你,我不是所谓的大神,也没有高深的技术,但是这一切,百度百科都没有告诉你,知乎,简书和掘金等等一系列的MVVM相关的垃圾文章也没有告诉你,只有我,大大方方的告诉你了

而我,只是维基百科的搅拌工,一个坦率的搅拌工,一个德智体全面发展的三好码农

引用资料: zh.wikipedia.org/wiki/MVVM