Większość zespołów inżynierskich prowadzi dwie oddzielne rozmowy na temat tej samej bazy kodu. Jedna dotyczy bezpieczeństwa: czy istnieje ryzyko ataku typu SQL injection, czy istnieje zakodowana na stałe tajna informacja, czy istnieje podatna na wykorzystanie zależność. Druga dotyczy łatwości utrzymania: czy ta funkcja jest zbyt skomplikowana, czy ten kod nie powtarza się trzy razy, czy nie ma martwego kodu, którego nikt nie odważy się usunąć.
Te rozmowy zazwyczaj odbywają się za pomocą różnych narzędzi, przez różne zespoły, według różnych harmonogramów. Skaner bezpieczeństwa sygnalizuje zagrożenia podatne na atak. Osobne narzędzie jakości, często kupowane i zarządzane niezależnie, sygnalizuje zagrożenia kosztowne w utrzymaniu. Dwie licencje, dwa dashboards, dwa parsery przechodzące przez to samo abstrakcyjne drzewo składniowe, aby odpowiedzieć na dwa różne pytania.
Ten podział ma swoją cenę. Wady niezawodności (te, które powodują awarie w czasie wykonywania, a nie naruszenia) nie podlegają takiej samej dyscyplinie selekcji jak ustalenia dotyczące bezpieczeństwa, ponieważ znajdują się poza zespołem ds. bezpieczeństwa. dashboard. A gdy zespół ma już statyczny moduł analizy, który analizuje każdy plik pod kątem bezpieczeństwa, uruchamianie drugiego, niezależnego modułu tylko po to, by sprawdzić jakość kodu, jest zbędną pracą i nie przynosi żadnych wspólnych korzyści.
Dlaczego jakość kodu ma znaczenie (i czym się różni od jakości kodu) Code Security)
Jakość kodu i code security odpowiedzieć na dwa różne pytania. Code security Pyta: czy ten kod można wykorzystać? Jakość kodu pyta: czy ten kod można utrzymać? Funkcja może być idealnie bezpieczna, a mimo to być plątaniną pięciuset linii kodu, której nikt nie chce ruszać, a dobrze zorganizowany, łatwy do odczytania moduł nadal może zawierać krytyczną lukę w zabezpieczeniach. Żadna z tych dziedzin nie zastępuje drugiej.
Koszt ignorowania jakości kodu nie ujawnia się jako naruszenie. Pojawia się wolniej: nowy pracownik potrzebuje dwóch tygodni zamiast dwóch dni, aby wprowadzić bezpieczną zmianę, rutynowa funkcja wymaga trzech sprintów, ponieważ nikt nie jest w stanie przewidzieć, co zduplikowany blok zepsuje gdzie indziej, inżynier na wezwanie marnuje godzinę na znalezienie błędu w martwym kodzie, który powinien zostać usunięty rok temu. Nic z tego nie uruchamia alertu bezpieczeństwa. Wszystko to ujawnia się w tempie, a kiedy jest widoczne w retrospekcji sprintu, jego naprawa jest już kosztowna.
Tak jest w przypadku traktowania jakości z taką samą rygorystycznością jak bezpieczeństwa: nie dlatego, że zapach kodu stanowi zagrożenie, ale dlatego, że niekontrolowane narastanie długu łatwości utrzymania powoduje, że baza kodu staje się miejscem, w którym funkcje umierają.
Lepsza droga: jeden silnik, dwa katalogi reguł
Skaner jakości kodu Xygeni analizuje kod źródłowy pod kątem defektów utrudniających konserwację i niezawodność: nieprawidłowych kodów, naruszeń złożoności, martwego kodu i duplikacji — czyli wzorców, które nie powodują naruszeń, ale powodują przerwy w działaniu, regresje i spowolnienie pracy zespołów.
Wyróżniający się wybór projektowy ma charakter architektoniczny, a nie kosmetyczny. Code Quality dzieli swój silnik analizy statycznej z Xygeni'ego SAST Skaner: te same parsery, ta sama konstrukcja AST, to samo wyszukiwanie plików. Nie ma jednak wspólnego katalogu reguł. Reguły jakości są ograniczone do jakości, a nie bezpieczeństwa, a wyniki są prezentowane w dedykowanej sekcji „Jakość” platformy Xygeni, oddzielonej od… SAST i pozostałe tabele ryzyka bezpieczeństwa.
Rezultat: zespoły otrzymują widok możliwości utrzymania i widok bezpieczeństwa z tego samego podstawowego przebiegu analizy, bez łączenia dwóch różnych problemów w jeden zakłócony dashboard.
Dwa sposoby na uzyskanie wysokiej jakości sygnału w Twoim domu Pipeline
Nie każda funkcja „jakości kodu” działa w ten sam sposób w tle. Wiele CI/CD-natywne narzędzia jakościowe to warstwy agregacji: oni sami nie analizują twojego kodu; importują wyniki z dowolnego uruchomionego już programu do analizy kodu (program do analizy kodu JavaScript, program do analizy kodu Python, detektor duplikatów), każdy z nich sformatowany ponownie do współdzielonego schematu JSON, każdy połączony jako własny pipeline krok. To elastyczne, ale oznacza, że jakość sygnału jest spójna tylko wtedy, gdy liczba oddzielnych narzędzi, formatów i narzędzi do obsługi, które połączysz ze sobą, po jednym na język, będzie taka sama.
Skaner jakości kodu Xygeni podąża inną ścieżką: jeden natywny silnik, już działający w celu zapewnienia bezpieczeństwa, rozszerzony o katalog reguł jakości. Nie ma potrzeby instalowania lintera dla każdego języka, formatowania raportów ani osobnego zadania do wykonania dla każdego narzędzia. Otrzymujesz jedno polecenie, jeden spójny model ważności i jeden dashboard sekcji, ponieważ analiza nigdy nie była dzielona na różne narzędzia.
Jak to działa?
Code Quality działa jako osobne polecenie CLI:
jakość xygeni -d [opcje] (xygeni code-quality działa jako alias.)
Dzieli swój model opcji z xygeni sast, więc każdy, kto korzysta już ze skanera bezpieczeństwa Xygeni, natychmiast rozpozna interfejs:
| Option | Co to robi |
|---|---|
-d, --dir | Katalog do analizy |
--detectors | Uruchom określone identyfikatory detektorów lub poziom ważności i wszystko powyżej niego |
--fail-on | Wyjście niezerowe przy danej powadze, dla CI/CD bramkowania |
--baseline | Porównaj z linią bazową i zwróć tylko nowe ustalenia |
--upload | Wyślij wyniki na platformę Xygeni |
Generowanie raportu jakości kodu
Skanowanie generuje raport dotyczący jakości kodu, który można wysłać na platformę, wyeksportować jako JSON dla artefaktów CI lub przekazać kierownikowi zespołu bez ujawniania mu informacji. dashboard dostęp. Oba polecenia są jednowierszowe:
# Zeskanuj i prześlij bezpośrednio na platformę Xygeni
xygeni quality -n MyProject –upload
# Eksportuj raport jakości kodu w formacie JSON, tylko krytyczne ustalenia
jakość xygeni -d –detektory krytyczne –format json –wyjście quality.json
Po przesłaniu ten sam raport o jakości kodu wypełnia sekcję Jakość dashboard: filtrowalne, z wysuwanymi szczegółami dla każdego znaleziska, liniami bazowymi i tym samym zachowaniem raportowania, z którego zespoły korzystają już w przypadku SAST.
Kontrola jakości w połączeniu ze skanowaniem bezpieczeństwa
W przypadku zespołów, które chcą uzyskać oba sygnały z jednego podania, SAST skaner akceptuje –uwzględnij-jakość Flaga:
xygeni sast -D –uwzględnij-jakość
Bo SAST i Code Quality dzielą etap parsera, co jest bardziej wydajne niż uruchamianie dwóch skanerów jeden po drugim. Generuje dwa oddzielne raporty, bezpieczeństwa i jakości, a każdy z nich nadal trafia do osobnego dashboard Sekcja. Flaga zmienia sposób wykonywania skanowania, a nie sposób organizacji wyników.
Skanowanie bez połączenia
W przypadku środowisk odizolowanych od sieci lub serwerów CI nieposiadających dostępu do platformy Xygeni, wysokiej jakości skany można uruchamiać lokalnie i przesyłać później:
jakość xygeni -d -n MójProjekt
# …później, z hosta z łącznością:
xygeni report-upload -n MyProject -r depsdoctor-quality.json
Wyniki są umieszczane w sekcji Jakość dokładnie tak samo, jak miałoby to miejsce w przypadku skanowania na żywo: ta sama selekcja, ta sama polityka, to samo zachowanie bazowe.
Dlaczego ważne jest, aby jakość była oddzielona od bezpieczeństwa
Łatwo byłoby umieścić zapachy kodu na tej samej liście ważności, co lukę podatną na wykorzystanie. Xygeni celowo tego nie robi. Zduplikowana funkcja i atak SQL injection to nie ten sam rodzaj ryzyka, a traktowanie ich w ten sam sposób uczy zespoły albo nadmiernej reakcji na szum konserwacyjny, albo niedostatecznej reakcji na rzeczywiste ustalenia dotyczące bezpieczeństwa. Utrzymywanie katalogów reguł, raportów i dashboard widoki są oddzielne, a jednocześnie znajduje się pod nimi wspólny silnik, co oznacza, że każdy zespół otrzymuje sygnał, który jest dla niego ważny, bez konieczności płacenia za drugie narzędzie do analizy statycznej.
Wypróbuj: Jakość kodu jest dostępna już dziś za pośrednictwem interfejsu wiersza poleceń Xygeni. Zespoły już pracujące xygeni sast mogę dodać –uwzględnij-jakość do ich istniejących pipeline w jednej linii, bez konieczności wdrażania nowego narzędzia, bez drugiego dashboard sprawdzić.
FAQ
Czym jest jakość kodu Xygeni?
Xygeni Code Quality to skaner analizy statycznej, który wykrywa defekty w zakresie utrzymywalności i niezawodności, w tym błędy w kodzie, naruszenia złożoności, martwy kod i duplikację. Działa jako osobne polecenie (jakość xygeni) i raporty trafiają do specjalnej sekcji Jakości platformy Xygeni, niezależnie od ustaleń dotyczących bezpieczeństwa.
Czy jakość kodu jest taka sama jak SAST?
Nie. Jakość kodu i SAST korzystają z tego samego podstawowego silnika parsującego, ale używają niezależnych katalogów reguł i generują niezależne raporty. SAST szuka luk w zabezpieczeniach; Jakość kodu szuka wad, które utrudniają konserwację i niezawodność.
Czy mogę jednocześnie przeprowadzić skanowanie jakościowe i skanowanie bezpieczeństwa?
Tak. Bieganie xygeni sast -D –uwzględnij-jakość Wykonuje oba zestawy reguł w jednym przebiegu, co jest bardziej wydajne niż uruchamianie obu skanerów oddzielnie, ponieważ współdzielą one etap parsera. Wyniki nadal generują dwa oddzielne raporty i pojawiają się w dwóch oddzielnych dashboard działy.
Czy potrzebuję osobnej licencji na Code Quality?
Aby przesłać i przeglądać wyniki jakości, wymagane jest uprawnienie Code Quality (Jakość kodu), takie samo jak to wymagane do uruchomienia skanowania.
Czy Code Quality może działać bez dostępu do Internetu?
Tak. Skanowanie może być wykonywane lokalnie bez -wgrywać flagę, a wynikowy raport można później przesłać z podłączonego hosta za pomocą xygeni report-upload.







