版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Salesforce 开发规范F 开发规范和最佳实践目录F 开发规范和最佳实践1目录2版本历史31介绍41.1为什么要有编码规范41.2适用范围42.命名规范42.1对象API42.2字段API52.3Class52.4Trigger52.5Visualforce62.6VF页面控制类62.7Web Services Class62.8Batch Class62.9Schedule Class62.10测试类62.11常量62.12变量72.13方法73.所有命名一缆表74.代码规范74.1代码格式74.2代码嵌套84.3代码注释94.3.1组件注释94.3.2方法注释104.3.3变量与关键
2、代码块注释105.最佳实践115.1ApexCode最佳实践115.1.1 避免在For循环中使用SOQL查询和DML操作115.1.2 测试类125.1.3 运算符125.1.4 代码长度控制125.1.5 硬码125.1.6模块化135.2 F Apex Code Best Practices135.3 F Developer Resource135.4 Visualforce页面最佳实践135.5 字段集135.6 SOQL查询和SOSL查询155.7最佳实践参考文章15版本历史版本号作者时间描述0.5Michael2013-7-10内部版本0.6Michael2013-7-11内部修正
3、版本0.7Michael2013-7-11内部修正版本1.0Michael2013-7-15正式发布版1.1Tommy2013-7-22正式发布版1 介绍1.1 为什么要有编码规范编码规范对于程序员而言尤为重要,有以下几个原因: - 一个软件的生命周期中,80%的花费在于维护 - 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 - 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码 - 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误 - 为了执行规范,每个软件开发人员必须一致遵守编码规范1.2 适用范围适用于Salesforce项目开发组
4、成员。2. 命名规范命名规范中禁止出现汉语拼音和无实际意义的命名。2.1 对象API规范:把对象标签中的单词以首字母大写的方式连接起来,每个单词之前用“_”下划线连接。示例:对象标签为Weibo Account , 相对应的API名称应该为:Weibo_Account_c,其中后缀“_c”是系统自动为我们加上去的,我们不需要去填写它。如果对象标签填写的是中文,那么我们在定义对象名的时候应该把标签用英文翻译过来在按照上面的规则定义对象名称,如:2.2 字段API规范:用描述字段的英文单词连接,每个单词首字母大写,单词之间用“_”下划线连接。示例:字段名称为Weibo Account ID,对应字
5、段API名称为:Weibo_Account_ID_c。另外如果有Lookup类型的字段,要用被引用的对象名作为字段字,如:Weibo Account查找的是Account这个对象,那么字段名就应该为Account而非其他值,子级关系名称就是当前这个对象的名称Weibo_Account,因为Weibo_Account是Account的子对象。2.3 Class规范:单词连写,单词首字母大写。示例:OrderItem。2.4 Trigger规范:Trigger名称=对象名+功能名称单词连写,单词首字母大写。示例:Account对象上有一个自动命名的Trigger就应该为:AccountAutoSe
6、tName2.5 Visualforce规范:以页面要实现的功能概要命名,单词连写,单词首字母大写。示例:OrderTracking2.6 VF页面控制类规范:控制类名称=VF页面名称+ Controller,示例:OrderTrackingController2.7 Web Services Class规范:WebServiceCalss名称=类的功能描述 + WS示例:CalculationPriceWS2.8 Batch Class规范: Batch的功能描述并且以Batch结尾。示例: AutoUpdateAccountStatusBatch2.9 Schedule Class规范:S
7、chedule的功能描述+Schedule结尾示例:AutoUpdateAccountStatusSchedule2.10 测试类测试类命名以“Test_”开头,连接上被测试的类名如:Test_AutoUpdateAccountStatusBatch 2.11 常量所有的字符都必须大写,采用有意义的单词组合表达,单词与单词之间以“_”下划线隔开,命名尽量简短,不要超过16个字符如:static final integer PAGE_SIZE = 10;2.12 变量变量命名一般采用大小写混和的方式,第一个单词的首字母小写,其后单词的首字母大写,变量名一般不要用下划线或美元符号开。变量名应简短且
8、有意义,即,能够指出其用途。除非是一次性的临时变量,应尽量避免单个字符的变量名。如:string userName = ;2.13 方法方法名应是一个动词或动名结构,采用大小写混和的方式,其中第一个单词的首字母用小写,其后单词的首字母大写。如:public void checkStatus();每个方法前必须加说明包括:参数说明、返回值说明、异常说明。如果方法名实在是太长可以对变量名缩写,但是必须添加相应的说明3. 所有命名一缆表类型规范示例对象API对象名称单词用下划线连接Weibo_Account_c字段API字段名称单词用下划线连接Weibo_Account_ID_cClass单词连写,
9、首字母大写OrderItemTriggerTrigger名称=对象名+功能AccountAutoSetNameVisualforce页面页面功能描述OrderTrackingVf页面控制类VF页面的名+Controller结尾OrderTrackingControllerWebService Class类功能描述+WS结尾CalculationPriceWSBatch Class功能描述+Batch结尾AutoUpdateAccountStatusBatchSchedule Class功能描述+Sch结尾AutoUpdateAccountStatusSch测试类Test_+Class名或Tri
10、ger名Test_OrderItem4. 代码规范4.1 代码格式代码缩进要保持一致的缩进量,if、for、while、do等语句尽量自占一行,执行语句不得紧跟其后,不论执行语句有多少都要加,这样可以美观易读防止书写失误; 使用以下写法:If (.)禁用If (.)如果用这种写法代码如下感觉很乱,如下:但是要用上边那种写法可读性较好,代码如下:4.2 代码嵌套尽可能的使用浅嵌套,禁用深嵌套。如下为深嵌套:这段代码中在For循环中有好多判断,所以导致了,代码嵌套很深,这段代码可以优化成如下写法,先判断不符合条件的,利用continue语句来控制嵌套层次,如下:4.3 代码注释4.3.1 组件注释
11、在类和Trigger的头部添加作者、创建时间、功能描述和约束信息,如果此类需要修改,那么要记录修改时间,修改人,修改内容简介其中:作者、创建时间、功能描述是必需的,结束信息可选,修改人,修改时间,修改内容是必需的。/*作者: Michael创建时间: 2013-7-11 功能:(主要功能简介,核心功能,复杂算法) 约束:(可选) 修改人:Sunny修改时间:2013-7-12修改内容:*/ public class ClsMiddlewareSerivceWrapper implements IMiddlewareServiceWrapper4.3.2 方法注释对几乎每个方法都应有适当的说明,
12、位于方法声明之前,包括:说明,参数说明、异常说明、返回值说明和特别说明等,如:4.3.3 变量与关键代码块注释变量要有注释,关键的代码块也要有相应的注释说明。/用户部门string strRepDepartName = IT;/根据部门查询用户信息 List<User> users = select Id,Department,UserRoleId from User where Department=:strRepDepartName;代码块注释:5. 最佳实践5.1 ApexCode最佳实践5.1.1 避免在For循环中使用SOQL查询和DML操作Salesforce有限制一次
13、请求中不允许超过100个SOQL查询,和150个DML操作,所以避免在For循环中做这些操作,尽量使用集合的方式批量操作看下面的代码可以发现,查询语句和更新语句都放在了for循环里,如果一次性插入200条数据的话就会超出上面的限制,修改成批量执行的写法:在上面的代码中还发现一点就是我在查询客户的时候只查询了一个“Name”字段,因为我需要更新这个字段的值,没用到其他的字段。所以,在我们写查询语句的时候要用到哪些字段,查询哪些字段,以便提高性能。5.1.2 测试类测试类有三部分:1, 准备数据2, 执行测试类3, 验证有三个要求1, 代码覆盖率85%2, Case分支覆盖率85%3, 测试结果和
14、预期一致5.1.3 运算符赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“|”、“ <<”,“”等二元操作符的前后应当加空格 美观易读;尽量不这样写要这样写:每一个运算符前后要加一个空格,美观易读。5.1.4 代码长度控制代码行最大长度宜控制在70至80个字符以内; 长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符),拆分出的新行要进行适当的缩进,使排版整齐,语句可读。如:这样的写法太长了,不容易看可以换行来控制一下长度,以下写法为推荐的方式
15、:5.1.5 硬码l 禁止在代码中出现硬码引用记录ID,RecordTypeID,简档ID,用户ID。l 禁止在代码中出现硬码引用记录名称,用户名称,简单名称,角色名称。l 如果特殊情况必须要引用的话,建议考虑用CusomeSetting解决,这样也避免了硬码引用的问题,因为CusomeSetting是可配置可以修改的。5.1.6 模块化不推荐一个方法内超超过 100行以上代码,除非特殊情况,要把大的代码块拆分功能到不同的方法中。如果多个组件应用类似逻辑,考虑分离公用方法。5.2 F Apex Code Best Practices5.3 F Developer ResourceHomePag
16、e : Document: 5.4 Visualforce页面最佳实践详细内容请见:5.5 字段集在Salesforce的每个业务对象中都有一个叫字段集的功能,我们可以动态绑定一个字段集显示在VF页面上,这样的好处是,当我们需要调整需要显示的字段时,不需要去修改任何VF页面标签和Apex Code,只需要调整字段集中的字段和摆放顺序就可以实现。例,如下图所示是一个Account详细信息页面下的一个VF页面,显示的内容是这个客户下所有的联系人信息:我们看到有好多列,当我们需要调整这些列的时候不需要去改任何代码,只去到联系人这个对象上找到这个页面上绑定的字段集来调整就OK了。此例中绑定的是DisplayColumns这个字段集,我们可以打开它来编辑它,编辑页面上显示出了联系上所有的字段,和一个FieldsSet,如果我们需要哪些字段就把它们拖到下面的字段集中就好了,然后保存在刷新页面就可以了,最多限制为50个字段,详细官方解说请见:5.6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手套合同范本模板
- 工棚搭建协议书
- 宾馆旅游合同范本
- 川浙工商协议书
- 销售赊账协议合同
- 影响采光协议书
- 学生解约协议书
- 延续期限协议书
- 装饰拆墙协议书
- 账号代理协议书
- 2025年征信报告模板样板个人版模版信用报告详细版(可修改编辑)
- 培训课件:分布式调相机对大规模新能源汇集的支撑作用
- 【《铜电解阳极泥处理各工序及工艺分析案例》7400字】
- 《大容积铝合金内胆碳纤维全缠绕复合气瓶》
- 化工设备新员工培训课件
- 防漏电安全工作培训课件
- 分包工程监理方案(3篇)
- DB51∕T 2791-2021 川西高原公路隧道设计与施工技术规程
- 行政单位预算管理课件
- 2025年企业人大代表述职报告模版(七)
- 2025+CSCO胃癌诊疗指南解读课件
评论
0/150
提交评论