什麼是 Apex? 它跟 Salesforce 有什麼關係? - 沃克雲端
salesforce apex

什麼是 Apex? 它跟 Salesforce 有什麼關係?

Apex 是 Salesforce 的新一代程式語言。它提供許多優點,包括更快的開發時間和更高的生產力,但它也比其他語言(如 Java 或 Python)更難學習。

1. Apex 概覽


在了解 Apex 之前,我們應該對 Salesforce 有基本的了解。所以讓我們看看並了解 Salesforce 是什麼。

Salesforce 是全球排名第一的 CRM(客戶關係管理)平台,它允許其客戶在線上開發和使用他們的應用程式,而無需購買基礎建設、進行設定和管理所有內容。在 Salesforce 之前,公司過去常常在他們的伺服器上託管他們的 CRM 解決方案,並且需要數個月甚至數年的時間來設定所有內容,而所有這些成本都變得太高而無法負擔。然後 Salesforce 推出了 SaaS(軟體即服務)解決方案。它取代了冗長的安裝過程、昂貴的授權合約,只需允許在雲端維護所有內容,並且每月只需支付少量訂閱費用。

此外,它的 Lightning 平台允許客戶快速、輕鬆且有效地創建應用程式。在了解 Salesforce 是什麼之後,您一定會想到 Apex 及其在 Salesforce 中的作用。因此,Apex 是一種像 Java、Python 等的程式語言。

Apex 是一種強類型(這意味著我們必須明確定義資料的資料類型,並且編譯器將考慮指定類型的資料,而不是其他類型)、物件導向(基於像 Java 一樣的物件概念)的程式語言,它被開發人員用來在 Flow.com 伺服器上創建應用程式。開發人員可以執行流程和交易控制語句,並使用 Apex 向 Flow.com API 發出 API 呼叫。因此,Apex 徹底改變了開發人員創建隨選應用程式的方式。此外,它還允許客戶在其應用程式中新增商業邏輯。

2. Apex 的功能


以下是 Apex 的功能:

  • 易於使用:Apex 非常容易使用,因為它使用類似 Java 的語法,這非常容易理解和編碼。Apex 使用簡單的迴圈語法、區塊和條件語句語法、物件和陣列註釋,類似於 Java 語法。
  • 整合:Apex 內建支援 DML 操作,如 Insert、Delete、Update 和內建 DML 異常處理。此外,它支援迴圈,允許一次處理多個記錄。此外,它還支援 SOQL 和 SOSL 查詢處理,它們傳回一組主題記錄。
  • 強類型:Apex 是一種強類型語言,這意味著使用者需要定義每個變數的資料類型,這在編譯時不會造成任何混淆。
  • 多租戶環境:像其他 Lightning 平台一樣,Apex 在多租戶環境中執行,這意味著只有一個執行個體在伺服器上執行,並為多個租戶提供服務。
  • 易於測試:Apex 提供內建支援來建立和執行單元測試。它包含測試結果,以便使用者可以了解覆蓋了多少程式碼。此外,它確保在任何平台升級之前執行整個程式碼。

3. 我們應該在何時使用 Apex?


Apex 允許其開發人員創建複雜的 CRM 應用程式,這些應用程式提供 Salesforce 資料庫和客戶端-伺服器介面來創建第三方 SaaS 應用程式。它還允許根據複雜的業務需求自定義預建應用程式。這是因為 Apex 提供了如此多的工具來創建應用程式。以下是一些選擇 Apex 開發應用程式的重要原因:

  • 開發人員可以使用 Apex 創建與不同系統整合的 Web 服務。此外,使用 API 呼叫與不同應用程式互動的應用程式可以使用 Apex 輕鬆開發。
  • 創建需要複雜商業邏輯且工作流程不支援的應用程式。
  • 創建電子郵件服務。
  • 使用複雜交易邏輯的應用程式,其中必須維護整個交易記錄,而不僅僅是單個記錄。
  • 執行一些邏輯,其中需要更新記錄,就像觸發器一樣。(當發生某些情況並更新記錄時,會注入事件)。

4. Apex 如何運作?


Apex 完全在隨選 Lightning 平台上執行,所有資料(程式碼)都保存在雲端中。因此,沒有儲存程式碼和維護它的負擔。

  • **對於開發人員:**當開發人員編寫程式碼並將其儲存到平台應用程式伺服器時,伺服器首先將程式碼編譯成一組可以被 Apex 執行階段直譯器理解的指令,然後將這些指令儲存為元資料。
  • **對於終端使用者:**當終端使用者觸發執行 Apex 程式碼時,平台應用程式伺服器會檢索那些儲存為元資料的已編譯指令,並將其傳送到執行階段直譯器,然後將結果傳送到客戶端。

對於開發人員和終端使用者來說,使用 Apex 與在標準平台應用程式中工作一樣容易。

5. Apex 優點


  • 無需購買基礎建設和聘請 IT 人員,因為 Salesforce 提供所有工具。
  • 具成本效益,因為維護應用程式的成本、各種軟體的授權成本遠高於購買 Salesforce 的每月訂閱費用。
  • 應用程式的安全性,Salesforce 為終端使用者提供完整的身份驗證和授權,以存取應用程式。
  • 開發人員在 Salesforce.com 平台上開發應用程式很容易,因為開發人員可以使用現有的應用程式,或根據業務需求變更現有的應用程式。
  • 提供隨選和多租戶平台。此外,Apex 允許其開發人員存取 Salesforce.com 後端資料庫到第三方 SaaS 應用程式。

6. Apex 缺點


雖然 Apex 沒有主要的缺點,但有一些限制,如下所述:

  • 無法在 Apex 中建立執行緒,不像其他程式語言。
  • 如果需要,開發人員無法變更標準功能。它只能阻止該功能包含在程式碼中,或新增一些新功能。
  • 無法在 Apex 中建立暫存檔案。
  • 開發人員需要記住,他們建立的應用程式應該處理多個記錄(更新、插入),因為所有 Apex 請求都從資料庫傳回大量記錄集合。
  • 無法在使用者介面上顯示元素。

7. 這項技術如何幫助您的職業發展?


隨著各行各業從 IT 和 CRM 轉向雲端,這有助於公司減少基礎架構的負擔,而專注於擴展業務。因此,作為 Salesforce 開發中使用的語言,Apex 正被 AWS、美國銀行、Dell、Accenture、Deloitte、Farmers Insurance 等大型組織所接受,因為它有助於提升他們的業務。

為了轉向隨選和多租戶平台,組織正在尋找在 Salesforce 開發方面有良好知識的人員,例如 Salesforce 開發人員、Salesforce 管理員、變更管理、領域管理、產品目錄、部署策略等等。學習 Salesforce 可以改變一個人的職業道路,並為 IT 專業人員開啟新的工作機會。

作為一種語言,Apex 具有以下特點:

  • 整合性: Apex 為常見的 Lightning 平台慣用語提供內建支援,包括:
    • 資料操作語言 (DML) 呼叫,例如 INSERT、UPDATE 和 DELETE,包括內建的 DmlException 處理。
    • 內聯 Salesforce 物件查詢語言 (SOQL) 和 Salesforce 物件搜尋語言 (SOSL) 查詢,它們傳回主題記錄列表。
    • 允許一次批量處理多個記錄的迴圈。
    • 防止記錄更新衝突的鎖定語法。
    • 可以從儲存的 Apex 方法建立的自定義公共 API 呼叫。
    • 當使用者嘗試編輯或刪除 Apex 參考的自定義物件或欄位時,會發出警告和錯誤。
  • 易於使用: Apex 基於熟悉的 Java 慣用語,例如變數和表達式語法、區塊和條件語句語法、迴圈語法、物件和陣列表示法。在 Apex 引入新元素的地方,它使用易於理解的語法和語義,並鼓勵有效使用 Lightning 平台。因此,Apex 產生的程式碼既簡潔又易於編寫。
  • 以資料為中心: Apex 旨在將多個查詢和 DML 語句串連到 Salesforce 伺服器上的單個工作單元中。開發人員使用資料庫預存程序以類似的方式將多個交易語句串連在資料庫伺服器上。像其他資料庫預存程序一樣,Apex 不會嘗試為在使用者介面中呈現元素提供一般支援。
  • 嚴謹性: Apex 是一種強類型語言,它直接引用綱要物件,例如物件和欄位名稱。如果任何引用無效,它會在編譯時快速失敗。它將所有自定義欄位、物件和類別相依性儲存在元資料中,以確保它們不會在活動 Apex 程式碼需要時被刪除。
  • 託管性: Apex 完全由 Lightning 平台解釋、執行和控制。
  • 多租戶感知: 像 Lightning 平台的其餘部分一樣,Apex 在多租戶環境中執行。因此,Apex 執行階段引擎旨在防止失控程式碼,防止它壟斷共享資源。任何違反限制的程式碼都會失敗,並顯示易於理解的錯誤訊息。
  • 易於測試: Apex 為單元測試的建立和執行提供內建支援。它包括測試結果,指示覆蓋了多少程式碼,以及程式碼的哪些部分可能更有效率。此外,Salesforce 確保所有自定義 Apex 程式碼都能按預期運作,方法是在任何平台升級之前執行所有單元測試。
  • 版本控制: 您可以針對不同版本的 API 儲存您的 Apex 程式碼。這使您能夠維持行為。

Apex 包含在 Performance Edition、Unlimited Edition、Developer Edition、Enterprise Edition 和 Database.com 中。

8. 學習 Apex 基礎知識的 4 個最佳資源


學習 Apex 並不容易,但只要用對方法,絕對可以成功。以下提供四個學習 Apex 基礎知識的絕佳資源:

  1. Deepika Khana (Udemy and YouTube)

Deepika Khana 在 Udemy 上開設了 Apex 課程。她的「Salesforce Apex 程式語言」課程假設您沒有任何程式設計經驗,從 Apex 的核心基礎(如物件和變數)開始教起,然後逐步進展到更複雜的主題。

許多學員都很喜歡她的教學方式,因為她從 Apex 的核心基礎開始,像物件和變數等,然後逐步引導到更複雜的主題。

雖然 Deepika 的大部分教學內容都可以在 YouTube 上找到,但她在 Udemy 上的課程更全面。您通常可以用 10 美元左右的價格購買 Udemy 課程,而且課程是永久有效的。

  1. Apex Academy (Pluralsight)

David Liu 的 Apex Academy 範例很容易理解,因為它假設您沒有任何程式設計經驗。本課程唯一的缺點是 Apex Academy 託管在 Pluralsight 上,後者提供每月訂閱服務(29 美元)。一旦您停止訂閱,您就無法再存取課程資料。Udemy 上的課程則沒有這個問題。

  1. Parikshith M (Youtube)

Parikshith 在 YouTube 上有一個很棒的頻道,提供一系列適合完全初學者的影片。我的學生覺得他「對 Apex 集合、for 迴圈以及類別和方法提供了很好的解釋」。

  1. System dot Debug (Youtube)

這個系列的 6 分鐘影片涵蓋了核心 Apex 主題。我的學生說它們「在您需要對 System.debug 進行精確而簡短的解釋、分析執行日誌以及理解列表、映射和匿名 Apex 等內容時,真的很有幫助」。

9. 重要的 Apex 工具


  • Illuminated Cloud

Illuminated Cloud 是 IntelliJ 的一個很棒的插件。高級 Salesforce 開發人員使用它,但它對於初學者來說也非常方便。Illuminated Cloud 由於具有程式碼補全和快捷鍵功能,因此可以加速您的 Apex 學習。此外,它還可以幫助您找出程式碼中的錯誤。例如,如果您忘記在行尾寫分號,它會告訴您它需要分號,並以紅色突出顯示您的程式碼部分。另外,如果您在使用 Illuminated Cloud 時遇到問題,其創始人 Scott Wells 會提供高品質且快速的支援。

  • Google

這可能看起來微不足道,但您必須成為 Google 大師。任何您覺得困惑或難以理解的東西,都用 Google 搜尋!100% 的機率是其他人也有過與您相同的問題,而您所需要做的就是在論壇或 Salesforce 文件中找到該問題,並內化這些資訊。這最初並不容易,但隨著您不斷地使用 Google 搜尋,您將建立起這項技能,然後在 10 秒內找到問題的答案。

10. 建立正確的 Apex 態度


  • 練習和重複: 成為一名有能力的程式設計師沒有捷徑。只有決心每天投入 3 小時的學生才會成功。您應該每次都從頭開始,並改變您的 Salesforce 物件或邏輯。
  • 與他人合作學習 Apex: 透過解釋和回答彼此的問題,並一起克服小障礙,核心 Apex 概念將更直觀地深入人心。練習逐行解釋您的程式碼,您將很快發現您的薄弱環節。
  • 如果您遇到困難,請考慮幾種策略。 不要浪費時間和精力盯著電腦螢幕,卡在那裡。讓您的大腦休息一下,起身做一些體力活動(例如散步)。您的身體會永遠感激您!然後考慮將您的程式碼問題發佈到熱門的 Salesforce 論壇,例如:

11. 早期應避免的事項


  • Trailhead 上的 Apex 基礎知識。Trailhead 非常適合學習 Salesforce 管理概念,但學習 Apex 的資料不適合初學者,而是針對有程式設計經驗的人。
  • Apex Hours:這是一個不錯的 YouTube 頻道,提供一系列針對 Salesforce 初學者的影片,但這些影片更適合中級觀眾,而不是初學者。
  • 不要學習 Java。您應該專注於 Apex。學習 Java 並閱讀像 HeadFirst 這樣的書籍(正如 David Liu 所建議的那樣)在幾年前是一個好主意,當時學習 Apex 的資料很少。但現在情況不再如此。因此,沒有必要使用 Java 繞道而行來學習 Apex。

12. 總結


學習 Apex 並不容易,但您可以做到。堅持下去!這是一段旅程,它會讓您更聰明,在就業市場上更受歡迎。結合上述四個資源以及兩個工具和三種態度,將使您在關鍵時刻取得勝利。每天學習!勝利在望。

▍必讀文章:

文章分享:

▍必讀文章

有任何問題或申請免費試用,歡迎留下聯絡方式,我們將儘快與您聯絡!

Salesforce
沃克雲端 CRM 軟體導入商

沃克雲端 Salesforce CRM 軟體導入顧問