版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Salesforce 開發(fā)規(guī)范F 開發(fā)規(guī)范和最佳實(shí)踐目錄F 開發(fā)規(guī)范和最佳實(shí)踐1目錄2版本歷史31介紹41.1為什么要有編碼規(guī)范41.2適用范圍42.命名規(guī)范42.1對(duì)象API42.2字段API52.3Class52.4Trigger52.5Visualforce62.6VF頁面控制類62.7Web Services Class62.8Batch Class62.9Schedule Class62.10測(cè)試類62.11常量62.12變量72.13方法73.所有命名一纜表74.代碼規(guī)范74.1代碼格式74.2代碼嵌套84.3代碼注釋94.3.1組件注釋94.3.2方法注釋104.3.3變量與關(guān)鍵
2、代碼塊注釋105.最佳實(shí)踐115.1ApexCode最佳實(shí)踐115.1.1 避免在For循環(huán)中使用SOQL查詢和DML操作115.1.2 測(cè)試類125.1.3 運(yùn)算符125.1.4 代碼長度控制125.1.5 硬碼125.1.6模塊化135.2 F Apex Code Best Practices135.3 F Developer Resource135.4 Visualforce頁面最佳實(shí)踐135.5 字段集135.6 SOQL查詢和SOSL查詢155.7最佳實(shí)踐參考文章15版本歷史版本號(hào)作者時(shí)間描述0.5Michael2013-7-10內(nèi)部版本0.6Michael2013-7-11內(nèi)部修正
3、版本0.7Michael2013-7-11內(nèi)部修正版本1.0Michael2013-7-15正式發(fā)布版1.1Tommy2013-7-22正式發(fā)布版1 介紹1.1 為什么要有編碼規(guī)范編碼規(guī)范對(duì)于程序員而言尤為重要,有以下幾個(gè)原因: - 一個(gè)軟件的生命周期中,80%的花費(fèi)在于維護(hù) - 幾乎沒有任何一個(gè)軟件,在其整個(gè)生命周期中,均由最初的開發(fā)人員來維護(hù) - 編碼規(guī)范可以改善軟件的可讀性,可以讓程序員盡快而徹底地理解新的代碼 - 如果你將源碼作為產(chǎn)品發(fā)布,就需要確任它是否被很好的打包并且清晰無誤 - 為了執(zhí)行規(guī)范,每個(gè)軟件開發(fā)人員必須一致遵守編碼規(guī)范1.2 適用范圍適用于Salesforce項(xiàng)目開發(fā)組
4、成員。2. 命名規(guī)范命名規(guī)范中禁止出現(xiàn)漢語拼音和無實(shí)際意義的命名。2.1 對(duì)象API規(guī)范:把對(duì)象標(biāo)簽中的單詞以首字母大寫的方式連接起來,每個(gè)單詞之前用“_”下劃線連接。示例:對(duì)象標(biāo)簽為Weibo Account , 相對(duì)應(yīng)的API名稱應(yīng)該為:Weibo_Account_c,其中后綴“_c”是系統(tǒng)自動(dòng)為我們加上去的,我們不需要去填寫它。如果對(duì)象標(biāo)簽填寫的是中文,那么我們?cè)诙x對(duì)象名的時(shí)候應(yīng)該把標(biāo)簽用英文翻譯過來在按照上面的規(guī)則定義對(duì)象名稱,如:2.2 字段API規(guī)范:用描述字段的英文單詞連接,每個(gè)單詞首字母大寫,單詞之間用“_”下劃線連接。示例:字段名稱為Weibo Account ID,對(duì)應(yīng)字
5、段API名稱為:Weibo_Account_ID_c。另外如果有Lookup類型的字段,要用被引用的對(duì)象名作為字段字,如:Weibo Account查找的是Account這個(gè)對(duì)象,那么字段名就應(yīng)該為Account而非其他值,子級(jí)關(guān)系名稱就是當(dāng)前這個(gè)對(duì)象的名稱Weibo_Account,因?yàn)閃eibo_Account是Account的子對(duì)象。2.3 Class規(guī)范:單詞連寫,單詞首字母大寫。示例:OrderItem。2.4 Trigger規(guī)范:Trigger名稱=對(duì)象名+功能名稱單詞連寫,單詞首字母大寫。示例:Account對(duì)象上有一個(gè)自動(dòng)命名的Trigger就應(yīng)該為:AccountAutoSe
6、tName2.5 Visualforce規(guī)范:以頁面要實(shí)現(xiàn)的功能概要命名,單詞連寫,單詞首字母大寫。示例:OrderTracking2.6 VF頁面控制類規(guī)范:控制類名稱=VF頁面名稱+ Controller,示例:OrderTrackingController2.7 Web Services Class規(guī)范:WebServiceCalss名稱=類的功能描述 + WS示例:CalculationPriceWS2.8 Batch Class規(guī)范: Batch的功能描述并且以Batch結(jié)尾。示例: AutoUpdateAccountStatusBatch2.9 Schedule Class規(guī)范:S
7、chedule的功能描述+Schedule結(jié)尾示例:AutoUpdateAccountStatusSchedule2.10 測(cè)試類測(cè)試類命名以“Test_”開頭,連接上被測(cè)試的類名如:Test_AutoUpdateAccountStatusBatch 2.11 常量所有的字符都必須大寫,采用有意義的單詞組合表達(dá),單詞與單詞之間以“_”下劃線隔開,命名盡量簡短,不要超過16個(gè)字符如:static final integer PAGE_SIZE = 10;2.12 變量變量命名一般采用大小寫混和的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫,變量名一般不要用下劃線或美元符號(hào)開。變量名應(yīng)簡短且
8、有意義,即,能夠指出其用途。除非是一次性的臨時(shí)變量,應(yīng)盡量避免單個(gè)字符的變量名。如:string userName = ;2.13 方法方法名應(yīng)是一個(gè)動(dòng)詞或動(dòng)名結(jié)構(gòu),采用大小寫混和的方式,其中第一個(gè)單詞的首字母用小寫,其后單詞的首字母大寫。如:public void checkStatus();每個(gè)方法前必須加說明包括:參數(shù)說明、返回值說明、異常說明。如果方法名實(shí)在是太長可以對(duì)變量名縮寫,但是必須添加相應(yīng)的說明3. 所有命名一纜表類型規(guī)范示例對(duì)象API對(duì)象名稱單詞用下劃線連接Weibo_Account_c字段API字段名稱單詞用下劃線連接Weibo_Account_ID_cClass單詞連寫,
9、首字母大寫OrderItemTriggerTrigger名稱=對(duì)象名+功能AccountAutoSetNameVisualforce頁面頁面功能描述OrderTrackingVf頁面控制類VF頁面的名+Controller結(jié)尾OrderTrackingControllerWebService Class類功能描述+WS結(jié)尾CalculationPriceWSBatch Class功能描述+Batch結(jié)尾AutoUpdateAccountStatusBatchSchedule Class功能描述+Sch結(jié)尾AutoUpdateAccountStatusSch測(cè)試類Test_+Class名或Tri
10、ger名Test_OrderItem4. 代碼規(guī)范4.1 代碼格式代碼縮進(jìn)要保持一致的縮進(jìn)量,if、for、while、do等語句盡量自占一行,執(zhí)行語句不得緊跟其后,不論執(zhí)行語句有多少都要加,這樣可以美觀易讀防止書寫失誤; 使用以下寫法:If (.)禁用If (.)如果用這種寫法代碼如下感覺很亂,如下:但是要用上邊那種寫法可讀性較好,代碼如下:4.2 代碼嵌套盡可能的使用淺嵌套,禁用深嵌套。如下為深嵌套:這段代碼中在For循環(huán)中有好多判斷,所以導(dǎo)致了,代碼嵌套很深,這段代碼可以優(yōu)化成如下寫法,先判斷不符合條件的,利用continue語句來控制嵌套層次,如下:4.3 代碼注釋4.3.1 組件注釋
11、在類和Trigger的頭部添加作者、創(chuàng)建時(shí)間、功能描述和約束信息,如果此類需要修改,那么要記錄修改時(shí)間,修改人,修改內(nèi)容簡介其中:作者、創(chuàng)建時(shí)間、功能描述是必需的,結(jié)束信息可選,修改人,修改時(shí)間,修改內(nèi)容是必需的。/*作者: Michael創(chuàng)建時(shí)間: 2013-7-11 功能:(主要功能簡介,核心功能,復(fù)雜算法) 約束:(可選) 修改人:Sunny修改時(shí)間:2013-7-12修改內(nèi)容:*/ public class ClsMiddlewareSerivceWrapper implements IMiddlewareServiceWrapper4.3.2 方法注釋對(duì)幾乎每個(gè)方法都應(yīng)有適當(dāng)?shù)恼f明,
12、位于方法聲明之前,包括:說明,參數(shù)說明、異常說明、返回值說明和特別說明等,如:4.3.3 變量與關(guān)鍵代碼塊注釋變量要有注釋,關(guān)鍵的代碼塊也要有相應(yīng)的注釋說明。/用戶部門string strRepDepartName = IT;/根據(jù)部門查詢用戶信息 List<User> users = select Id,Department,UserRoleId from User where Department=:strRepDepartName;代碼塊注釋:5. 最佳實(shí)踐5.1 ApexCode最佳實(shí)踐5.1.1 避免在For循環(huán)中使用SOQL查詢和DML操作Salesforce有限制一次
13、請(qǐng)求中不允許超過100個(gè)SOQL查詢,和150個(gè)DML操作,所以避免在For循環(huán)中做這些操作,盡量使用集合的方式批量操作看下面的代碼可以發(fā)現(xiàn),查詢語句和更新語句都放在了for循環(huán)里,如果一次性插入200條數(shù)據(jù)的話就會(huì)超出上面的限制,修改成批量執(zhí)行的寫法:在上面的代碼中還發(fā)現(xiàn)一點(diǎn)就是我在查詢客戶的時(shí)候只查詢了一個(gè)“Name”字段,因?yàn)槲倚枰逻@個(gè)字段的值,沒用到其他的字段。所以,在我們寫查詢語句的時(shí)候要用到哪些字段,查詢哪些字段,以便提高性能。5.1.2 測(cè)試類測(cè)試類有三部分:1, 準(zhǔn)備數(shù)據(jù)2, 執(zhí)行測(cè)試類3, 驗(yàn)證有三個(gè)要求1, 代碼覆蓋率85%2, Case分支覆蓋率85%3, 測(cè)試結(jié)果和
14、預(yù)期一致5.1.3 運(yùn)算符賦值操作符、比較操作符、算術(shù)操作符、邏輯操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“|”、“ <<”,“”等二元操作符的前后應(yīng)當(dāng)加空格 美觀易讀;盡量不這樣寫要這樣寫:每一個(gè)運(yùn)算符前后要加一個(gè)空格,美觀易讀。5.1.4 代碼長度控制代碼行最大長度宜控制在70至80個(gè)字符以內(nèi); 長表達(dá)式要在低優(yōu)先級(jí)操作符處拆分成新行,操作符放在新行之首(以便突出操作符),拆分出的新行要進(jìn)行適當(dāng)?shù)目s進(jìn),使排版整齊,語句可讀。如:這樣的寫法太長了,不容易看可以換行來控制一下長度,以下寫法為推薦的方式
15、:5.1.5 硬碼l 禁止在代碼中出現(xiàn)硬碼引用記錄ID,RecordTypeID,簡檔ID,用戶ID。l 禁止在代碼中出現(xiàn)硬碼引用記錄名稱,用戶名稱,簡單名稱,角色名稱。l 如果特殊情況必須要引用的話,建議考慮用CusomeSetting解決,這樣也避免了硬碼引用的問題,因?yàn)镃usomeSetting是可配置可以修改的。5.1.6 模塊化不推薦一個(gè)方法內(nèi)超超過 100行以上代碼,除非特殊情況,要把大的代碼塊拆分功能到不同的方法中。如果多個(gè)組件應(yīng)用類似邏輯,考慮分離公用方法。5.2 F Apex Code Best Practices5.3 F Developer ResourceHomePag
16、e : Document: 5.4 Visualforce頁面最佳實(shí)踐詳細(xì)內(nèi)容請(qǐng)見:5.5 字段集在Salesforce的每個(gè)業(yè)務(wù)對(duì)象中都有一個(gè)叫字段集的功能,我們可以動(dòng)態(tài)綁定一個(gè)字段集顯示在VF頁面上,這樣的好處是,當(dāng)我們需要調(diào)整需要顯示的字段時(shí),不需要去修改任何VF頁面標(biāo)簽和Apex Code,只需要調(diào)整字段集中的字段和擺放順序就可以實(shí)現(xiàn)。例,如下圖所示是一個(gè)Account詳細(xì)信息頁面下的一個(gè)VF頁面,顯示的內(nèi)容是這個(gè)客戶下所有的聯(lián)系人信息:我們看到有好多列,當(dāng)我們需要調(diào)整這些列的時(shí)候不需要去改任何代碼,只去到聯(lián)系人這個(gè)對(duì)象上找到這個(gè)頁面上綁定的字段集來調(diào)整就OK了。此例中綁定的是DisplayColumns這個(gè)字段集,我們可以打開它來編輯它,編輯頁面上顯示出了聯(lián)系上所有的字段,和一個(gè)FieldsSet,如果我們需要哪些字段就把它們拖到下面的字段集中就好了,然后保存在刷新頁面就可以了,最多限制為50個(gè)字段,詳細(xì)官方解說請(qǐng)見:5.6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《嵌入式復(fù)習(xí)課》課件
- 2025年冀教版八年級(jí)地理下冊(cè)月考試卷
- 《寶潔的銷售管理》課件
- 2025年北師大新版七年級(jí)物理上冊(cè)階段測(cè)試試卷含答案
- 2024年華東師大版六年級(jí)語文上冊(cè)階段測(cè)試試卷
- 2025年滬科版四年級(jí)英語下冊(cè)階段測(cè)試試卷含答案
- 《看圖編故事》指導(dǎo)課件
- 親子游樂場所租賃合同
- 2024年滬教版九年級(jí)歷史上冊(cè)月考試卷含答案
- 2025年統(tǒng)編版選修4化學(xué)下冊(cè)階段測(cè)試試卷
- 少兒編程教育教學(xué)指南
- 2024至2030年臺(tái)鈴項(xiàng)目投資價(jià)值分析報(bào)告
- 2024年時(shí)事政治考點(diǎn)大全(173條)
- DB14-T 2730-2023 產(chǎn)后康復(fù)管理師等級(jí)劃分與評(píng)定
- 礦產(chǎn)資源總體規(guī)劃工作計(jì)劃
- 電力建設(shè)施工質(zhì)量驗(yàn)收及評(píng)定規(guī)程-第1部分:土建工程
- 醫(yī)院消防安全知識(shí)試題及答案
- 高中體育足球教案
- 2025屆內(nèi)蒙古赤峰市、呼和浩特市高考考前模擬物理試題含解析
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案
- 中等職業(yè)學(xué)?!稒C(jī)械制造工藝基礎(chǔ)》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論