@Filipp42

Зачем нужен статический анлизатор и как он работает?

Здравствуйте, скажите пожалуйста, для чего нужен статический анализатор кода и какие функции он выполняет? Вот скормил я ему свой код, что он мне выведет?

И ещё интересно, как именно происходит анализ кода? Какие механизмы используются? Неужели рассматривается каждый частный случай?

Заранее спасибо!
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 5
delphinpro
@delphinpro
frontend developer
Мне интересно, что вам мешало задать этот вопрос в поисковике и сразу же получить ответ?

Думаю лень. или того хуже – глупость...
https://yandex.ru/search/?text=статический+анализа...

62c4913e02232169207781.png
Ответ написан
Комментировать
Maksclub
@Maksclub
maksfedorov.ru
Например для линтеров, очень подробное руководство зачем они нужны
https://habr.com/ru/post/457970/

Чтобы написать линтер — часто нужно сделать статич анализ кода.

Проверять цикломатич сложность, форматирование кода, находить ошибки или некорректное использование кода.

Для динамически-типизированных языков стат-анализ может взять роль компилятора и проверять корректность типов и прочих штук. Например описать типы массива (который не типизирован в PHP) или даже имитировать функционал дженериков. Это повысит качество кода и его надежность, избавит от ошибок в боевой среде.

И ещё интересно, как именно происходит анализ кода?

Все зависит от того, какую проверку вы делаете... Например (из воздуха) вы хотите сделать проверку, что метод слишком сложный (большой) — делаете анализ кода и по каким-то критериям выдаете оценку/предупреждения. Находите метод (начало и конец) и число строк сравниваете с "приемлимым для вас".

Или например есть код, но на самом деле он не вызывается никогда (утверждения всегда true дают, а IDE не может этого понять), вы находите такие случае в работе/на ревью со временем и вырабатываете правила как это детектить... Чтобы задетектить, вам надо разобрать инструкции кода, как понимаете без статанализа этого не возможно, не регулярками же делать.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
@vitaly_il1
DevOps Consulting
Вот хороший пост на тему https://habr.com/ru/company/odnoklassniki/blog/486722/
Ответ написан
Комментировать
Griboks
@Griboks
Чтобы найти больше ошибок перед публикацией программы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы