规范

一、工程结构说明,参考了吴星的和网上的一些实践:

  1. AppDelegate, 包括 AppDelegate.h, AppDelegate.m。
  2. Section, 这里放各个相对独立的业务模块相关的代码,比如登陆模块、设置页面等。
  3. General,这里放一些通用的、可以在各个业务模块之间复用的代码。比如一些 Category, Class 以及一些基本控件等。
  4. Helper,这里放得是一些辅助类,可以把一些Manager放在这里。
  5. Model,这是模型类。可以把用到的基本模型类放在这里,比如User 模型类,Setting 模型类等。
  6. Macro,这个目录主要放一些宏,并且再细分为 AppMacro, UtilMacro, VendorMacro等。
  7. 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个字简单说明原因。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 193,968评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,682评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,254评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,074评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,964评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,055评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,484评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,170评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,433评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,512评论 2 308
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,296评论 1 325
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,184评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,545评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,150评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,437评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,630评论 2 335

推荐阅读更多精彩内容

  • 前言 最近突发奇想,想到之前公司培训的代码规范,所以简单的整理一下,希望能对大家有所帮助。 正文 部分一 1. 命...
    SwordDevil阅读 537评论 0 1
  • Version:1.0.0 Objective-C工程及代码规范 一、工程总述 1.工程名称为英文 工程名称必须为...
    小霍同学阅读 454评论 2 4
  • 一、基本规则 1、代码清晰 又清晰又简洁的代码当然是最好的了,但简洁不如清晰重要。总的讲不要使用单词的简写,除了非...
    萧修阅读 2,401评论 0 1
  • 1、使用预编译指令#pragma mark组织代码 (1) 视图或控制器生命周期相关的代码 (2)通知相关的代码 ...
    阿咿呀嘿阅读 376评论 0 0
  • 关于命名1> 统一要求• 含义清楚,尽量做到不需要注释也能了解其作用,若做不到,就加注释• 使用全称,不适...
    欧巴刚弄死他阅读 492评论 0 0