Sfoglia il codice sorgente

Обновить 'Лекции/Linters/Linters.md'

u23dubinskiy 1 mese fa
parent
commit
3ab564a015
1 ha cambiato i file con 24 aggiunte e 4 eliminazioni
  1. 24 4
      Лекции/Linters/Linters.md

+ 24 - 4
Лекции/Linters/Linters.md

@@ -4,7 +4,7 @@
 
 С технической точки зрения линтер выполняет синтаксический и семантический анализ: строит абстрактное синтаксическое дерево, вычисляет контекст типов (при наличии), анализирует потоки данных и выявляет шаблоны, ассоциированные с ошибками и антипаттернами. В зависимости от языка и реализации линтер может использовать правила на основе AST, типовой системы, эвристик или графов зависимостей, а результаты представляются в виде диагностик с указанием файла, строки, уровня серьёзности и рекомендаций. При корректной настройке линтер снижает вариативность кодовой базы, повышает читаемость и обеспечивает **воспроизводимые стандарты кодирования** в команде.
 
-![Linting (illustration)](https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/OOjs_UI_icon_alert-yellow.svg/512px-OOjs_UI_icon_alert-yellow.svg.png)
+![Linting (icon)](https://raw.githubusercontent.com/simple-icons/simple-icons/develop/icons/eslint.svg)
 
 В отладочном цикле линтеры дополняют тестирование и динамическую диагностику, закрывая классы проблем, которые сложно стабильно воспроизвести в рантайме: неиспользуемые переменные, подозрительные преобразования типов, потенциальные утечки ресурсов, нарушения контрактов API и неконсистентность стиля. Практическая эффективность повышается при включении линтинга в IDE и в конвейер CI, где ошибки линтера могут блокировать слияние изменений. Такой механизм превращает правила кодирования в проверяемые требования и уменьшает вероятность регрессий, поддерживая **непрерывный контроль качества** на уровне исходного кода.
 
@@ -17,11 +17,11 @@
 | Неиспользуемый код | мёртвые переменные/функции | уменьшение шума |
 | Безопасность (частично) | небезопасные конструкции | снижение уязвимостей |
 
-Существуют различия между линтерами, форматтерами и анализаторами безопасности, хотя на практике они часто интегрируются. Форматтеры (например, автоматическое приведение к единому стилю) уменьшают количество субъективных решений и конфликтов при ревью, тогда как линтеры фокусируются на правилах, требующих логической проверки. Анализаторы безопасности (SAST) расширяют линтинг специализированными правилами, ориентированными на уязвимости и небезопасные паттерны. В инженерной терминологии линтер является частью **статической верификации**, тогда как тесты относятся к динамической верификации.
+Существуют различия между линтерами, форматтерами и анализаторами безопасности, хотя на практике они часто интегрируются. Форматтеры уменьшают количество субъективных решений и конфликтов при ревью, тогда как линтеры фокусируются на правилах, требующих логической проверки. Анализаторы безопасности (SAST) расширяют линтинг специализированными правилами, ориентированными на уязвимости и небезопасные паттерны. В инженерной терминологии линтер является частью **статической верификации**, тогда как тесты относятся к динамической верификации.
 
 Интеграция линтеров в командный процесс реализуется через конфигурации правил, уровни серьёзности и механизмы подавления (suppressions) в исключительных случаях. Корректная эксплуатация требует калибровки: слишком строгие или нерелевантные правила увеличивают число ложных срабатываний, что снижает доверие к инструменту и провоцирует массовые игнорирования. Практически рекомендуется фиксировать конфигурацию в репозитории, применять единые версии инструментов и запускать линтер в CI как обязательный этап, что обеспечивает **детерминированность результатов анализа** для всех участников разработки.
 
-![CI pipeline (illustration)](https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/CI-CD-Pipeline.svg/640px-CI-CD-Pipeline.svg.png)
+![CI/CD (icon)](https://raw.githubusercontent.com/simple-icons/simple-icons/develop/icons/githubactions.svg)
 
 ### Таблица 2: Практические параметры внедрения линтера
 | Параметр | Что задаёт | Типовой критерий успешности |
@@ -32,4 +32,24 @@
 | Интеграция в IDE | скорость обратной связи | меньше дефектов до коммита |
 | Запуск в CI | контроль качества при слиянии | снижение регрессий |
 
-С позиции отладки линтеры обеспечивают структурированную и масштабируемую обратную связь, которая не зависит от воспроизводимости сценария выполнения программы. Их вклад максимален в больших кодовых базах и в командах, где важны единообразие и управляемость изменений, поскольку линтер формализует ожидания к коду и делает их автоматически проверяемыми. При этом линтинг не заменяет динамическую отладку и тестирование, а снижает их нагрузку, устраняя часть дефектов до выполнения. В результате линтеры являются инструментом, повышающим качество за счёт **ранней диагностики** и **стандартизации кодовой базы**.
+С позиции отладки линтеры обеспечивают структурированную и масштабируемую обратную связь, которая не зависит от воспроизводимости сценария выполнения программы. Их вклад максимален в больших кодовых базах и в командах, где важны единообразие и управляемость изменений, поскольку линтер формализует ожидания к коду и делает их автоматически проверяемыми. При этом линтинг не заменяет динамическую отладку и тестирование, а снижает их нагрузку, устраняя часть дефектов до выполнения. В результате линтеры являются инструментом, повышающим качество за счёт **ранней диагностики** и **стандартизации кодовой базы**.
+
+## Вопросы:
+
+Что делают линтеры?  
+**статический анализ**
+
+Когда выявляют ошибки?  
+**до выполнения**
+
+Что строит линтер?  
+**абстрактное дерево**
+
+Где запускают в процессе?  
+**IDE и CI**
+
+Что снижает ложные срабатывания?  
+**калибровка правил**
+
+Что блокируют в CI?  
+**слияние изменений**