Опишите шаги и критерии проведения code review в учебной лабораторной работе: на что обращать внимание преподавателю и студенту при оценке качества кода?

17 Ноя в 06:52
3 +1
0
Ответы
1
Кратко — последовательность шагов и критерии для code review в лабораторной работе, с указанием на что смотреть преподавателю и студенту.
Шаги процесса review
1. Подготовка
- Ознакомиться с заданием и критериями оценки.
- Склонировать/собрать проект и запустить — проверить, что репозиторий воспроизводим: сборка и запуск без ручных правок.
- Преподавателю: проверить соответствие решения формулировке задания и ограничений.
- Студенту: убедиться, что README и инструкции запуска актуальны.
2. Автоматическая проверка
- Запустить сборку, линтер, форматтер, тесты и CI.
- Обратить внимание на ошибки сборки, warning'и, статический анализ.
- Инструменты: linters, formatter (например, ESLint/flake8/clang-format), CI.
3. Функциональное тестирование
- Проверить корректность на типичных и граничных данных, некорректных вводах.
- Преподавателю: сравнить с ожидаемым поведением по ТЗ; проверить обработку ошибок.
- Студенту: добавить/подправить тесты, покрывающие кейсы.
4. Ручной код-ревью (читаемость и дизайн)
- Оценить ясность, модульность, соответствие стилю кодирования, наименование переменных и функций.
- Проверять архитектуру: разделение ответственности, уровни абстракций, повторное использование.
- Ищем «code smells»: дублирование, большие функции, глубину вложенности.
5. Тесты и покрытие
- Оценить качество тестов: юнит/интеграционные, позитивные/негативные кейсы.
- Целевой минимум покрытия: ≥70% \ge 70\%70% (можно повышать до ≥80% \ge 80\%80% для продвинутых работ).
6. Производительность и безопасность (по необходимости)
- Оценить асимптотику критичных участков, утечки памяти, уязвимости.
- Простые пороговые проверки: сложность критичной функции, потребление памяти.
7. Отчёт и доработка
- Сформулировать короткий набор правок и багов.
- Студент вносит исправления и отвечает на комментарии; повторный обзор при необходимости.
Критерии оценки (на что конкретно смотреть)
- Корректность: соответствует ли результат ТЗ, обрабатываются ли граничные случаи.
- Надёжность: устойчивость к ошибкам ввода, обработка исключений.
- Читаемость: ясные имена, небольшие функции, комментирование там, где логика неочевидна.
- Структура и дизайн: модульность, слои, соблюдение принципов SRP/DRY.
- Код-стиль и форматирование: единообразие, автопроход линтера/форматтера.
- Тесты: полнота, качество ожиданий, воспроизводимость.
- Документация: README, комментарии API, инструкции запуска и проверки.
- Производительность: алгоритмическая сложность, нет явных узких мест.
- Безопасность: валидация внешних данных, избегание инъекций, управление секретами.
- Оригинальность/плагиат: код должен быть самостоятельным.
Практические пороговые рекомендации
- Цикломатическая сложность функции: CC≤10 \mathrm{CC} \le 10CC10.
- Длина функции: желательно ≤200 \le 200200 строк; предпочтительнее ≤50 \le 5050.
- Покрытие тестами: минимум ≥70% \ge 70\%70% (для продвинутых заданий ≥80% \ge 80\%80%).
- Не должно быть ошибок сборки/тестов: 000 критических ошибок.
Чек-лист для быстрого просмотра (студенту перед сдачей)
- Код собирается и запускается по инструкции.
- Все тесты проходят.
- Линтер/форматтер не выдаёт ошибок.
- README описывает запуск и примеры.
- Нет «магических чисел», плохих имён, длинных функций.
- Изменения оформлены в коммитах с осмысленными сообщениями.
Роль преподавателя vs студента при оценке
- Преподаватель: фокус на соответствии ТЗ, глубине понимания, архитектуре, адекватности тестов и академической честности; даёт направленные комментарии.
- Студент: заботится о воспроизводимости, автоматизации проверок (CI), читаемости и покрытии; корректно отвечает на комментарии и документирует изменения.
Пример рубрики (примерное распределение веса)
- Корректность и требования: 40%40\%40% - Тесты и покрытие: 20%20\%20% - Стиль и читаемость: 15%15\%15% - Документация и инструкции: 10%10\%10% - Архитектура и модульность: 10%10\%10% - Производительность/безопасность: 5%5\%5%
Короткое резюме: при review сначала убедитесь в воспроизводимости и корректности, затем автоматизируйте проверки, потом анализируйте читаемость и дизайн; используйте чек-листы и пороги (например, CC≤10 \mathrm{CC} \le 10CC10, покрытие ≥70% \ge 70\%70%), давайте конструктивный feedback, студенты должны дорабатывать и документировать изменения.
17 Ноя в 06:59
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир