Analiza statyczna jest wykorzystywana w tworzeniu oprogramowania wysokiej jakości. Kod źródłowy, między innymi artefakty, jest analizowany statycznie. Analiza statyczna obejmuje analizę danych ze źródeł Salesforce, takich jak Apex, Visualforce, Lightning i innych.
Narzędzia analityczne mogą być używane do analizowania Kodeksu i/lub komentarzy do Kodeksu. Kod analizy kodu obejmuje pokrycie kodu, złożoność kodu, duplikację kodu i inne. Analiza kodu Komentarze do kodu obejmują kod dokumentujący kod, kod komentowania bloku kodu i inne. Narzędzia do analizy kodu mogą być używane do analizowania kodu i/lub komentarzy do kodu w celu określenia jakości kodu i powodów, dla których został on w ten sposób napisany.
Może być również używany do poprawy jakości kodu (i komentarzy do kodu), a także do tego, jak kod źródłowy może być refaktoryzowany lub w inny sposób modyfikowany w razie potrzeby. Wyniki analizy są dostępne podczas porównywania danych ze źródeł Salesforce między różnymi wersjami tego samego artefaktu, między artefaktami z różnych projektów lub między zespołami w organizacji w czasie.
Analizator kodu statycznego dla Salesforce
Dobry analizator kodu statycznego działa jak sprawdzanie pisowni w kodzie źródłowym. Skanuje komponenty w systemie i oznacza te komponenty, które mogą mieć problem ze standardami kodowania lub lukami w zabezpieczeniach. Skanowanie wygeneruje raport o lokalizacji błędów, który można następnie przeanalizować, aby znaleźć dokładne źródło błędu.
Następnie możesz to naprawić, skompilować ponownie i ponownie uruchomić to samo narzędzie analityczne, aby sprawdzić, czy występują więcej problemów, czy nie. Środowisko Salesforce ewoluowało na przestrzeni czasu. Od podstawowego Apex po złożone komponenty Lightning, strony Visualforce i JavaScript . Niezbędna jest statyczna analiza każdej części Salesforce, ponieważ kod staje się bardziej złożony.
Narzędzia do skanowania kodu można wdrożyć, aby znaleźć trudne do znalezienia problemy z kodem. Narzędzia do analizy kodu wykrywają również luki w zabezpieczeniach w Apex, Visualforce i Lightning Code. Narzędzia do skanowania kodu zapewniają wykrywanie błędów w bazie kodu Salesforce przed uruchomieniem lub podczas testowania. Najlepsze praktyki Salesforce zdecydowanie zalecają stosowanie analizy statycznej dla każdego dewelopera i kompilacji CI (ciągłej integracji).
Skanery kodu mogą być wdrażane jako część zautomatyzowanych testów lub niezależnie, aby zapewnić wykrywanie błędów dla Apex, Visualforce i Lightning Code. Te narzędzia pomagają identyfikować złożone problemy z kodowaniem, takie jak przecieki zasobów z duplikatem i martwy kod na poziomie kodu źródłowego przed wdrożeniem aplikacji.
Narzędzia do analizy statycznej do analizy
Apex, Visualforce, Lightning, JavaScript , Narzędzia do statycznej analizy kodu HTML5 przeszły długą drogę w ciągu ostatnich kilku lat. Pierwszym narzędziem, którego użyłem, była „HQ”. Nie był zbyt przyjazny dla użytkownika i wymagał wiele wysiłku, aby uzyskać odpowiedni interfejs wiersza poleceń dla każdego pliku, który wymagał skanowania. Następnie pojawił się Binary Ninja.
Jest to jedna z najbardziej zaawansowanych dostępnych obecnie platform statycznej analizy binarnej (SBA), która zapewnia niezrównany wgląd w skompilowany kod dzięki funkcjom takim jak analiza pamięci zerowej, wykonywanie symboli i obsługa kolizji. Będziesz zaskoczony wszystkimi jego funkcjami, a także tym, co może zrobić, jeśli jesteś wystarczająco odpowiedzialny, aby poprawnie kodować.
Wiele narzędzi jest łatwo dostępnych, niektóre za darmo, a niektóre płatne w zależności od Twoich potrzeb lub czegokolwiek wolisz. Możesz wybierać spośród wielu narzędzi do analizy statycznej, w oparciu o to, co najbardziej Ci odpowiada. Jednak bardzo ważne jest, aby pamiętać, że nie wszystkie programy do skanowania kodu są sobie równe. Niektóre dostarczają więcej informacji, inne nie mają dogłębnej analizy kodu Salesforce z precyzyjną dokładnością.
Niezależnie od Twojego wyboru, w tym artykule skupię się na dwóch świetnych narzędziach do statycznej analizy kodu (SCA) i dlaczego powinny one być pierwszym wyborem podczas tworzenia Apex i VisualForce w Salesforce: * SonarCloud firmy SonarSource (wersja płatna) * Codelye firmy Codelye (darmowa wersja). Jak powszechnie wiadomo Salesforce to aplikacja działająca w przeglądarce internetowej. Dlatego każdy element w kodzie Salesforce musi być prawidłowym znacznikiem HTML5.
Nie można jednak polegać na tym, że kompilator upewni się, że wszystkie komponenty są idealnie czyste i zgodne z aktualnymi standardami. Powie tylko, czy coś jest nie tak, ale nie co i jak to naprawić. Na przykład mieliśmy przypadki, w których środowiska UAT działały od tygodni lub dłużej bez żadnych oznak problemu, ale po wdrożeniu w środowisku produkcyjnym nasz front-end był pełen błędów.
Narzędzia do statycznej analizy kodu służą do analizowania każdego wiersza kodu podczas jego pisania; celem jest wyłapanie tego rodzaju potencjalnych problemów z góry i rozwiązanie ich, zanim staną się problemem.
Typowe funkcje narzędzia do analizy kodu
- Raportowanie jakości kodu
- Powielanie kodu
- Zaśmiecanie kodu i hałas (np. zbyt wiele niepotrzebnych komentarzy, martwy kod)
- Złożoność kodu (np.: metryki złożoności cyklomatycznej, wykres przepływu sterowania)
- Problemy z bezpieczeństwem kodu (np.: potencjalny wstrzyknięcie SQL, cross-site scripting i inne luki)
- Code Metrics/Code Smells Reports (np.: zduplikowany kod, długość metody, rozmiar klasy).
- Wskazówki do kodu / Fragmenty kodu / Kreatory szablonów kodu [automatycznie wstawia kod dla programistów] : (wykonane za pomocą narzędzia lub ręcznie): CQS, DRY…; Kod
- Szablony kodu (np. prefiks nazwy klasy, instrukcje importu…)
- Zbieranie danych o wykonywaniu kodu w celu profilowania. Śledzenie wykorzystania kodu.
Co lubię zobaczyć
„Analiza kodu” i wizualizacja danych kodu, zgłaszanie problemów z jakością kodu — [Raport dotyczący kodu powinien pokazywać każdy element z liczbą naruszeń większą niż X]. Narzędzia, które zapewniają zintegrowaną obsługę systemów kontroli wersji źródłowych, takich jak Subversion/Git, mają tutaj atuty, obsługując bogaty zestaw funkcji.
Jeśli jesteś przyzwyczajony do innych środowisk programistycznych, narzędzia do statycznej analizy kodu będą dla Ciebie naturalnym wyborem. Jednak, jak wspomniano powyżej, Salesforce ma swoje ograniczenia, dlatego warto wiedzieć, kiedy nie używać statycznych narzędzi do analizy kodu, takich jak Codescan , aby uniknąć fałszywych alarmów.