Czym dokładnie różni się SonarQube od SonarLint? SonarQube ma powiązany z nim serwer, a Sonar lint działa bardziej jak wtyczka. Ale jaka jest ich szczególna różnica?
Czym dokładnie różni się SonarQube od SonarLint? SonarQube ma powiązany z nim serwer, a Sonar lint działa bardziej jak wtyczka. Ale jaka jest ich szczególna różnica?
Odpowiedzi:
SonarLint działa tylko w środowisku IDE (IntelliJ, Eclipse i Visual Studio). Jego celem jest zapewnienie natychmiastowej informacji zwrotnej podczas pisania kodu. W tym celu koncentruje się na tym, jaki kod dodajesz lub aktualizujesz.
SonarQube to centralny serwer, który przetwarza pełne analizy (uruchamiane przez różne skanery SonarQube). Jego celem jest przedstawienie 360-stopniowej wizji jakości Twojego kodu. W tym celu regularnie analizuje wszystkie linie źródłowe twojego projektu.
Zarówno SonarLint, jak i SonarQube opierają się na tych samych statycznych analizatorach kodu źródłowego - większość z nich jest napisana przy użyciu technologii SonarSource.
Należy dodać, że SonarQube wykonuje również skany za pomocą analizatorów innych producentów (findBugs, checkstyle, PMD), podczas gdy SonarLint ich nie zawiera. Myślę, że powodem jest priorytetyzacja wydajności i oparcie funkcji findBugs na kodzie bajtowym Java.
W związku z tym wyniki uzyskane w SonarQube i SonarLint mogą się różnić, jeśli podstawowy profil jakości wykorzystuje skanery innych firm.
SonarQube to serwer, na którym możesz hostować swoje projekty i przeprowadzać analizy, podczas gdy SonarLint to agent, który pozwala nam połączyć się z tym SonarQube i zdalnie przeprowadzić analizę. SonarLint może być używany z IDE lub może być również wykonywany za pomocą poleceń CLI.
SonarLint zawiera własny zestaw domyślnych reguł, ale po podłączeniu do SonarQube użytkownicy mogą importować reguły z SonarQube, które są czymś więcej niż tylko standardowym zestawem reguł. Możemy zintegrować PDM, CodeStyle i wiele innych narzędzi do sprawdzania w SonarQube i tworzyć własne reguły.
Dwa fakty, o których chcę wspomnieć, a których nauczyłem się z własnego doświadczenia, SonarLint nie odziedziczy tych niestandardowych reguł z SonarQube, po drugie Sonar nie działa na klasach Test.
Sonarqube przeprowadza weryfikację reguł na serwerze. Zintegrowaliśmy go z naszymi wersjami TFS. SonarLint działa w IDE, więc zanim zatwierdzę swój kod, wiem, które linie naruszają jakie zasady wewnątrz IDE.