我新手,并且还是独立开发,所以自己的代码有很多都不符合规范,为了不被后来人骂死😑【当然最多的是为自己好】,我觉得有必要了解下代码规范,所以今天上午就查了下网上的资料,总结了以下内容
首先说下为什么要代码规范吧,至少有以下几点:
1) 代码可读性提高了
2) 时间久了自己再维护可以一眼看懂方法的含义
3) 便于后来者看懂并理解你的代码【据说很多人在维护“前辈们”代码的时候,都有种想砍人的冲动= =】
4) 可以提高代码的健壮性【这个不是瞎掰,且看后面介绍】
关于可读性,你们看看我前后的代码对比吧
乍一看觉得还行啊,什么驼峰规则,方法名首字母大写都遵守了,但是这样的代码看久了会累,为什么,不够直观!我必须要从头看到尾才能看清楚每一个参数,所以我就引用了第一条规则:如果一行有非常多的参数,更好的方式是将每个参数单独拆成一行。如果使用多行,将每个参数前的冒号对齐。
所以我的代码变成了这样
首先说这样写的好处吧,第一,短,第二,齐,这样看起来就很舒服,大家觉得呢?
这里用到的规则说一下:
1. 方法名首字母小写,方法中要遵守驼峰规则【也就是单词首字母大写】
2. 单行一般不能超过80列,提高可读性【设置Xcode > Preferences > Text Editing > Show page guide,来使越界更容易被发现】
3. 方法参数取名应该直观易懂
4. 多个参数要拆行,以冒号对齐【如果第一个参数太短了,可以缩进一下】
再讲一下关于变量命名吧,只要记住一点,不要担心浪费行宽,让看代码的人能看懂并立即理解更重要
错误示例:
int w;
int nErr;
正确示例:
int width;
int numErrors;
然后就是代码的健壮性了,好的代码有助于提高运行效率不是吗?其中主要有以下几点:
1) 创建临时对象时在同一行使用自动释放池,而不是后面单独加一个release【MRC】,可以有效避免意外删除了release导致的内存泄漏
例如:MyViewController *controller = [[[MyViewController alloc] init] autorelease];
2) 不要在构造方法【init】中将成员变量初始化为 0 或者 nil;毫无必要 ,刚分配的对象,默认值都是0,除了isa指针
3) 使用alloc init方法创建并初始化对象,不要使用new,也没必要重载它,new会让有关内存分配的代码审查更困难
最后就是文件注释了,Xcode默认新建一个类之后它的文件注释默认是这样的
在实际开发中文件注释如果写上的话是非常有用的,每个文件的开头以文件内容的简要描述起始,最好再简要描述一下功能,紧接着是作者,最后是版权声明和/或许可证样板。做个简单地示范,例如这样:
这样是不是就能看出来这个文件是干嘛的了?之后再维护的话是不是会更方便呢?说起这个又要吐槽一下苹果了,本来这个注释咱们是可以在Xcode ▸ Contents ▸ Developer ▸ Platforms ▸ iPhoneOS.platform ▸ Developer ▸ Library ▸ Xcode ▸ Templates▸File Templates▸Source▸Cocoa Touch Class.xctemplate 这个目录下更改的,但是自从8之后就被锁了,所以还是自己封一个代码块吧,这个看个人需要我就不分享自己的代码块了😄
先写到这里了,以后再看到什么有用的再添加,欢迎大家批评指正