СпецкурсCxx/Задачи/ОбщиеТребования
Этот страница содержит общие требования к реализации проектов. Несоблюдение многих из этих требований может повлечь возвращение работы на доработку. Этот список может быть расширен.
Оформление работ
- Каждый файл должен быть снабжен комментарием, в котором описывается его назначение.
- Каждый класс должен быть снабжен комментарием с описанием его обязанностей.
Сборка
- Каждый проект (даже если в него входит всего один C++ файл) должен собираться автоматически.
Используйте что угодно: make, pmake, autoconf, ..., на худой конец shell.
- Собираемый артефакт (т.е. то, что я вляется результатом сборки) должен являться частью решения задачи.
Т.е. если задача предполагает создание библиотеки, то основной целью сборки должен быть .so файл (.la, .a в зависимости от обстоятельств). Исключение могут составлять библиотеки шаблонов.
- Должен существовать так же способ автоматической установки программы.
- Файлы тестов и примеров должны быть отделены от файлов основного проекта в отдельный каталог.
Исполнение тестов и программ
- Если любой из исполняемых файлов проекта требует аргументов коммандной строки, то он должен предоставлять возможность получения подсказки. Либо путем вызова программы без аргументов либо с помощью ключа -h или --help.
Рекоммендации
- Используйте автоматические тесты для проверки всей функциональности, описанной в требованиях к задаче (где это возможно). См. Boost test.