没有合适的资源?快使用搜索试试~ 我知道了~
1. 【必须】:必须遵守 2. 【建议】:建议遵守 1. 通命名规范(讲述命名的些通规范) 2. 缩写规范(讲述常见的缩写以及缩写规范) 3. Method命名
资源详情
资源评论
资源推荐
⼀份⾛⼼的iOS开发规范
本⽂的开发规范由很多item组成,不同的item描述
了不同的问题。每⼀个item就是⼀条具体的开发规
范,违反不同的开发规范,也会引起不同严重程度
的后果。
有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及
应⽤调研
前⾔
说是前⾔,其实也是本⽂诞⽣的⽬的。随着公司业务的不断增加,功能的快
速迭代,app的业务线越来越多,代码体积变得越来越庞⼤。同时,app投⼊
的开发者也也越来越多,不同的开发者的code风格千差万别。加之公司开发
者⼈员变动,为了保证app稳定性,保证开发效率,统⼀开发风格。于是,
这篇iOS开发规范应运⽽⽣。
因笔者现在所就职公司的开发规范主导编写,⽬前公司业务的迭代都在按照
这个规范在有条不紊的进⾏。综合之前编写规范的经验,历时⼀个⽉的时
间,断断续续重新梳理了⼀份⽐较全⾯、⽐较完整的iOS开发者规范,希望
这些条条框框能够给正在阅读的你提供⼀些参考的价值。也希望越来越多的
iOS开发者能够养成优秀的编码习惯。如果你觉得个别地⽅不妥或者有需要
补充的规范,请留⾔或者私信,我会第⼀时间响应。
约定
在我看来,开发规范像是⼀条可供参考的标准线。不同开发者可以根据这条
标准线来规范⾃⼰的开发⾏为,尤其是在⼤的项⽬中,开发规范可以约束不
同开发者的开发风格,使项⽬从细节到整体上都能达到风格统⼀,利于维
护。
本⽂的开发规范由很多item组成,不同的item描述了不同的问题。每⼀个
item就是⼀条具体的开发规范,违反不同的开发规范,也会引起不同严重程
度的后果。就像法律和道德的差异⼀样,我们必须遵守法律,不然可能带来
损⼈不利⼰的严重后果,但有些⼈虽然没有触犯法律,却违背了道德,虽然
暂时没有产⽣严重的后果,长此以往,也会形成⼀种坏的风⽓。所以,⽆论
法律和道德,我们都该鞭策⾃⼰成为优秀的⼈,⽽不该⽌步于⼀个合格的
⼈。同理,开发规范也是如此,我们必须遵守那些必须要遵守的开发规范,
提倡遵守那些建议你遵守的开发规范。所以,根据约束⼒度,我们把开发规
范暂时划分成两个等级,分别是【必须】、【建议】。
1. 【必须】:必须遵守。是不得不遵守的约定,⼀旦违反极有可能引起严
重后果。
2. 【建议】:建议遵守。长期遵守这样的约定,有助于维护系统的稳定和
提⾼合作效率。
本⽂参考了苹果官⽅编码指南和github上⼀些知名的编码规范,也算是取众
⼈之所长,集百家之精华的⼀篇⽂章。读者可以根据⾃⼰的实际需要和兴趣
点来选择性的阅读。本⽂主题部分主要由以下两章(共32节)构成:
(⼀) 命名规范
1. 通⽤命名规范(讲述命名的⼀些通⽤规范)
2. 缩写规范(讲述常见的缩写以及缩写规范)
3. Method命名规范(讲述⽅法命名的具体规范)
4. Accessor命名规范(讲述set和get⽅法的命名规范)
5. Parameter命名规范(讲述参数命名规范)
6. Delegate⽅法命名规范(讲述delegate⽅法的命名规范)
7. Private⽅法命名规范(讲述私有⽅法的命名规范)
8. Category命名规范(讲述分类的命名规范)
9. Class命名规范(讲述类命名规范)
10. Protocol命名规范(讲述协议的命名规范)
11. Notification命名规范(讲述通知的命名规范)
12. Constant命名规范(讲述枚举常量以及const常量的命名规范)
13. Exception命名规范(讲述异常的命名规范)
(⼆)编码规范
1. Initialize⽅法(讲述类的initialize⽅法的使⽤规范)
2. Init⽅法(讲述初始化⽅法的设计规范包括designated init⽅法和secondary
init⽅法)
3. Init error(讲述init⽅法初始化对象失败时的错误处理)
4. Dealloc规范(讲述dealloc⽅法的使⽤规范)
5. Block规范(讲述block的使⽤规范)
6. Notification规范(讲述通知的使⽤规范)
7. UI规范(讲述开发UI时的⼀些规范)
8. IO规范(讲述读写⽂件时的⼀些注意事项)
9. Collection规范(讲述集合类型的使⽤规范)
10. 分⽀语句规范(讲述常⽤的分⽀语句if、switch语句的编码规范)
11. 对象判等规范(讲述常⽤的判定对象等同性的⽅法使⽤规范)
12. 懒加载规范(讲述懒加载的使⽤规范)
13. 多线程规范(讲述多线程环境下的⼀些编码规范)
14. 内存管理规范(讲述编码过程中常见的内存管理注意点)
15. 延迟调⽤规范(讲述使⽤延迟⽅法时注意事项)
16. 注释规范(讲述编码中注释的使⽤规范)
17. 类的设计规范(讲述类的设计规范)
18. 代码组织规范(讲述类中的代码组织规范)
19. ⼯程结构规范(讲述⼯程的⽂件组织规范)
(⼀)命名规范
根据Cocoa编码规范⾥的描述,以前情况下,命名应该遵循以下基本原则:
Clarity、Consistency、No Self Reference。
(1.1) 通⽤命名规则
⼀般情况下,通⽤命名规则适⽤于变量、常量、属性、参数、⽅法、函数
等。当然也有例外,下⾯我们会针对于每⼀种情况⼀⼀列举。
【必须】⾃我描述性。属性/函数/参数/变量/常量/宏 的命名必须具有⾃我
描述性。杜绝中⽂拼⾳、过度缩写、或者⽆意义的命名⽅式。
【必须】禁⽌⾃我指涉。属性/局部变量/成员变量不要⾃我指涉。通知和掩
码常量(通常指那些可以进⾏按位运算的枚举值) 除外。
通俗的讲,⾃我指涉是指在变量末尾增加了⾃⼰类型的⼀个后缀。
掩码常量、通知除外:
【必须】驼峰命名⽅式。参数名、成员变量、局部变量、属性名都要采⽤⼩
写字母开头的驼峰命名⽅式。如果⽅法名以⼀个众所周知的⼤写缩略词开
始,可以不适⽤驼峰命名⽅式。⽐如FTP、WWW等。
【建议】⼀致性。属性/函数/参数/变量/常量/宏 的命名应该具有上下⽂或
者全局的⼀致性,相同类型或者具有相同作⽤的变量的命名⽅式应该相同或
者类似。
说明:具体来讲,不同⽂件中或者不同类中具有相同功能或相似功能的属性
的命名应该是相同的或者相似的。好处在于:⽅便后来的开发者减少代码的
阅读量和提⾼对代码的理解速度。⽐如:
【必须】清晰性。属性/函数/参数/变量/常量/宏 的命名应该保持清晰+简
洁,如果鱼和熊掌不能兼得,那么清晰更重要。
【建议】⼀般情况下,不要缩写或省略单词,建议拼写出来,即使它有点
长。当然,在保证可读性的同时,for循环中遍历出来的对象或者某些⽅法
的参数可以缩写。
1. // count同时定义在NSDictionary、NSArray、NSSet这三个集合类中。且这三个集合类中的
2. @property (readonly) NSUInteger count;
剩余36页未读,继续阅读
吹狗螺的简柏承
- 粉丝: 11
- 资源: 313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0