Przejdź do treści

Snitch

  • przez

Ostatnio natrafiłem na narzędzie snitch (tak naprawdę to dostałem info o nim w jednym newsleterze). Moim zdaniem może przydać się w dużym projekcie lub w jakimś CI (tego drugiego do końca pewny nie jestem 😀 ). Snitch analizuje projekt pod kątem zgodności bibliotek oraz tego czy gdzieś nie duplikujemy tej samej biblioteki. Tak wiem, to samo można zrobić np. w sonarze. Ale życie jest lepsze jak mamy coś do wyboru 😉

Nie będę wrzucał kodu do githuba, bo ciężko nazwać go projektem 🙂 Sprawdziłem tą bibliotekę w następujący sposób: mam 3 projekty:

  • MainApp
  • FirstProject
  • SecondProject

MainApp ma referencję do FirstProject, który ma do SecondProject. Do wszystkich projektów dodałem Serilog ale w SecondProject w innej wersji niż w dwóch pozostałych projektach. Czyli pliki csproj wyglądają następująco:




  
    
  

  
    Exe
    net6.0
    enable
    enable
  

  
    
  





  
    net6.0
    enable
    enable
  

  
    
  

  
    
  





  
    net6.0
    enable
    enable
  

  
    
  


Snitch instalujemy w następujący sposób:

dotnet tool install -g snitch

Po zainstalowaniu w katalogu solucji uruchamiam narzędzie poleceniem:

snitch

A oto wynik:

Czyli możemy usunąć Serilog z MainApp oraz FirstApp. Ale czy tylko dlatego, że były inne wersje 🤔 Nie 😁 Po zmianie wersji Serilog na 2.12.0 w SecondProject mamy taki wynik:

Moim zdaniem narzędzie może być pomocne. Pierwsze co mi przyszło do głowy to sytuacja gdy przejmujemy jakiś stary projekt i możemy zacząć od szybkiego posprzątania, które zajmie 5 min (wiadomo dla PMa inny czas 😁).

Dla niedowiarków: po usunięciu Serilog z MainApp i FirstProject mamy taki wynik: (mam nadzieję, że Ty tego już nie czytasz 😁)