IOS编码安全规范文档格式.docx
《IOS编码安全规范文档格式.docx》由会员分享,可在线阅读,更多相关《IOS编码安全规范文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
publicStringgetUserName()、publiclist<
String>
findFriends()
●类的设置方法
在被访问字段名的前面加上前缀set
publicvoidsetName(Stringname)
●类的布尔型判断方法
一般要求方法名使用单词is或has做前缀
isNetWorkConnected()
●构造方法应该用递增的方式写。
参数个数少的在前
4、变量命名
第一个单词首字母必须小写,往后的单词需要符合驼峰命名规则,即第一个字母大写。
变量名尽可能的使用名词或名词词组。
同样要求简单易懂,不允许出现无意义的单词。
StringuserName
避免使用全局变量,如果用到必须加前缀‘Pub_’,同时需要在变量名体现其类型。
5、成员变量命名
与变量命名一样,在private字段前加上字母“m”。
6、控件变量命名
一般的变量命名后加上控件名称
IBOutletUILabel*userNameLabel;
7、常量命名:
必须全部大写,单词间用下划线隔开。
MAP_KEY
8、异常命名:
自定义异常首字母大写,以Exception为结尾。
AppException
9、资源命名:
项目中所使用的所有资源命名必须以全部单词小写,单词间以下划线分割,加前缀区分。
名称
功能
btn_xx_normal
按钮正常情况下的效果
btn_xx_press
按钮点击下的效果
bg_head
背景图片使用bg_功能_说明
def_search_cell
默认图片使用def_功能_说明
icon_more_help
图标图片使用icon_功能_说明
Seg_list_line
具有分割特征的图片使用seg_功能_说明
Sel_ok
选择图标使用sel_功能_说明
二、注释
1、头文件注释:
所有的源文件都应该在开头有一个注释,其中列出头文件的相关描述、作者、以及对应的版本信息。
/*!
@header头文件名称
@abstract关于这个源代码文件的一些基本描述
@author作者
@version1.002012/01/20Creation(此文档的版本信息:
版本号+创建时间)
*/
2、类注释
每一个类都要包含如下格式的注释,以说明当前类的功能等。
@class类名
@abstract这里可以写关于这个类的一些描述。
3、枚举注释
每一个枚举都需要包含相对应的enum描述,以及每个枚举值对应的含义。
@enum枚举名称
@abstract关于这个enum的一些基本信息
@constant各个对应值得含义,如:
OKButton对应的是OK按钮的Tag
4、协议注释
协议需要注明是哪个类对应的protocol,以及自身的相关描述。
@protocol协议名称
@abstract这是哪个类的protocol
@discussion具体描述信息
5、方法注释
包括当前方法的用途,当前方法参数的含义,当前方法返回值的内容和对应的错误参照。
@method方法名
@abstract该方法的一些简要描述
@discussion该方法的具体使用方式,需要注意的地方,如果你是设计一个抽象类或者一个共通类给给其他类继承的话,在这里需要具体描述一下怎样使用这个方法。
@paramtext参数列表
@paramerror错误参照
@result返回结果
6、属性注释
@property属性名称
@abstract该Property的一些基本描述。
7、类别注释
@category类别名称
@abstract哪个类的类别
三、代码风格
1、缩进
禁止使用tab进行缩进,缩进为4个空格
2、.h文件空行
可以使用空行的情况:
Ø
文件说明与头文件包含(#import)之间类声明跟接口声明之间。
头文件包含(#import)与@class之间
@interface与@class之间
头文件{}内,空1行开始写成员对象。
头文件{}外,空1行开始写属性。
属性与方法之间。
方法与@end之间。
如果需要声明protocol,空2行接着写。
通常protocol写在@end后面,但是声明在@interface之前。
方法与方法之间空1行。
3、.m文件空行
文件说明与头文件包含(#import)之间。
头文件包含(#import)之间。
@implementation和@synthesize之间。
@synthesize与方法之间。
变量声明后需要空1行。
各功能块之间。
#pragmamark与方法之间。
4、空格
关键字与其后的表达式之间需要加空格。
单目操作符不应与操作数分开。
除’,’外,其它双目操作符应与它们的操作数用空格隔开。
.h中协议<
>
前面有一个空格。
.h中成员声明时,类型与变量之间有至少1个空格。
*号靠近变量,不靠近类型。
@property后留1个空格,()里面,逗号紧跟前一变量,与后一变量之间留1个空格。
()外面,先留1个空格,再声明属性。
方法的+,-后面与()。
返回类型与*之间留1个空格,方法参数中返回类型与*之间留1个空格
在多参数方法中,每个参数后面都有1个空格。
Switch..case语句,代码块需要留4个空格。
If语句嵌套,内部if语句需要留4个空格。
5、Import
Import语句引入的次序如下:
IOSimports
第三方库
自定义.h文件
在每组内部按字母排序,大写字母排在小写字母的前面。
每个大组之间应该空一行。
6、Log
统一使用自定的log服务,不直接使用系统自带。
7、语句
每行只能有一个语句
每行代码最多不得操作100个字符。
8、标准大括号风格
大括号不单独占用一行;
它们紧接着上一行书写。
9、控制语句
1)If语句
判断中如果有常量,则应将常量放在判断式的右侧,如if(a>
b)
如果if语句成立的逻辑只有一句,则应该将其放在if同一行或用{}括起来。
if(index>
0)……
0){
……….
}
2)While语句
循环语句中不允许出现表达式。
如while(I<
documents.getCount())
四、修改规范
1.新增代码行
新增代码行的前后应有注释行说明。
//修改人,修改时间,修改说明
新增代码行
//修改结束
2.删除代码行
删除代码向的前后用注释行说明
要删除的代码行(将要删除的语句进行注释)
3.修改代码行
修改代码行以注释旧代码行后再新增代码行的方式进行。
//修改前代码行开始
//修改前代码行
//修改前代码行结束
//修改后代码行开始
修改后代码行
五、严禁出现的情况
1、永远不要有空的catch语句。
替代方案:
向方法的调用者抛出异常、或者抽象级别抛出新异常。
2、避免在一条语句中给多个变量赋相同的值
3、不要将赋值运算符用在与相等运算符混淆的地方
4、重复代码,复制-粘贴
5、长方法,将所有逻辑处理放在一个方法里面,每个方法都应有其自己的意图
6、大类,妄想将所有模块放在一个类中实现。
7、小类,一个类所承担的责任太少,应该将其消除,类的维护需要额外的开销
附件: