Словарь терминов

Полное руководство по терминам код-ревью, безопасности, DevOps и качества ПО

50 терминов

Код-ревью и качество

(12)

Код-ревью

HOT

Систематическая проверка исходного кода одним или несколькими разработчиками для выявления ошибок, уязвимостей безопасности и улучшения качества кода перед слиянием в основную кодовую базу.

Статический анализ

HOT

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

Технический долг

HOT

Подразумеваемая стоимость дополнительной переработки, вызванная выбором простого (ограниченного) решения сейчас вместо лучшего подхода, который занял бы больше времени.

Код-смелл

HOT

Поверхностный признак в исходном коде, который обычно соответствует более глубокой проблеме в системе. Не баг сам по себе, но знак того, что может потребоваться рефакторинг.

Рефакторинг

HOT

Процесс реструктуризации существующего кода без изменения его внешнего поведения для улучшения читаемости, снижения сложности и упрощения поддержки.

Линтинг

Процесс запуска программы, которая анализирует код на потенциальные ошибки, баги, стилистические проблемы и подозрительные конструкции.

Чистый код

Код, который легко понять, просто модифицировать и который ясно выражает намерение программиста. Философия, популяризированная Robert C. Martin.

Легаси-код

Существующий код, который трудно изменять из-за отсутствия тестов, плохой документации, устаревших технологий или недоступности оригинальных разработчиков.

Принцип DRY (Don't Repeat Yourself)

Принцип разработки ПО, гласящий, что каждый элемент знания должен иметь единственное, авторитетное представление в системе.

Принцип KISS (Keep It Simple, Stupid)

Принцип проектирования, гласящий, что системы работают лучше, когда они просты, а не сложны. Простота должна быть ключевой целью.

YAGNI (You Aren't Gonna Need It)

Принцип экстремального программирования, гласящий, что программисты не должны добавлять функциональность, пока она реально не понадобится, избегая спекулятивных фич.

Мёртвый код

Код, который никогда не выполняется во время работы программы: недостижимый код, неиспользуемые функции, код за всегда-ложными условиями.

Безопасность

(12)

SAST

HOT

Static Application Security Testing — метод анализа исходного кода на уязвимости безопасности без выполнения программы.

DAST

HOT

Dynamic Application Security Testing — метод тестирования запущенных приложений на уязвимости безопасности путем симуляции атак.

OWASP

HOT

Open Worldwide Application Security Project — некоммерческий фонд, работающий над улучшением безопасности ПО через проекты с открытым исходным кодом под руководством сообщества.

OWASP Top 10

HOT

Регулярно обновляемый список 10 наиболее критических рисков безопасности веб-приложений, публикуемый OWASP как стандартный документ для информирования разработчиков.

CSRF (Межсайтовая подделка запроса)

HOT

Атака, которая заставляет аутентифицированных пользователей выполнять нежелательные действия в веб-приложении, обманом заставляя их нажимать на вредоносные ссылки или отправлять формы.

Аутентификация

HOT

Процесс проверки личности пользователя, устройства или системы. Отвечает на вопрос "Кто вы?" (в отличие от авторизации, которая отвечает "Что вы можете делать?").

Управление секретами

HOT

Практика безопасного хранения, распространения и ротации конфиденциальных данных: API-ключей, паролей, учётных данных баз данных и сертификатов.

Уязвимость зависимостей

HOT

Уязвимость безопасности в сторонних библиотеках или пакетах, от которых зависит приложение и которые могут быть использованы для компрометации приложения.

Сканирование кода

HOT

Автоматический анализ кода для обнаружения уязвимостей безопасности, багов и проблем качества кода, обычно интегрированный в CI/CD пайплайны.

DevSecOps

Подход, интегрирующий практики безопасности в каждую фазу DevOps-пайплайна, делая безопасность общей ответственностью команд разработки, безопасности и операций.

SQL-инъекция

Техника внедрения кода, которая эксплуатирует уязвимости безопасности в слое базы данных приложения путём вставки вредоносных SQL-выражений в поля ввода.

XSS (межсайтовый скриптинг)

Уязвимость безопасности, позволяющая атакующим внедрять вредоносные скрипты в веб-страницы, просматриваемые другими пользователями, потенциально похищая сессионные куки, учётные данные или выполняя действия от имени жертв.

AI код-ревью

(3)

DevOps и CI/CD

(5)

Тестирование

(7)

Юнит-тестирование

HOT

Метод тестирования ПО, при котором отдельные модули или компоненты кода тестируются изолированно для проверки их корректной работы.

Покрытие кода

HOT

Метрика, измеряющая процент кода, выполненного во время тестирования, показывающая, какая часть кодовой базы покрыта автоматическими тестами.

E2E-тестирование (End-to-End)

HOT

Методология тестирования, проверяющая весь рабочий процесс приложения от начала до конца, симулируя реальные сценарии пользователя включая UI, API, базы данных и внешние интеграции.

TDD (разработка через тестирование)

Практика разработки ПО, где тесты пишутся до фактического кода, следуя циклу: написать падающий тест, написать минимальный код для прохождения, затем рефакторинг.

Интеграционное тестирование

Тестирование, проверяющее, что разные модули или сервисы работают правильно вместе, обычно тестируя взаимодействия между компонентами, а не отдельные юниты.

Порог покрытия тестами

Минимальный процент кода, который должен быть покрыт тестами, обеспечиваемый в CI/CD пайплайнах для гарантии, что новый код не снижает общее покрытие тестами.

Мутационное тестирование

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

Git и контроль версий

(7)

Пул-реквест

HOT

Метод отправки изменений кода на проверку перед слиянием в основную ветку. Также известен как merge request (MR) в GitLab.

Git

HOT

Распределённая система контроля версий, отслеживающая изменения в исходном коде во время разработки ПО, позволяющая нескольким разработчикам работать вместе.

Merge Request

Термин GitLab для пул-реквеста — метод отправки изменений кода на проверку перед слиянием в другую ветку. Функционально идентичен пул-реквесту GitHub.

Коммит

Снимок изменений в Git-репозитории, который записывает модификации файлов вместе с сообщением, описывающим что изменилось и почему.

Ветка

Независимая линия разработки в Git, позволяющая разработчикам работать над фичами, исправлениями или экспериментами без влияния на основную кодовую базу.

Gitflow

Модель ветвления для Git, определяющая строгую структуру веток, разработанную вокруг релизов проекта, с использованием выделенных веток для фич, релизов и хотфиксов.

Trunk-Based Development

Модель ветвления в системе контроля версий, где разработчики сотрудничают над кодом в единственной ветке "trunk" (или main), избегая долгоживущих фича-веток.

Метрики и архитектура

(4)

Автоматизируйте код-ревью с diffray

Мульти-агентная AI-система для код-ревью. Находит баги, уязвимости и проблемы архитектуры автоматически.