一、工程结构说明,参考了吴星的和网上的一些实践:
- AppDelegate, 包括 AppDelegate.h, AppDelegate.m。
- Section, 这里放各个相对独立的业务模块相关的代码,比如登陆模块、设置页面等。
- General,这里放一些通用的、可以在各个业务模块之间复用的代码。比如一些 Category, Class 以及一些基本控件等。
- Helper,这里放得是一些辅助类,可以把一些Manager放在这里。
- Model,这是模型类。可以把用到的基本模型类放在这里,比如User 模型类,Setting 模型类等。
- Macro,这个目录主要放一些宏,并且再细分为 AppMacro, UtilMacro, VendorMacro等。
- Vendor,这个目录是用来放一些第三方库.
二、项目开发注意事项:
1、这条最重要:不要随意在第三方开源库中增删改内容,如果必须修改,尽量用类别或者继承的方式来做,并且不要把代码加到第三方库所在的目录。万不得已才允许直接修改第三方开源库的内容。
2、项目中的 group 文件夹,必须对应本地文件夹。这个很重要!
只有一个例外,就是工程 Resource 目录下的 storyboard 文件实际存放在路径在 Base.lproj,这是为了国际化而放的。
3、图片资源使用 Images.xcassets 管理,了解一下你会发现这个很方便,不能再像之前项目里那样放了。
5、项目中使用第三方库的,请告诉我,由我(Joe)来添加,避免滥加。
6、多使用#pragma mark - XXX将源文件分类,方便查看和理解。相同性质的方法归纳到同一个mark下面。
7、注意业务逻辑和界面的分离,这个概念比较抽象,先有这个意识吧,再慢慢提升,我们会定期评审代码,磨刀不误砍柴工。前期至少保证在 ViewController 的 action 方法中不要出现大量业务逻辑代码。
8、userdate 的数据不要上传 SVN,代码尽早提交,保证 svn 上的代码可用。
下面是补充的 Sandy 邮件中的的建议
9、滥用NSUserDefault,工程遍地都是,调试起来极度痛苦。
要求:严格控制NSUserDefault的使用频率,定期组织全工程搜索NSUserDefaul的使用情况,发现不合理,全部打回去重写。
10、ViewController 所带逻辑太多,一个ViewController少则1000行,多则2000行。
要求:严格控制ViewControll写入业务逻辑,只做UI和数据的交互,减轻ViewController的负担。
11、代码中魔数太多,遍地是数字。
要求:代码中禁止使用魔数,请用宏定义或者常量明确表示用途。
12、View布局混乱,相对布局用的太少。
要求:View布局全部用相对布局,个别需要用绝对位置,请在代码中注明原因。
13、代码工程结构不统一,模块之间耦合度太高。
要求:代码工程结构规范按照第一节所说。
14、注释太少。
要求:给外部接口,复杂的逻辑函数必须给出注释。
15、资源文件命名不规范,UI给什么图就怎么命名。
要求:资源文件命名根据模块--> 功能-->分辨率严格划分。
16、擅自更改产品需求,在不与产品沟通的情况下,偷工减料。
要求:擅自更改实现方式,发现之后,根据与产品的协商结果来定,但是DeadLine 不变,耽误时间请自行协调。
17、实现功能没有任何追求,怎么方便怎么来。
要求:功能上请高要求,以后功能稳定性和流畅度,先自己解决,找不到方法,再寻求帮助。
18、图方便,时间紧,一直沿用原来的老架构,已经写完的重构架构一直得不到推广和执行。
要求:从下一版工程开始,全部沿用新的网络访问架构和新的工程架构。
19、代码更新SVN不及时,提交不写Log,PMS改BUG不写备注不明显。
要求:争取每天提交代码,最多不超过两天,提交必须写Log,写增加或者修改功能,后续svn会加上限制,不写Log不允许提交,
PMS修改完BUG请备注中用5到30个字简单说明原因。