Salesforce DX 簡介

Salesforce DX

Salesforce DX (Salesforce Developer Experience) 是 Salesforce 推出的一個新的開發(fā)和部署模式床三,旨在提供更好的開發(fā)者體驗女仰。在 Salesforce 官網(wǎng)和 Trailhead 網(wǎng)站中都可以找到很多相關的介紹和教程。目前 Salesforce DX 的某些文檔還處于 Beta 階段。

本文將簡單介紹其優(yōu)點和開發(fā)流程帜乞。

Salesforce DX 的優(yōu)點

Salesforce DX(下面簡稱SFDX)有兩個主要優(yōu)點:

  1. SFDX 符合快速迭代的開發(fā)模式
  2. SFDX 提供了統(tǒng)一的命令行工具在代碼庫和服務器之間進行通信和同步

SFDX 對快速迭代的支持

在 Salesforce DX(下面簡稱SFDX)出現(xiàn)之前,開發(fā)者主要是通過部署不同類型的沙盒進行開發(fā)狂鞋,如圖所示:

開發(fā)環(huán)境結(jié)構(gòu)圖

圖片取材于官方文檔躏结。

這種結(jié)構(gòu)的缺陷在于沙盒環(huán)境的搭建菇存。

在多個功能同時進行開發(fā)的情況下夸研,需要同時擁有多個開發(fā)的沙盒,即上圖的“Developer Sandbox”依鸥。這些沙盒沒法同時擁有所有已經(jīng)開發(fā)的功能亥至。隨著項目的發(fā)展,越來越多的沙盒會因為沒有特定的功能而“過時”毕籽,這就需要創(chuàng)建新的沙盒或刷新已有的沙盒抬闯。而這些操作需要耗費大量的時間井辆,對于敏捷開發(fā)和快速迭代造成影響关筒。

為了改進這種缺陷,SFDX 提供了一種新的概念:Scratch org杯缺。Scratch org 是一種可以快速搭建的“沙盒”蒸播,只包含了特定的功能。開發(fā)者可以通過 SFDX 中的設置快速創(chuàng)建 Scratch org萍肆,在上面開發(fā)新的功能袍榆,然后將所做的更改直接提取出來放到代碼庫中進行整合。

通過這樣一種流程塘揣,之前笨重的“開發(fā)沙盒”就被輕盈的 Scratch org 所取代包雀,為快速迭代和持續(xù)集成提供了更好的支持。

Salesforce 命令行工具

Salesforce 隨著 SFDX 一起推出了命令行工具(下面簡稱 CLI)亲铡。在此之前才写,開發(fā)者一般使用官方的 Force.com IDE 或其他第三方插件(比如 MavensMate)來進行本地代碼和服務器之間的通信。CLI 作為整合這些功能的工具而出現(xiàn)奖蔓。它可以和各種代碼編輯器結(jié)合使用赞草,包含了在開發(fā)中需要的各種操作和命令,讓開發(fā)者可以更方便的將本地修改上傳到各種 Scratch org 中或者將 Scratch org 中的修改同步到本地代碼庫吆鹤。

SFDX 開發(fā)過程示例

下面通過一些簡單的例子來說明 SFDX 的工作流程厨疙。

前提條件

在使用 SFDX 開發(fā)之前,需要先完成以下幾個部分:

  1. 擁有一個 Salesforce 環(huán)境來作為基礎(在 SFDX 中被稱為“Dev Hub”)疑务。Scratch org 就會基于它來建立
  2. 在第一步中的 Salesforce 環(huán)境中啟用“Dev Hub”功能沾凄。可以通過設置界面搜索“Dev Hub”來啟用
  3. 安裝 Salesforce CLI 工具

登錄“Dev Hub”環(huán)境

在進行開發(fā)之前知允,先要登錄 Dev Hub 環(huán)境撒蟀。

打開命令行,輸入命令:

sfdx force:auth:web:login -d -a ExampleDevHub

在此命令之后廊镜,系統(tǒng)會自動打開瀏覽器牙肝,顯示 Salesforce 的登錄頁面。在此頁面中像平時一樣登錄要作為“Dev Hub”的 Salesforce 環(huán)境即可。在登錄之后配椭,這個“Dev Hub”就被作為接下來創(chuàng)建 Scratch org 的基礎虫溜,記錄在系統(tǒng)中。

命令講解:

  1. “sfdx force:auth:web:login”部分是基礎命令股缸,用來登錄
  2. “-d”參數(shù)是設定接下來登錄的“Dev Hub”是默認的衡楞。系統(tǒng)中可以同時擁有多個“Dev Hub”。要注意的是敦姻,當創(chuàng)建了 Scratch org 后瘾境,這條命令也可以用來登錄 Scratch org。在這時镰惦,不要使用“-d”參數(shù)
  3. “-a”參數(shù)是為這個“Dev Hub”設定一個好記的別名迷守。在這里我們使用“ExampleDevHub”

在命令行中輸入命令:

sfdx force:org:open -u ExampleDevHub

即可打開瀏覽器直接進入剛才建立的以“ExampleDevHub”為別名的“Dev Hub”環(huán)境

當創(chuàng)建了 Scratch org 后,這條命令也可以用來打開瀏覽器直接進入 Scratch org旺入。

建立 SFDX 項目

在使用 SFDX 之前兑凿,需要先建立一個項目。

在命令行中使用以下命令建立一個名為“ExampleProj”的項目:

sfdx force:project:create -n ExampleProj

該命令會建立以下目錄結(jié)構(gòu):

SFDX 項目目錄結(jié)構(gòu)圖

其中茵瘾,“sfdx-project.json”文件包含了該項目的基本信息礼华,“config”文件夾下的“project-scratch-def.json”文件包含了建立 Scratch org 的基本配置信息,“force-app”目錄則用來存放代碼拗秘。

建立 Scratch org

使用命令行進入 SFDX 項目的目錄圣絮,然后輸入以下命令即可建立一個 Scratch org:

sfdx force:org:create -s -f config/project-scratch-def.json -a ExampleScratchOrg

命令解釋:

  1. “-s”參數(shù)把即將建立的 Scratch org 作為該項目默認的 Scratch org
  2. “-f”參數(shù)聲明了即將建立的 Scratch org 是基于哪一個配置文件
  3. “-a”參數(shù)是設定別名

接下來使用命令:

sfdx force:org:open -u ExampleScratchOrg

即可打開瀏覽器直接進入剛才建立的以“ExampleScratchOrg”為別名的 Scratch org。

使用命令:

sfdx force:org:list

可以查看當前系統(tǒng)中已經(jīng)記錄的“Dev Hub”環(huán)境和已經(jīng)建立的 Scratch org 列表雕旨。

使用 Scratch org

在 Scratch org 中扮匠,開發(fā)者(或管理員)可以和使用真正的 Salesforce 環(huán)境一樣開發(fā)或配置功能。于此同時奸腺,Salesforce CLI 工具也提供了一系列的命令來進行相關的操作餐禁,比如建立 Apex 類、建立 Lightning 組件等突照。

代碼庫與 Scratch org 同步

SFDX 的一個重要功能就是將代碼庫與 Scratch org 同步帮非。Salesforce CLI 提供了兩個重要的命令來實現(xiàn)這些操作:

  • sfdx force:source:pull
  • sfdx force:source:push

將更改從 Scratch org 同步到本地代碼庫

開發(fā)者可以登錄 Scratch org 進行開發(fā)和配置。當完成開發(fā)后讹蘑,可以在 SFDX 中使用命令“sfdx force:source:pull”來將更改同步到本地的代碼庫末盔。

比如:在上面建立的 Scratch org 中建立一個新的自定義對象“地址”,API 名字叫“Address__c”座慰。

要將此更改同步到本地代碼庫陨舱,可以在命令行中運行:

sfdx force:source:pull

運行的結(jié)果如圖:

SFDX pull 命令結(jié)果

可以看到,剛才建立的新的自定義對象版仔,包括隨之生成的頁面布局游盲,以及相關的簡檔設置都以元數(shù)據(jù)的形式保存到了“force-app”文件夾中误墓。

接下來開發(fā)者可以將此更改拷貝到 Git 或其他代碼庫中進行提交。

將更改從本地代碼庫同步到 Scratch org

在本地代碼庫中益缎,也可以新建一些組件谜慌,比如 Apex 類或 Lightning 組件等,然后通過命令“sfdx force:source:push”將其同步到 Scratch org 中莺奔。

比如:在之前建立的 Scratch org 中并沒有任何 Apex 類欣范,我們在命令行中運行:

sfdx force:apex:class:create -n AccountController -d force-app/main/default/classes

這條命令就在本地代碼庫的文件夾“force-app/main/default/classes”下面建立了一個名叫“AccountController”的 Apex 類。

然后在命令行中運行:

sfdx force:source:push

運行的結(jié)果如圖:

SFDX push 命令結(jié)果

接下來令哟,我們登錄 Scratch org恼琼,進入 Developer Console,可以看到剛才建立的 Apex 類“AccountController”已經(jīng)被同步過來了屏富。

同步到 Scratch org 的 Apex 類
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晴竞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子役听,更是在濱河造成了極大的恐慌颓鲜,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件典予,死亡現(xiàn)場離奇詭異,居然都是意外死亡乐严,警方通過查閱死者的電腦和手機瘤袖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昂验,“玉大人捂敌,你說我怎么就攤上這事〖惹伲” “怎么了占婉?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長甫恩。 經(jīng)常有香客問我逆济,道長,這世上最難降的妖魔是什么磺箕? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任奖慌,我火速辦了婚禮,結(jié)果婚禮上松靡,老公的妹妹穿的比我還像新娘简僧。我一直安慰自己,他們只是感情好雕欺,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布岛马。 她就那樣靜靜地躺著棉姐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪啦逆。 梳的紋絲不亂的頭發(fā)上谅海,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音蹦浦,去河邊找鬼扭吁。 笑死,一個胖子當著我的面吹牛盲镶,可吹牛的內(nèi)容都是我干的侥袜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼溉贿,長吁一口氣:“原來是場噩夢啊……” “哼枫吧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宇色,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤九杂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宣蠕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體例隆,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年抢蚀,在試婚紗的時候發(fā)現(xiàn)自己被綠了镀层。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡皿曲,死狀恐怖唱逢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情屋休,我是刑警寧澤坞古,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站劫樟,受9級特大地震影響痪枫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜毅哗,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一听怕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧虑绵,春花似錦尿瞭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽黑竞。三九已至,卻和暖如春疏旨,著一層夾襖步出監(jiān)牢的瞬間很魂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工檐涝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留遏匆,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓谁榜,卻偏偏與公主長得像幅聘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子窃植,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容