Definicja #
Apex to zastrzeżony, silnie typowany, obiektowy język programowania opracowany przez Salesforce. Działa wyłącznie na platformie Salesforce — nie jest językiem ogólnego przeznaczenia. Składnią przypomina Javę, co ułatwia adaptację deweloperom z doświadczeniem w Javie lub C#.
Kluczowe cechy Apex:
- Integracja z Salesforce — bezpośredni dostęp do obiektów Salesforce (SObject), SOQL (Salesforce Object Query Language) i DML (Data Manipulation Language) jako pierwszoklasowe elementy języka
- Triggers — kod wykonywany automatycznie przed lub po operacjach DML na obiektach Salesforce (before insert, after update itp.)
- SOQL i SOSL — języki zapytań Salesforce; SOQL do zapytań obiektów (podobny do SQL), SOSL do pełnotekstowego wyszukiwania
- Governor Limits — ograniczenia narzucone przez Salesforce na użycie zasobów (maks. 100 zapytań SOQL, 150 DML per transakcja); wymuszają efektywny kod
- Test Coverage — Salesforce wymaga min. 75% pokrycia kodu testami przed wdrożeniem na produkcję
- Klasy i interfejsy — OOP: dziedziczenie, polimorfizm, interfejsy; standardowe biblioteki Salesforce (Database, Schema, System)
- Asynchroniczność — @Future, Queueable Apex, Batch Apex, Scheduled Apex do długotrwałych operacji
Apex jest ściśle powiązany z innymi technologiami Salesforce:
- LWC (Lightning Web Components) — nowoczesny framework UI Salesforce (JavaScript/HTML); Apex jako backend przez @AuraEnabled metody
- Visualforce — starsza technologia UI Salesforce z Apex jako backendem
- Flow — deklaratywna automatyzacja Salesforce (low-code); Apex jako uzupełnienie dla złożonej logiki
Zastosowania #
- Customizacja logiki biznesowej Salesforce — implementacja reguł, które nie są możliwe przez deklaratywną konfigurację (Flow, Process Builder)
- Triggers na obiektach — automatyczne wykonywanie logiki przy tworzeniu, aktualizacji lub usuwaniu rekordów CRM
- Integracje REST/SOAP — wywoływanie zewnętrznych API z platformy Salesforce (HttpRequest, Named Credentials)
- Batch processing — przetwarzanie dużych zbiorów danych (Batch Apex) z obejściem Governor Limits przez podział na porcje
- Testy jednostkowe — wymagane min. 75% pokrycie kodu; Salesforce wymusza kulturę testowania
Ścieżka nauki #
Apex jest językiem niszowym — nauka jest uzasadniona wyłącznie przy pracy z platformą Salesforce.
Zacznij od:
- Trailhead (trailhead.salesforce.com) — bezpłatna platforma edukacyjna Salesforce; moduł "Apex Basics & Database"
- Developer Edition org — bezpłatne środowisko Salesforce do nauki i eksperymentowania
- Podstawy Apex: zmienne, kolekcje (List, Set, Map), SOQL, DML, klasy
- Triggers: before/after insert/update/delete; handler pattern (TriggerHandler)
Następnie pogłębiaj:
- Governor Limits — zrozumienie ograniczeń i wzorce ich obejścia (bulkification, SOQL poza pętlami)
- Asynchronous Apex: @Future, Queueable, Batch, Scheduled
- LWC (Lightning Web Components) — JavaScript frontend komunikujący się z Apex
- Certyfikacje Salesforce: Platform Developer I (PD1) — podstawowa certyfikacja Apex developera
FAQ #
- Czym jest Apex i do czego służy?
- Apex to język programowania stworzony przez Salesforce do rozszerzania platformy Salesforce CRM. Działa wyłącznie na infrastrukturze Salesforce — nie można go używać poza tą platformą. Służy do implementacji złożonej logiki biznesowej, automatyzacji (triggers), integracji z zewnętrznymi systemami i przetwarzania dużych wolumenów danych (Batch Apex).
- Czym są Governor Limits w Apex?
- Governor Limits to ograniczenia narzucone przez Salesforce na zużycie zasobów per transakcja: maks. 100 zapytań SOQL, 150 operacji DML, 6 MB pamięci, 100 wywołań HTTP (callouts). Wymuszają pisanie efektywnego, bulkified kodu — SOQL nie może być wykonywany w pętlach, operacje DML muszą być zbiorowe. Governor Limits to kluczowa koncepcja w nauce Apex.
- Czym różni się Apex od Javy?
- Apex jest składniowo podobny do Javy (klasy, interfejsy, dziedziczenie, silne typowanie), ale ma fundamentalne różnice: działa tylko na platformie Salesforce, ma wbudowany SOQL i DML jako elementy języka, nie posiada dostępu do systemu plików ani zewnętrznych bibliotek (tylko biblioteki Salesforce), i podlega Governor Limits. Nie można używać Javy zamiast Apex w Salesforce.
- Ile zarabia Salesforce Developer znający Apex?
- Salesforce Developer ze znajomością Apex zarabia w Polsce od 12 000 do 28 000 zł brutto. Salesforce jest niszowym, wysokopłatnym ekosystemem — popyt na certyfikowanych deweloperów (Platform Developer I/II) przewyższa podaż. Certyfikacja Salesforce znacząco podnosi wartość rynkową.