Created
September 13, 2021 05:43
-
-
Save Antonboom/c30cab6096e282a105354d5d881f64f2 to your computer and use it in GitHub Desktop.
Критерии качества выполнения и оценки домашнего задания
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Подготовительная программа на С/С++ | |
[Описание курса](https://park.mail.ru/curriculum/program/discipline/532/) | |
## Критерии качества выполнения и оценки домашнего задания | |
За задание можно получить не более 10 баллов. | |
**Рабочая программа** - 4 балла. | |
**Valgrind, Mtrace, любая другая утилита, показывающая отсутствие утечек памяти** - 2 балла: | |
```bash | |
valgrind --tool=memcheck --leak-check=full/summary ./a.out {args} | |
``` | |
- корректное применение системных функций выделения и освобождения памяти, функций работы с файлами: | |
- *alloc / free; | |
- *open / *close. | |
* инициализация указателей и проверка их значений перед использованием; | |
* проверка индексов (смещений) при обращении к элементам массивов (по указателям); | |
* отсутствие недопустимых операций неявного преобразования и явного приведения типов. | |
**Организация и логика работы кода** - 2 балла: | |
- код распределен по функциям; | |
- переменные объявлены на отдельных строках, сразу проинициализированы; | |
- переменные объявлены вблизи использования; | |
- отсутствие глобальных переменных; | |
- отсутствие грубо повторяющихся блоков кода; | |
- использование const в описании функций; | |
- отсутствие громоздких, неправильно построенных if; | |
- учтено выравнивание в структурах; | |
- валидация входных данных, а также значений, возвращаемых собственными и стандартными функциями. | |
- логирование ошибок (сообщение/код - ошибка не должна произойти "молчаливо"); | |
- отсутствует переопределение errno; | |
- отутствует сомнительная логика (или обосновать, что она не такая); | |
**Стиль кодирования** - 2 балла: | |
- аккуратное оформление исходного код в едином стиле; здорово, если он близок к [гугловскому](https://google.github.io/styleguide/cppguide.html); | |
- соблюдение правил выравнивания частей кода (директив, описаний и определений типов, глобальных функций и блоков в них); | |
- соблюдение отступов между логическими блоками кода; | |
- отсутствие точек аварийного выхода из процесса (запрет на необоснованное использование exit() и подобное); | |
- самочитаемый код (адекватные (не слишком длинные и не слишком короткие) названия переменных и функций); | |
- наличие докстринга приветствуется, наличие излишних комментариев - нет: код должен быть самочитаемым; | |
- нет магических чисел (#define MY_CONST; кроме очевидных -1, 0 и 1); | |
- нет ветки else, если выше return или exit (особенно, если это порождает излишнюю елочку). | |
**Дедлайны**: | |
- Неделя просрочки - половина баллов; | |
- Две недели просрочки - 0 баллов; | |
- Крайний срок подачи пулл-реквеста - суббота 20:00; | |
- Крайник срок последних правок - воскресенье 20:00. | |
------ | |
*Источники*: | |
* [Частые ошибки при разработке](https://docs.google.com/document/d/1iE4Ql8QyP7DDsoKPITmczMs7DQ_3lAT-hqiWNLpidPw/edit) | |
* [С++ (первый семестр Технопарка)](https://park.mail.ru/blog/topic/view/1164/) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment