Łatwiej i szybciej – tak programuje się w Salesforce
Dojrzałość technologii i liczne gotowe rozwiązania to bez wątpienia największe atuty Salesforce. Programista, który rozpoczyna pracę nad nowym projektem, nie musi zastanawiać się nad integracją swojej aplikacji z bazą danych, implementacją systemu zarządzania użytkownikami i metodą ich logowania, ani nad tym, w jaki sposób będzie przeprowadzona internacjonalizacja (obsługa wielu języków) aplikacji. Te (oraz wiele innych) funkcjonalności są dostępne out-of-the-box w Salesforce.
Dzięki nim programista nie traci czasu na zajmowanie się podstawowymi problemami dotyczącymi architektury systemu. Może skupić się na dostarczeniu wysokiej jakości produktu, zgodnego z wymaganiami klienta i zrobić to znacznie szybciej niż wtedy, gdyby korzystał z innych popularnych technologii, np. Java, PHP, Python czy Ruby.
Narzędzia dostępne od ręki
Salesforce jest systemem typu PaaS (ang. Platform as a Service) i to jego kolejna zaleta. Nie ma potrzeby rozwiązywania problemu hostingu aplikacji i zarządzania nim, ponieważ Salesforce to rozwiązanie w chmurze. Dodatkowo Platforma udostępnia programistom środowisko produkcyjne do wdrażania aplikacji oraz zestaw sandboxów, na których aplikacja jest rozwijana i testowana przed wdrożeniem na produkcję.
Ponadto, nie trzeba przeprowadzać testów obciążeniowych, ponieważ Salesforce gwarantuje wykonanie danych operacji w określonym czasie, niezależnie od liczby transakcji czy liczby użytkowników. Nie ma więc ryzyka spadku wydajności aplikacji w momencie gwałtownego zwiększenia ilości rekordów w bazie danych, ponieważ Platforma automatycznie dostosowuje swoje limity do aktualnych potrzeb.
To tylko kilka przykładów licznych zalet i udogodnień, które wyróżniają Salesforce na tle tradycyjnych technologii. Brzmi ciekawie, prawda? Czujesz, że w takim środowisku programistycznym chciałbyś pracować?
Od juniora do architekta
Pora zatem dowiedzieć się, jak mogłaby wyglądać ścieżka Twojego rozwoju w Salesforce. Załóżmy, że stawiasz pierwsze kroki w programowaniu. Prześledźmy kolejne etapy Twojej przyszłej kariery jako programista Salesforce.
Junior developer
Od tego stanowiska zaczynają nowicjusze w świecie IT. Przede wszystkim – uczą się od mentorów i tworzą małe elementy systemu. Na tym etapie programista musi poznać zarówno deklaratywne narzędzia do tworzenia aplikacji, jak i frameworki/języki programowania oferowane przez Platformę Salesforce. Co ważne – musi też poznać różnice między nimi, żeby w przyszłości wiedzieć, czy daną funkcjonalność można zaimplementować w ciągu kilku minut bez napisania nawet jednej linijki kodu, czy jednak trzeba skorzystać z możliwości pisania własnych komponentów aplikacji.
Regular/mid developer
Osoba na tym stanowisku ma już dużą wiedzę o Platformie i jej możliwościach. Nie potrzebuje pomocy doświadczonych programistów w takim stopniu jak junior. Jest w stanie zaproponować optymalne rozwiązanie dla danego problemu biznesowego. Często doświadczeni programiści innych języków, np. Java czy C#, którzy chcą zmienić swoją technologię na Salesforce i zaraz po odbyciu odpowiedniego szkolenia zaczynają właśnie od tego stanowiska.
Mimo że Salesforce jest zamkniętą technologią, stara się oferować narzędzia zgodne z ogólnie przyjętymi standardami, co w przypadku przejścia z innego języka znacznie ułatwia start. Przykładem takiego narzędzia jest Apex – obiektowy język programowania, wykorzystywany w Salesforce po stronie backendu, ze składnią bardzo podobną do Javy. Apex posiada wiele przydatnych udogodnień, jak np. integracja z bazą danych i możliwość pisania bezpośrednich zapytań za pomocą języka SOQL (ang. Salesforce Object Query Language). Tabele w bazie danych są automatycznie traktowane jako obiekty w języku Apex, dzięki czemu nie trzeba tracić czasu na konfigurację mapowania obiektów klas na bazę danych (tak jak np. w popularnym frameworku do Javy – Hibernate).
Po stronie frontendu programista może wykorzystać framework LWC (ang. Lightning Web Components), który jest zgodny ze standardem ECMAScript 6. Dodatkowo LWC oferuje bogatą bibliotekę gotowych komponentów, które znacznie przyspieszają tworzenie aplikacji.
Senior developer
Ma bardzo dużą wiedzę o Platformie Salesforce popartą wieloletnim doświadczeniem zawodowym. W przypadku skomplikowanych wymagań biznesowych pełni rolę konsultanta podczas wyboru odpowiedniego rozwiązania. Często również kieruje zespołem programistów i przydziela im zadania.
Konsultant/solution engineer
Gdy programista z dużą wiedzą i doświadczeniem decyduje się na rozwój w kierunku bardziej zaawansowanej współpracy z klientem – zostaje konsultantem. Jak wskazuje nazwa, osoba na tym stanowisku poświęca dużo czasu na kontakt z klientem oraz omawianie z nim możliwych rozwiązań, które usprawnią jego procesy biznesowe. Dzięki obszernej wiedzy o Platformie Salesforce jest w stanie zaproponować optymalne rozwiązanie przy jednoczesnej minimalizacji kosztów.
Architekt
Ma bardzo dużą wiedzę nie tylko o Platformie Salesforce, ale także technologiach z nią powiązanych, jak np. Heroku czy MuleSoft. Architekci poświęcają niewiele czasu na programowanie – zajmują się opracowaniem architektury aplikacji, sposobu integracji z zewnętrznymi systemami czy metody archiwizacji danych, dbają o wybór odpowiedniego repozytorium kodu oraz Continuous Integration. Rola architekta jest ważna przede wszystkim w przypadku dużych aplikacji, gdzie odpowiednio zaprojektowana architektura gwarantuje niezawodność systemu oraz łatwość jego dalszego rozwoju, bez konieczności rezygnacji z wcześniej zaimplementowanych rozwiązań na rzecz nowych.
Podsumowanie
Jak widać Platforma Salesforce – dzięki zgodności z obecnie panującymi standardami i trendami w świecie IT – bardzo ułatwia programistom przejście do niej z innych technologii, zwłaszcza z Javy. Otwiera wiele atrakcyjnych możliwości i pozwala na wybór specjalizacji na późniejszych etapach kariery.
A zatem – gotowy na Salesforce? Sprawdź nasze aktualne ogłoszenia o pracę.
- Salesforce Developer
-
Doświadczony programista, który w Craftware bierze udział we wszystkich etapach tworzenia projektów, od zbierania wymagań rozpoczynając, poprzez zaproponowanie rozwiązań na wdrożeniu kończąc. Projekty, w których uczestniczy bazują na wykorzystaniu Service Clouda, integracji z zewnętrznymi systemami i tworzeniu niestandardowych rozwiązań z wykorzystaniem technologii oferowanych przez Salesforce: Apex, Visualforce, LWC, Lightning Component Framework.