公司13年9月份成立,到今天已有近3000人,本来是已ios开发工程师身份进入公司的我,也不得不感叹公司在开发方面的任性-所有项目全部外包。这也就导致了我的工作重心从功能实现上转移到了性能优化和用户体验上,有时候甚至会参与到需求分析和产品的设计环节中,这些改变让我欣喜若狂。
以前只是根据文档去写实现代码,而现在,我甚至可以去提议要什么,思考为什么,建议怎么做,再面对同样的代码,我可以去推敲,去思考,去优化,去关注代码之外的东西如用户体验。这些改变也导致了我编码习惯和代码风格的改变。这也是我以后会写的,这里先介绍下目录吧:
一、最差劲的ViewController
ios也有MVC?不是一个controller就可以解决所有的事情吗?刚开始做开发时,我是这么想的,也确实是这么做的,所代码一团糟:数据没有,去controller找原因;界面没显示,去controller找原因;方法没出发,去controller找……
我相信现在有许多新人也会犯这种错误,所以强烈建议新人看看这篇文章,有不同意的咱们可以一起学习。当然了,如果哪位前辈有时间原因看看,顺便给指点指点,我一定会非常感谢的。
二、规范许多却依旧差劲的ViewController
我的ViewController第一次进化变哑火了,说到底还是本事不济,没敢一次改太多,怕自己掌控不了。说到底这才的controller并没有实质性的改变,它只是变得更易读,更清晰了,但这也正为下一次改变打下了坚实的基础。试想,如果你连哪部分是做什么的都分不清,又谈何拆分呢?
还记得小学时老师让说明该段落在全局起到的作用时你的回答吗,对,没错,就是承上启下。这篇文章正式链接一三的桥梁,同时为下一次升级做足了准备。
三、被拆分的ViewController
MVC原来真的可以有,但貌似平日大部分新手只实现了MV,只是将model 跟viewcontroller拆分开来了。这也不奇怪,因为controller跟view的界限本身就不是太好区分,关于怎么拆,各位大神也已展开过激烈的辩论,至于结果如果,自己拿捏吧,我也是在看他们辩论的过程中找到了自己的理解,所以不对的地方还望轻喷。
这篇文章讲述了我理解的MVC,并根据理解对之前代码进行了拆分。
四、MVC,MVP,MVVM以及VIPER
说实话我也是在看到MVVM后才知道还有MVP、VIPER的,听名字很高大上的样子对吗?这也是我第一次听到它们后的反应。mvp和viper分别是说……
开个玩笑,这种重量级(对我的知识面来说,并非指真的重量级、轻量级)的框架我怎么敢讲解,而且我敢讲你也不一定敢听啊,所以一会还是出门左转到sprynthesis看 吧。什么,看不懂?那cocoachina 家的先凑合着看吧,其实有位大神讲的更加清晰,可惜我收藏太多网址,一时找不到了,等找到一定不上。
其实说到底,框架模式还是为程序服务的,脱离了程序单纯说框架的好处那绝对是在刷流氓,脑残粉。我一个“hello word”你还非要用mvc实现?考虑下时间成本,维护成本,后期拓展和app本身,我想选择哪种模式心理也就有数了。
引用2016年最火的一句话:技术本身并不可耻 ,同样的道理,没有最好的框架模式,只有最适合的。