Chciałem tylko wiedzieć, jaka jest różnica między statyczną analizą kodu a przeglądem kodu. Jak się robi każdy z tych dwóch? Mówiąc dokładniej, jakie narzędzia są obecnie dostępne do przeglądania kodu / analizy statycznej PHP? Chciałbym również wiedzieć o dobrych narzędziach do sprawdzania kodu w dowolnym języku.
code-quality
terminology
code-reviews
quality
Thomas Owens
źródło
źródło
Odpowiedzi:
Przegląd kodu to coś, co robią ludzie, analiza statyczna to coś, co robią maszyny. Istnieją (czasem dobre) narzędzia analizy statycznej. Przegląd kodu ma miejsce, gdy kolega / mentor / profesor / przyjaciel omija Twój kod i daje ci konstruktywną krytykę.
Z drugiej strony, analiza statyczna jest zautomatyzowanym procesem, w którym maszyna, poinformowana przez to, co wie o języku, który analizuje (zwykle z systemu typów), analizuje program i próbuje wykryć rzeczy, które mogą być niepoprawne, nieefektywny, zły styl lub w inny sposób nieoptymalny.
źródło
Analiza statyczna to proces analizy oprogramowania bez jego wykonywania. Jest to bardzo dobre i zalecane, ale musisz o tym pamiętać
Oba te podejścia cierpią na brak kontekstu: nie wiedzą, co ma osiągnąć sw.
Przegląd kodu jest wykonywany przez innego programistę, który podobno go zna i może sprawdzić
Jest znacznie droższy i ma różny stopień powtarzalności, ale jest świetną pomocą.
Jak zawsze nie ma jednej srebrnej kuli, która naprawiłaby wszystkie błędy i uniknęła wszystkich problemów. Zaleca się stosowanie - o ile to możliwe, biorąc pod uwagę miejsce, kod, czas, trzy formy kontroli (statyczne, dynamiczne, więcej oczu (i mózgów) faktycznie spoglądających na kod).
ps: Muszę zauważyć, że zwykle o wiele lepiej jest zastosować narzędzia od zera. Konwersja starszego systemu jest znacznie mniej przyjemnym doświadczeniem z powodu fałszywych wyników pozytywnych. Jeśli zaczniesz od zera i zawsze dążysz do utrzymania narzędzia do analizy w czystości, prawdopodobnie unikniesz wielu problemów.
pps: jeśli chodzi o narzędzia, zależy to od języka. W świecie C i C ++ możesz zacząć od samego Visual Studio, które zawiera wbudowane narzędzie do analizy statycznej. Stosunkowo kompletną listę można znaleźć na Wikipedii.
ppps: Analiza statyczna jest bardziej odpowiednia dla języków statycznych, takich jak C lub C ++. Pythonowi może być naprawdę trudno powiedzieć, czy nazwa odnosząca się do listy w pewnym momencie będzie odnosić się do listy dla reszty programu, ze względu na jego właściwości dynamiczne. Nie oznacza to, że nic nie da się zrobić, jak pokazuje JIT, jak pokazuje PyPy .
źródło
Przegląd kodu ma miejsce, gdy starszy lub dedykowany organ sprawdza kod, sposób kodowania, standardy przestrzegane w kodzie, a w szczególności poziom logiczny kodu
Jeśli chodzi o analizę statyczną, to analiza oprogramowania komputerowego jest przeprowadzana bez wykonywania programów zbudowanych z tego oprogramowania (analiza wykonywana na programach jest znana jako analiza dynamiczna)
Lista narzędzi według technologii znajduje się w poniższym linku
Lista narzędzi do analizy statycznej
Dlatego przegląd kodu i analiza statyczna to zupełnie inne terminy.
źródło
Przegląd kodu jest bardziej oceną jakościową, statyczna analiza kodu jest bardziej oceną ilościową.
vs, fe
Chociaż rzeczywiste błędy mogą (oczywiście) istnieć i zostać wykryte przez SCA
źródło
Analiza statyczna ma miejsce, gdy artefakt jest analizowany bez wykonywania. Chociaż można go zastosować do dowolnego artefaktu, często stosuje się go do kodu źródłowego lub kodu obiektowego i odnosi się do użycia określonych narzędzi do analizy i uzyskiwania informacji o tych produktach roboczych. Narzędzia te generują raporty, które są interpretowane przez inżyniera do wykorzystania przy określaniu jakości budowanego systemu oraz jako przewodnik przy planowaniu rozwoju i konserwacji. Wikipedia ma listę narzędzi do analizy statycznej , uporządkowanych według języka i z krótkim opisem ich możliwości.
Recenzje są ludzką oceną pewnego produktu roboczego, którym może być kod. Przeglądy można również przeprowadzać również na projektach lub innych dokumentach. Chodzi o to, że osoby zaznajomione z produktem roboczym innym niż programista patrzą na niego w celu znalezienia błędów, od problemów bezpieczeństwa po naruszenia standardu kodowania.
Z technicznego punktu widzenia przegląd kodu można uznać za formę analizy statycznej, ponieważ kod nie jest w rzeczywistości wykonywany podczas przeglądu. Jednak w powszechnej terminologii „analiza statyczna” zazwyczaj odnosi się do parsowania maszynowego plików źródłowych lub obiektowych, podczas gdy „przegląd” wskazuje, że to ludzie przeprowadzają analizę.
źródło
Przegląd kodu to przydatna technika wyczuwania problemów w kodzie źródłowym na bardzo wczesnym etapie. W ramach tego ćwiczenia zidentyfikowano i naprawiono wiele problemów, takich jak wydajność, skalowalność i standardy kodowania. Poprawi to jakość kodu.
Analiza statyczna służy do analizy wskaźników jakości kodu, takich jak złożoność cyklometryczna, wskaźnik łatwości konserwacji, głębokość dziedziczenia i sprzężenia klas. Różne narzędzia dostępne na rynku do analizy jakości kodu. Deweloper C # używa Microsoft Visual Studio do generowania raportów metrycznych.
źródło
statyczna analiza kodu jest wykonywana przez zautomatyzowane narzędzie, przegląd kodu jest przeprowadzany z ludźmi przed zatwierdzeniem kodu.
Narzędzia do przeglądu kodu:
1. porównanie porównania
2. różnica oprogramowania do kontroli wersji
Te narzędzia są zawsze używane do generowania różnicy między starą wersją a nową wersją.
źródło