首先,对于说cocoa本身框架已经很好了,我很不赞同,因为,你做一个app你就知道,需要引入第三方的组件、需要自己封装不少功能,这些充分说明了cocoa本身还不够。
MVC我们都知道,但是多少项目是把M定义得很清楚,V和C能够很好得切分呢?我经历过的项目,接触过的人,基本上都是混在一起的,很少有人去执着地切分,特别是项目不大的时候,切分反而增加写代码的工作量,本来就是加班赶进度了,谁会管tmd的MVC啊。
obj-c/cocoa定义好了V和C,对M的支持有Core Data啊!是的,有,但是不够,因为往往我们对产品的需求不是对数据表的增删改,也不是存储、读取对象,往往有一些更复杂的需求,需要对Core Data进行封装或者将各种数据以一个优雅的方式统一对外暴露,这些,都没有现成的。这不是开发框架的错,因为这个取决于业务,而业务是千变万化的。
MVC的框架有没有价值?有,你写个iOS项目,没仔细看过苹果的MVCNetworking例子,似乎你很多用法姿势都不太对吧?(有丰富经验的工程师除外)如果要把MVCNetworking的实现照搬来用,又稍微难弄了点,貌似业务不太一样,思路可以借鉴,实现还要改很多,重用方面还需要调整。
BeeFramework 有没有用?这是腾讯剑走偏锋的典型,以Web技术为核心开来发iOS App,囧。有没有用?有。用处多大?用Web的方式开发,是给有Web积累的团队用的,而不是给本地App用的。
为什么鼓吹MVC?我投入移动开发之后,一直在项目中努力实行MVC的架构,不管Android还是iOS开发,已经形成了基本的套路。在深刻理解了MVC的职责,将常用的概念套入到里面去慢慢解除疑惑的过程中,也发现的这样编码的好处。至少查找已知bug非常容易,到底是界面交互的问题还是后面逻辑问题,还是最后展现UI绑定的问题,都可以在固定的几个区域来分段,然后有针对性的去定位问题。其次,功能的调整大部分时候都是正交的,不太担心改动了错一片。
最后,我想有机会将这部分成功公开出来。目前缺少一个实践下来有用的app作为证明,同时,我也担心这样的框架例子尽管说开发成品简单了,但是理解它还需要一些时间作为门槛,以至于这种程度的代码复用是缺少性价比的。
@Stony bee不是web方式的UI开发,你说那么多其实和这个帖子的主题没多少关系。
另外Cocoa本身MVC是架构设计问题,不完全是码农本身的问题,如果你们公司架构不事先做好而是让工程师一边做一边随便自己搞,或者遇到新增加的模块不从架构层面去考虑而是想到那做到哪,那是你们公司开发管理的问题。
我自己的项目里,刚开始先外包,由之前主要是WEB开发经验的朋友帮忙做,他们有点iOS经验。结果,我的妈呀!所有逻辑都写在VC里!后来我自己接手,硬生生花了1个月时间把中间业务层重新架起来。
这些才是MVC问题,但和你说的cocoa需要第三方库一点关系都没有。就算是bee也需要第三方库,它只是用了CSS的形式来“方便”开发界面,并没有代替很多第三方库的作用。