- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
30-如何制定一套适合自己团队的iOS编码规范?
你好,我是
如果团队成员的编码规范各不相同,那么你在接收其他人的代码时是不是总会因为无法认同他的代码风格,
而想着去重写呢。但是,重写这个事儿不只会增加梳理逻辑和开发成本,而且重写后出现问题的风险也会相
应增加。那么,这个问题应该如何解决呢?
在我看来,如果出现这种情况,你的团队急需制定出一套适合自己团队的编码规范。有了统一的编码规范,
就能有效避免团队成员由于代码风格不一致而导致的相互认同感问题。
那么,如何制定编码规范呢?在接下来的内容里,我会先跟你说说,我认为的好的编码规范。你在制定编码
规范时,也可以按照这个思路去细化出、更适合自己的规范,从而制定出团队的编码规范。然后,我会
再和你聊聊如何通过CodeReview的方式将你制定的编码规范进行落地。
好的代码规范
关于好的代码规范,接下来我会从常量、变量、属性、条件语句、循环语句、函数、类,以及分类这8个方
面和你一一说明。
常量
在常量的使用上,我建议你要尽量使用类型常量,而不是使用宏定义。比如,你要定义一个字符串常量,可
以写成:
staticNSString*constSTMProjectName=@FetchFeed
变量
对于变量来说,我认为好的编码习惯是:
1.变量名应该可以明确体现出功能,再加上类型做后缀。这样也就明确了每个变量都是做什么的,而
不是把一个变量当作不同的值用在不同的地方。
2.在使用之前,需要先对变量做初始化,并且初始化的地方离使用它的地方越近越好。
3.不要全局变量,尽量少用它来传递值,通过参数传值可以减少功能模块间的耦合。
比如,下面这段代码中,当名字为字符串时,就可以把字符串类型作为后缀加到变量名后面。
letnameString=Tom
print(\(nameString))
nameLabel.text=nameString
属性
在iOS开发中,关于属性的编码规范,需要针对开发语言做区分:
Objective-C里的属性,要尽量通过get方法来进行懒加载,以避免无用的内存占用和多余的计算。
Swift的计算属性如果是只读,可以省掉get子句。示例代码如下:
varrectangleArea:Double
{returnlong*wide
}
条件语句
在条件语句中,需要考虑到条件语句中可能涉及的所有分支条件,对于每个分支条件都需要考虑到,并进行
处理,减少或不使用默认处理。特别是使用Switch处理枚举时,不要有default分支。
在iOS开发中,你使用Swift语言编写Switch语句时,如果不加default分支的话,当枚举有新增值时,编译
器会提醒你增加分支处理。这样,就可以有效避免分支漏处理的情况。
另外,条件语句的嵌套分支不宜过多,可以充分利用Swift中的guard语法。比如,这一段处理登录的示例
代码:
ifletuserName=login.userNameOK{
ifletpassword=login.passwordOK{
//登录处理
...
}else{
fatalError(loginwrong)
}
}else{
fatalError(loginwrong)
}
上面这段代码表示的是,当用户名和都没有问题时再进行登录处理。那么,我们使用guard语法时,
可以改写如下:
guard
letuserName=login.userNameOK,
letpassword=login.passwordOK
文档评论(0)