Salesforce Developer Experience (dále jen DX) je prezentován jako sada nástrojů pro vývojáře, která si klade za cíl vylepšit a zefektivnit celý vývojový proces. Novinky mají ovlivnit, respektive usnadnit týmový vývoj, přinést automatizaci testování či continuous integration.
Salesforce DX byl poprvé představen na Dreamforce ’16 a ihned se zařadil mezi nejzajímavější a nejočekávanější novinky, a to i přesto, že nebylo stanoveno žádné datum vydání. Při příležitosti vydání Salesforce Summer ’17 byla zpřístupněna i veřejná betaverze Salesforce DX spolu s první dokumentací, tutoriály a vzorovými projekty. V následujících odstavcích si představíme novinky, které Salesforce DX přináší.
Verzovací systém a modularita
V současnosti vývoj probíhá tak, že pokud chce vývojář upravit zdrojové kódy, musí získat aktuální verze dostupné v určitém sandboxu. Totéž platí pro celé vývojové týmy pracující na jednom projektu. Jednotlivé moduly, vyvíjené odděleně, se nasazují jedním a tím samým procesem. Vývojáři si tak musí neustále zaznamenávat, co přidali a upravili, protože jinak nemusí být nasazení do produkčního prostředí či dalšího sandboxu úspěšné.
Salesforce DX přináší to, co vývojáři z jiných platforem považují za samozřejmost, a sice modularitu a verzovací systém jako hlavní zdroj aktuálních dat. Jednotlivé týmy tak mohou pracovat na svých modulech a jejich aktuální verzi uchovávat pouze ve svojí vývojové větvi. Týmy mohou testovat a nasazovat změny nezávisle na ostatních. Moduly mohou obsahovat objekty, workflow nebo Ligtning komponenty. AppExchange balíček je také komponentou.
Scratch prostředí
Další naprostou novinkou v Salesforce světě jsou takzvaná scratch prostředí. Od sandboxů se liší tím, že nezrcadlí rodičovskou organizaci – jsou to tedy zcela prázdná prostředí. Na druhou stranu vynikají tím, že je lze vytvořit či smazat běhěm několika sekund, libovolně konfigurovat, nahrát do nich zdrojové kódy a také předpřipravená data ve formátu JSON. To vše pomocí jednoduchých příkazů, což skvěle zapadá do konceptu automatizace (viz dále). Tvorba a množství prostředí je samozřejmě omezená a prostředí jsou automaticky smazána po sedmi dnech od vytvoření.
Příkazová řádka
Centrem veškerého dění se stává příkazová řádka. Ne kvůli použití verzovacího systému, ale především díky nástroji sfdx, jejž Salesforce připravil. Pomocí tohoto nástroje je možné udělat naprosto všechno, počínaje autentizací lokálního prostředí, přes správu scratch prostředí, až po nasazení do produkce či sandboxu. Umožňuje také spouštění testů a následné prohlížení logů – není třeba vůbec otevírat Salesforce konzoli. Příkaz toho umí mnohem více, toto je jen výčet toho nejdůležitějšího.
Nástroj sfdx je k dispozici pro Windows, macOS i Debian/Ubuntu. Samozřejmě není nutné používat příkazovou řádku přímo, stačí použít odpovídající IDE. Ostatně oficiální plug-in pro Eclipse anebo Illuminated Cloud pro IntelliJ IDEA jsou již k dispozici pro betaverzi Salesforce DX.
Automatizace
S příkazovou řádkou vždy příchází možnost psaní skriptů a s tím související velká výhoda automatizace. Jako příklad se nabízí jednoduchý skript, který pomoci několika málo příkazů otestuje poslední změny v novém scratch prostředí, jež si nejdříve sám vytvoří, zkontroluje výstupy testů a nakonec scratch prostředí zase smaže. Ruční spouštění testů se tak stane minulostí a vývojářům se uleví.
Osobně jsem se k novinkám stavěl trochu skepticky, ale po detailnější prozkoumání, vyzkoušení si vzorového projektu a chvíli hraní si s příkazem sfdx, jsem se začal na novinky opravdu těšit. Bohužel se stále neví, za jak dlouho bude Salesforce DX k dispozici. Podrobnější informace, kompletní přehled příkazů a vzorový projekt lze nalézt pod odkazy níže.
Použité zdroje:
https://developer.salesforce.com/platform/dx
https://gearset.com/blog/salesforce-dx
https://github.com/forcedotcom/sfdx-dreamhouse
https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_intro.htm
https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_intro.htm
https://www.testpilot.io/blog/salesforce-dx-sfdx-force-command-preview
https://trailhead.salesforce.com/modules/sfdx_app_dev
https://trailhead.salesforce.com/modules/sfdx_dev_model
https://trailhead.salesforce.com/modules/sfdx_travis_ci