




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WebKit代码规范缩进1. 使用空格而不是Tab。Tab只应该出现在有语义的文件里,如makefile文件。2. 缩进大小为4个空格。正确:intmain()return0;错误:intmain()return0;3. 在头文件中,命名空间中的代码应该被缩进。正确:/ Document.hnamespaceWebCoreclassDocumentDocument();.;/ namespace WebCore错误:/ Document.hnamespaceWebCoreclassDocument Document(); . ;/ namespace WebCore4. 在实现文件中,命名空间中的代码不应该缩进。正确:/ Document.cppnamespaceWebCoreDocument:Document()./ namespace WebCore错误:/ Document.cppnamespaceWebCore Document:Document()./ namespace WebCore5. case标签应该和switch对齐,case下的语句要缩进。正确:switch(condition)casefooCondition:casebarCondition:i+;break;default:i-;错误:switch(condition)casefooCondition:casebarCondition:i+;break;default:i-;6. 当同一层面的布尔表达式跨多个行时,布尔操作符应该放在行首而不是后面。正确:returnattr->name()=srcAttr|attr->name()=lowsrcAttr|(attr->name()=usemapAttr&&attr->value().domString()0!=#);错误:returnattr->name()=srcAttr|attr->name()=lowsrcAttr|(attr->name()=usemapAttr&&attr->value().domString()0!=#);空格1. 一元操作符前不加空格。正确:i+;错误:i+;2. 二元与三元操作符前后应该加上空格。正确:y=m*x+b;f(a, b);c=a|b;returncondition?1:0;错误:y=m*x+b;f(a,b);c=a|b;returncondition?1:0;3. 控制语句与圆括号之间要加空格。正确:if(condition)doIt();错误:if(condition)doIt();4. 函数调用时,函数名和圆括号之间、圆括号与其内容之间不留空格。正确:f(a, b);错误:f(a, b);f(a, b);换行1. 每个语句占用一行。正确:x+;y+;if(condition)doIt();错误:x+;y+;if(condition)doIt();2. else关键字应该和前面大括号在一行。正确:if(condition).else.错误:if(condition).else.3. 当前一个if语句被return语句终止时,else if语句应该写成多个if语句的形式。正确:if(condition).returnsomeValue;if(condition).错误:if(condition).returnsomeValue;elseif(condition).大括号1. 行数定义:每个大括号占用一行。正确:intmain().错误:intmain().2. 其它大括号:左括号放在前一条语句之后,右括号单独占用一行。正确:classMyClass.;namespaceWebCore.for(inti=0;i<10;i+).错误:classMyClass.;3. 仅有一行的条件控制语句不使用大括号。正确:if(condition)doIt();错误:if(condition)doIt();4. 条件子句为空的情况下,大括号不能省略。正确:for(;current;current=current->next)错误:for(;current;current=current->next);Null,False和01. C+语言中,空指针被写成0,而在C语言中,空指针被写成NULL。在Objective-C和Objective-C+中,使用nil表示一个空Objective-C对象。2. C和C+的bool值应该被写作true和false。Objective-C的BOOL值则用YES和NO表示。3. 检查真/假、空/非空以及零/非零不应该使用等式。正确:if(condition)doIt();if(!ptr)return;if(!count)return;错误:if(condition=true)doIt();if(ptr=NULL)return;if(count=0)return;4. 在Objective-C中,实例变量自动被初始化为0,不要再初始化函数中额外的初始化为nil或NO。命名1. 采用骆驼命名法(CamelCase,依靠单词的大小写拼写复合词的做法)。class,struct,protocol,namespace名字的第一个字母大写;变量和函数名的第一个单词小写;缩写应完全大写。正确:structData;size_tbufferSize;classHTMLDocument;错误:structdata;size_tbuffer_size;classHtmlDocument;2. 使用完整的单词,除非特殊情况下缩写更规范和更容易理解。正确:size_tcharacterSize;size_tlength;shorttabIndex;/ more canonical错误:size_tcharSize;size_tlen;shorttabulationIndex;/ bizarre3. C+中类的数据成员采用“m_”前缀。正确:classString.shortm_length;错误:classString.shortlength;4. Objective-C实例变量采用“_”作为前缀。正确:classString .short_length;end错误:classString .shortlength;end5. 布尔变量前加上is或者did之类的前缀。正确:boolisValid;booldidSendData;错误:boolvalid;boolsentData;6. setter方法前使用set开头,而在getter方法中采用“裸字”。setter和getter方法的命名应该和需要存储的变量相匹配。正确:voidsetCount(size_t);/ sets m_countsize_tcount();/ returns m_count错误:voidsetCount(size_t);/ sets m_theCountsize_tgetCount();7. 在函数名字中采用说明性的动词。正确:boolconvertToASCII(short*,size_t);错误:booltoASCII(short*,size_t);8. 在函数的声明中丢弃无意义的参数变量名。正确:voidsetCount(size_t);错误:voidsetCount(size_tcount);9. Objective-C的方法命名应遵循Cocoa命名规则读起来像短语,并且each piece of the selector should start with a lowercase letter and use intercaps(没看懂:()。10. Enum members should user InterCaps with an initial capital letter。(也没看懂,就是这个InterCaps不知道什么意思)。11. 常量优先使用#define,宏优先使用inline函数。12. #defined定义的常量的所有字母都大写,单词间用下划线分隔。13. 对于展开为函数调用或者其它非常量计算的宏:命名方法和函数一致,并且不管有没有参数都应该以一对圆括号结束(一些特殊的宏例外,如ASSERT)。注意在这种情况,采用inline函数代替宏也许是更好的办法。正确:#define WBStopButtonTitle() /NSLocalizedString(Stop, Stop button title)错误:#define WB_STOP_BUTTON_TITLE /NSLocalizedString(Stop, Stop button title)#define WBStopButtontitle /NSLocalizedString(Stop, Stop button title)14. #ifndef,#define“头文件卫士”应该严格按照文件名来命名(大小写也要一致),将文件名中的“.”替换成“_”。正确:/ HTMLDocument.h#ifndef HTMLDocument_h#define HTMLDocument_h错误:/ HTMLDocument.h#ifndef _HTML_DOCUMENT_H_#define _HTML_DOCUMENT_H_其它标点1. C+类的构造函数应该初始化所有成员变量。每个成员变量(以及父类)都要进行缩进,并且各占一行,每行都使用冒号和逗号开始。正确:MyClass:MyClass(Document*doc):MySuperClass(), m_myMember(0), m_doc(doc) MyOtherClass:MyOtherClass():MySuperClass()错误:MyClass:MyClass(Document*doc):MySuperClass()m_myMember=0;m_doc=doc; MyOtherClass:MyOtherClass():MySuperClass()2. 非C+代码中的指针类型类型和*之间必须有空格(*尽可能靠近后面的标志符)。3. C+代码中的指针和引用类型类型和*或&之间没有空格。正确:Image*SVGStyledElement:doSomething(PaintInfo&paintInfo)SVGStyledElement*element=static_cast(node();constKCDashArray&dashes=dashArray();错误:Image*SVGStyledElement:doSomething(PaintInfo&paintInfo)SVGStyledElement*element=static_cast(node();const
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人安全用工合同范本
- 社区工会消防知识培训班课件
- 限期包销房合同范本
- 甲方商铺租赁合同范本
- 施工框架搭建合同范本
- 盖房施工合同范本
- 广告物料结款合同范本
- 房屋开关维修合同范本
- 生鲜配送合同范本
- 物业单位装修合同范本
- 水泥生产企业生产安全事故综合应急预案
- 全自动血液细胞分析仪产品技术要求深圳迈瑞
- 找对英语学习方法的第一本书
- 制度编写书写规范
- 安徽涵丰科技有限公司年产6000吨磷酸酯阻燃剂DOPO、4800吨磷酸酯阻燃剂DOPO衍生品、12000吨副产品盐酸、38000吨聚合氯化铝、20000吨固化剂项目环境影响报告书
- 制造业业务流程
- 《诺丁山》经典台词
- 对铁路机车乘务员规章培训的探讨与实践
- 临床医学实验室 仪器设备一览表格模板
- 《绿色建筑》绿色建筑与建筑节能课件
- 二级生物安全实验室备案登记申请表(模板)
评论
0/150
提交评论