iOS应用开发半年工作总结の最佳实践,结合iOS项目组的实际情况和项目实际情况所得:
>>>>>最佳实践>>>>>
1、 Objective-C代码规范,http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml 或者 http://wenku.baidu.com/view/4e38a42cbd64783e09122b9a.html
2、 方法使用 #pragma mark - 来分组,默认有Private methods 和 Public methods两个分组
3、 声明使用@class,然后在.m文件里面#import,可以防止交叉引入,提高编译效率
4、 处理所有warning
5、 尽量不用单例,使用单例考虑a、对象创建代价是否昂贵;b、对象是否全局唯一
6、 严格使用MVC模式开发,Model:模式层,业务逻辑、网络操作、数据解析;View:视图层,事件和委托控制器来实现,除非是和业务无关的可以放在View里面实现;Controller:控制器:模式和视图交互的中间者
7、 复用级别在MVC,建立MVC和MVC之间的通信
8、 拒绝代码耦合,要有黑盒思想,如果要修改其他控制器才能实现功能,这时候必须考虑设计是否有问题
9、 网络请求和数据解析操作要放在相应的模式层,不要在视图或控制器里面发起请求和解析JSON,使用ResultSet保存JSON数据
10、 视图响应事件通过委托到控制器实现,不要在视图里面实现,事件和委托实现都在controller里面
11、 使用委托delegate要用protocol明确定义,尽量少用performSelector这种Runtime函数,除非你对Runtime很熟悉
12、 类与类之间的通信,首先考虑delegate,然后KVO,最后notification
13、 在loadView里面创建视图,兼容iPhone5使用相对大小self.view.bounds来构建视图
14、尽量不创建新类,但要慎用类别,通用代码可以放在Common类里面
15、利用setter方法更新视图,使用initWithAttributes:解析JSON数据创建对象
16、使用instrument进行性能测试
<<<<<最佳实践<<<<<
下面简单说明一下,
1、第9点的ResultSet类封装了解析JSON数据结构,结果对象、分页对象、结果数组;做到屏蔽返回JSON数据是字典或数组,都使用结果数组装数据,保证网络请求代码的一致性,只有解析JSON的方法不一样。
2、第15点的initWithAttributes:是解析JSON的方法,每个http请求都有一个类似的解析JSON的方法,也就是第9点里面的网络请求不一样的地方。
推荐:https://github.com/jverkoey/iOS-Best-Practices.git